最近用斐讯N1刷了Ubuntu系统,作为一个小型的服务器,偶尔需要在外网访问,内网穿透的工具有很多,例如花生壳,frp,ngrok等,这里使用一个比较简单配置的frp,是一个可用于内网穿透的高性能的反向代理应用,支持多端口多协议,而且是开源的,能满足大部分的需求
准备
- 我们需要一台公网IP的服务器(linux),下面称为服务器
- 局域网设备一台(linux),下面称为客户端
- 域名(可选)
配置
到这里找到对应的版本和系统
我用的是谷歌云,我用的是frp_0.20.0_linux_amd64.tar.gz
1 | # 下载 |
客户端和服务端一样,我用的N1是arm架构的,下载的是frp_0.20.0_linux_arm64.tar.gz
服务器端配置
先删除客户端用的文件
1
2rm frpc
rm frpc.ini配置
frps.ini
1
2
3
4vim frps.ini
[common]
bind_port = 7000通常不需要修改
开启服务
1
./frps -c ./frps.ini
服务端需要监听7000端口给客户端访问,如果用是云服务器,需要看一下
入站规则
是否允许7000端口,否则客户端会报连接超时
客户端配置
客户端配置与服务端基本相同
先删除服务端用的文件
1
2rm frps
rm frps.ini配置
frpc.ini
,vim frps.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21[common]
server_addr = 35.221.xx.xx
server_port = 7000
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
[http1]
type = http
local_port = 80
remote_port = 6001
custom_domains = n1.bombox.org
[http2]
type = http
local_port = 8080
remote_port = 6002
custom_domains = n1.bombox.org【server_addr】为服务器公网IP
【server_port】为服务器配置的端口
【remote_port】为通过服务端访问的端口,例如我们通过35.221.xx.xx:6000
访问客户端的ssh
,通过n1.bombox.org:6001
访问客户端的80端口
【custom_domains】可以绑定自己的子域名,需要在域名解析后台添加一条A记录
即可,记录值为服务器IP35.221.xx.xx
,如下启动
1
./frpc -c ./frpc
接着我们就通过域名访问客户端了
1
2
3ssh -p 6000 root@35.221.xx.xx
http://h1.bombox.org:6001
http://h1.bombox.org:6002
后台启动和开机启动
如果上面测试没有问题,我们可以通过后台启动并设置成开机启动
后台运行
1 | # 服务端(注意后面有个`&`) |
运行后会返回进程号,也可以通过ps
命令查看进程信息
1 | ps -aux | grep frp |
杀掉进程
1 | kill -9 进程号 |
开机自动启动
使用systemctl
来控制启动,先添加frps
服务,这里演示服务端的,客户端类似
1 | vim /lib/systemd/system/frps.service |
写入下面内容,并保存
1 | [Unit] |
启动服务
1 | # 启动frps服务 |