使用开源框架frp搭建自己的内网穿透
背景:
把自己本地的网站,服务分享到外网。可控性强。
原计划使用ngrok搭建,官网https://ngrok.com/ 用2天都没完成,遇到各种奇奇怪怪的坑。没有完成,而且最新开源版本是1.7已经几年没有改动了。
所以更换为:frp来搭建,无官网
github:https://github.com/fatedier/frp
正题:
准备工作:
VPS(公网服务器)
下载源码:https://github.com/fatedier/frp/releases
服务端:
把frp_0.32.1_linux_amd64.tar.gz放到服务器上,
也可以可以直接在服务器上下载:
wget https://github.com/fatedier/frp/releases/download/v0.32.1/frp_0.32.1_linux_amd64.tar.gz
然后解压
tar -zxvf frp_0.32.1_linux_amd64.tar.gz
文件夹更换名字
cp -r frp_0.32.1_linux_amd64 frp
把文件夹放到自己定义的目录
然后进入目录:(我的是)
cd /usr/local/frp
流程:
开始设置配置:
因为是服务端,使用到的是:frps(启动程序),frps.ini(配置文件)
vi frps.ini
修改为:
[common] bind_port = 7000 dashboard_port = 7500 token = 12345678 dashboard_user = admin dashboard_pwd = admin vhost_http_port = 10081 vhost_https_port = 10443
- “bind_port”表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
- “dashboard_port”是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。
- “token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
- “dashboard_user”和“dashboard_pwd”表示打开仪表板页面登录的用户名和密码,自行设置即可。
- “vhost_http_port”和“vhost_https_port”用于反向代理HTTP主机时使用。
保存:wq
启动服务端;
/usr/local/frp/frps -c frps.ini
监控服务端状态地址:http://xx.xx.xx.xx:7500/
客户端:
解压压缩包
客户端:frpc(启动程序),frpc.ini(配置文件)
标记配置文件:
[common] server_addr = xx.xx.xx.xx server_port = 7000 token = 12345678 [rdp] type = tcp local_ip = 127.0.0.1 local_port = 3389 remote_port = 7001 [web] type = http custom_domains = xx.xx.xx.xx local_ip = 127.0.0.1 local_port = 8080
- “server_addr”为服务端IP地址,填入即可。
- “server_port”为服务器端口,填入你设置的端口号即可,如果未改变就是7000
- “token”是你在服务器上设置的连接口令,原样填入即可。
服务端启动命令:(需要进入到frp文件夹中)
./frpc -c ./frpc.ini
2个通道启动成功
http访问地址就是http://xx.xx.xx.xx:10081——>127.0.0.1:8080
这是简单部署,如果需要更高级的玩法可以看官方文档(也有中文的):
https://github.com/fatedier/frp/blob/master/README_zh.md
最后
没有VPS(公网服务器)的,或者觉得麻烦的,网上也有很多不少免费的服务端,只需要下载对应客户端进行稍微配置,这里不细讲。
公网服务器1台
其他:
如果出现:
是没有权限:
解决:
chmod 777 frps
参考文章: