使用VPS实现内网穿透
使用VPS实现内网穿透
ELIX前言
搞了一个香橙派Zero3做服务器想跑服务和博客,服务搭建好后一般只能在局域网访问,想要从公网远程访问服务就必须要进行内网穿透。穿透方式一般有两种:本地路由转发(DDNS)和VPS转发。VPS转发方式可以在网络上寻找内网穿透服务网站,有很多公益性质的网站可以选择,如ChmlFrp等,但也因为公益性质,有时候提供的服务并不稳定,因此就想要自己搭建一个Frp服务器实现内网穿透。
准备
- 具有ipv4公网ip的服务器
- 本地能连接网络的客户端
开始
下载Frp
选择最新的release版本下载即可,注意要选择服务器和客户端对应系统的版本(架构不一样也可以)。
下载的压缩包中既有服务端(frps)也有客户端(frpc)。
下载完成后,分别解压到客户端和服务端。解压指令tar -xvf 压缩包名字
部署服务
在客户端需要配置frpc.toml:
1 | serverAddr = "服务端ip地址" |
解释一下,这段配置就是可以通过你公网服务器ip地址的6000端口,来访问你本地服务器的22端口。
当然这两个端口都是可以自定义的(只需要在客户端修改即可)。
而上面的公网服务器7000端口是Frp的服务端口,这个端口只负责进行转发。
配置完成后,在Frp的同级目录执行./Frp/frpc -c ./Frp/frpc.toml
即可运行,客户端配置到此就告一段落。
在服务端需要配置frps.toml:
1 | bindPort = 7000 |
这里没啥好说的,7000端口就是Frp服务器运行的端口,注意这里要改的话客户端的配置要一起修改。
下面webServer是管理面板的配置。
配置完成后,在Frp的同级目录执行./Frp/frps -c ./Frp/frps.toml
即可运行,客户端配置到此就告一段落。
如果运行成功,就可以进行连接测试了,访问公网服务器ip:6000
,应该能够正常连接服务了。
系统化运行
本步骤的目的是让服务加入系统任务,并能够持续运行和错误重启(开机自启)。
客户端
在/etc/systemd/system
建立vpsfrpc.service
1 | [Unit] |
运行服务
1 | sudo systemctl daemon-reload |
服务端
在/etc/systemd/system
建立vpsfrps.service
1 | [Unit] |
运行服务
1 | sudo systemctl daemon-reload |
大功告成