ourfor / blog

利用GitHub的Issues记录
https://github.com/ourfor/blog/issues
1 stars 0 forks source link

内网穿透的几种方法 #11

Open ourfor opened 5 years ago

ourfor commented 5 years ago
ourfor commented 5 years ago

ngrok方便,不需要自己有公网ip,但是也正是因为这样使用自己的域名就需要money,下面用frp和一台有公网ip的服务器来实现内网访问

ourfor commented 5 years ago

首先分别在这两台机器上面解压这两个文件,会得到类似以下目录结构的目录:

-rwxrwxr-x 1 sagit sagit  10M Jul 14 12:05 frpc
-rw-rw-r-- 1 sagit sagit 6.7K Jul 14 12:10 frpc_full.ini
-rw-rw-r-- 1 sagit sagit  126 Jul 14 12:10 frpc.ini
-rwxrwxr-x 1 sagit sagit  11M Jul 14 12:05 frps
-rw-rw-r-- 1 sagit sagit 2.3K Jul 14 12:10 frps_full.ini
-rw-rw-r-- 1 sagit sagit   26 Jul 14 12:10 frps.ini
-rw-rw-r-- 1 sagit sagit  12K Jul 14 12:10 LICENSE
drwxrwxr-x 2 sagit sagit 4.0K Jul 14 12:10 systemd

服务端设置

稍微看了一下,发现有systemd这个文件,这个一般是linux下面的系统服务的配置文件,于是将它拷贝到了系统服务的配置目录cp frps* /usr/lib/systemd/system/,查看了一下里面的内容.

[Unit]
Description=Frp Server Service
After=network.target

[Service]
Type=simple
User=nobody
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frps -c /etc/frp/frps.ini

[Install]
WantedBy=multi-user.target

所以,我就把frpsfrps.ini分别拷贝到了/usr/bin//etc/frp/frps.ini (/etc下面没有这个目录,使用mkdir /etc/frp创建)

这时候看看能不能正常启动系统服务,首先我们得重新载入系统服务systemctl daemon-reload,然后使用systemctl status frps看看状态:

● frps.service - Frp Server Service
   Loaded: loaded (/usr/lib/systemd/system/frps.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

接下来参数通过默认配置文件启动systemctl status frps,得到如下标准输出:

● frps.service - Frp Server Service
   Loaded: loaded (/usr/lib/systemd/system/frps.service; disabled; vendor preset: disabled)
   Active: active (running) since Tue 2019-07-16 08:21:07 UTC; 13s ago
 Main PID: 18927 (frps)
    Tasks: 5 (limit: 4698)
   Memory: 9.8M
   CGroup: /system.slice/frps.service
           └─18927 /usr/bin/frps -c /etc/frp/frps.ini

Jul 16 08:21:07 vultr.guest systemd[1]: Started Frp Server Service.
Jul 16 08:21:07 vultr.guest frps[18927]: 2019/07/16 08:21:07 [I] [service.go:139] frps tcp listen on 0.0.0.0:7000
Jul 16 08:21:07 vultr.guest frps[18927]: 2019/07/16 08:21:07 [I] [root.go:204] Start frps success

可以看到这个进程监听了端口7000,并且允许所有ip对其进行访问,接下来我们要做的就是修改防火墙配置和服务端的配置文件.

修改服务端配置文件

我不太喜欢这个7000端口,我想换一个,但前提是我想换的端口没有被其他程序占用,这里我想换成8000,数字8比较吉利,意味着发达,我不确定是否有程序占用,所有我用lsof -i :8000看看有没有程序占用,结果为空,这个端口还没有被占用.接下来修改我们的配置文件,它位于/etc/frp/目录下面,frps.ini我们上文中将它拷贝于此。接下来要做的仅仅是参考官方的配置说明来配置,从而满足自己的需要,当然也可以通过他人来满足自己的需要😉😉

ourfor commented 5 years ago

在接下来修改配置文件的时候我们得先了解一下frp实现内网穿透的基本原理:

首先我们得达成两个共识: