Open ourfor opened 5 years ago
ngrok方便,不需要自己有公网ip,但是也正是因为这样使用自己的域名就需要money,下面用frp和一台有公网ip的服务器来实现内网访问
首先分别在这两台机器上面解压这两个文件,会得到类似以下目录结构的目录:
-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
所以,我就把frps
和frps.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
我们上文中将它拷贝于此。接下来要做的仅仅是参考官方的配置说明来配置,从而满足自己的需要,当然也可以通过他人来满足自己的需要😉😉
在接下来修改配置文件的时候我们得先了解一下frp
实现内网穿透的基本原理:
首先我们得达成两个共识:
ip
来标识某一台机器ipv4
数量有限,所以有些ip段
为私有ip,就是公网中不存在这样的ip,只存在于内网127.0.0.1
和localhost
都指向本机