背景:

把自己本地的网站,服务分享到外网。可控性强。

原计划使用ngrok搭建,官网https://ngrok.com/ 用2天都没完成,遇到各种奇奇怪怪的坑。没有完成,而且最新开源版本是1.7已经几年没有改动了。

所以更换为:frp来搭建,无官网

github:https://github.com/fatedier/frp

正题:

准备工作:

VPS(公网服务器)

下载源码:https://github.com/fatedier/frp/releases

内网穿透java开源 开源内网穿透源码_内网穿透java开源

 

 服务端:

把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

流程:

内网穿透java开源 开源内网穿透源码_客户端_02

 

 

内网穿透java开源 开源内网穿透源码_服务端_03

 

 开始设置配置:

因为是服务端,使用到的是: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

 

内网穿透java开源 开源内网穿透源码_服务端_04

 监控服务端状态地址:http://xx.xx.xx.xx:7500/

内网穿透java开源 开源内网穿透源码_服务器_05

 

 

客户端:

解压压缩包

 

内网穿透java开源 开源内网穿透源码_客户端_06

 客户端: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

内网穿透java开源 开源内网穿透源码_服务端_07

 

 

 2个通道启动成功

内网穿透java开源 开源内网穿透源码_服务器_08

 

 

http访问地址就是http://xx.xx.xx.xx:10081——>127.0.0.1:8080

 这是简单部署,如果需要更高级的玩法可以看官方文档(也有中文的):

https://github.com/fatedier/frp/blob/master/README_zh.md

最后

没有VPS(公网服务器)的,或者觉得麻烦的,网上也有很多不少免费的服务端,只需要下载对应客户端进行稍微配置,这里不细讲。

公网服务器1台

其他:

如果出现:

内网穿透java开源 开源内网穿透源码_客户端_09

 



 

解决:

chmod 777 frps

 

参考文章:

https://sspai.com/post/52523