之前遇到联调设备,希望现网设备上报数据推送到本地开发环境测试推送接口的场景都是使用的 uTools 里面的内外网穿透。但是现在 uTools 已经关闭了这个内外网穿透的插件,一直也在找比较好的替换。用过 frp、Ngrok,要么要收费,要么配置麻烦。今天来说说 Lanproxy,有 web 配置界面,非常好理解,客户端也很丰富,使用也很简单,关键是用了下,感觉还很稳定。

搭建 Frp 博客:https://oy6090.top/posts/2dd14627/

一、环境搭建

服务端、客户端下载地址:Lanproxy 下载

我是 java 开发的,所以本机是有 java 环境的,下载的客户端直接就可以下载这个 proxy-java-client,因为用的是 windows,所以也下载一个 windows 的客户端。

image-20220714235042024

二、服务端准备

  1. 需要一个外网的服务器(我有个阿里云的),配置不要求多高
  2. 有固定外网 IP 或者域名(域名的话需要认证,我这里测试的是 ip)

三、服务端安装

第一步:将下载的 proxy-server 这个包 copy 到服务器上

第二步:解压,zip 包的解压命令 unzip 包名

1
unzip proxy-server-0.1.zip

image-20220715000141528

第三步:修改配置文件

1
2
cd proxy-server-0.1/conf
vi config.properties

image-20220715000848097

第四步: 启动

image-20220715001213755

1
nohup sh startup.sh

image-20220715002535509

四、服务端配置

4.1 添加客户端

image-20220715233139749

  • 客户端名称:根据自己来定义,例如:oyt
  • 客户端密链:点击旁边的生成随机密钥

4.2 配置管理

image-20220715233354588

  • 代理名称:可以随便设置
  • 公网端口:就是外网请求的端口
  • 后端 IP 端口:就是本地的项目内外 ip 跟端口

五、客户端启动

5.1 使用 exe 可执行程序方式启动

实也是命令启动,命令:
client_windows_amd64.exe -s 服务器 IP -p LanProxy 服务端口 -k 客户端生成的 key -ssl false

  • 服务器 IP,如果用域名,要配域名解析
  • LanProxy 服务端口与-ssl 一定要对应,比如用 4900 -> -ssl false

注意:如果这条命令做了个批处理 bat, 处理命令注意 client_windows_amd64.exe 与 bat 的相对位置
image-20220715234319991

1
client_windows_amd64.exe -s 120.76.131.* -p 4900 -k 87b~~~(填自己的) -ssl false

注意:-p 4900 这个地方看自己服务端配置文件中配置

image-20220715235721392

image-20220716000427426

出现 connSuccess 就是连接成功,云服务器记得开端口和安全组策略

5.2 java 客户端启动

配置文件目录与修改

image-20220716001611163

image-20220716001834543

注意

  1. jksPath,如果有更换,注意从服务端拷贝一个到本地客户端
  2. ssl.enable 值与端口对应
  3. 下载的 java 客户端是没有配置 client.key 的,注意补上

image-20220716002226863

六、验证

访问地址: 120.76.130.*:7070

image-20220716002405345

这里如果客户端不在线,会返回 CLIENT OFFLINE,意思就是到 LanProxy 已经成功,LanProxy 到客户端不通,返回的也很形象。

七、大致原理

e34ee14d26a74c57bf86e7a88a6147c2

实际上就是一个端口映射与长连接(底层没有细看),配置的映射端口不能重复,显然客户端配置是有限的。

七、总结

  1. 服务端部署简单、配置明确,支持 ssl
  2. 配置客户端有界面
  3. 客户端配置简单明了、客户端支持多平台方式

可以说还说非常不错的,方便我们广大开发朋友做本地联调,我非常喜欢。希望能方便大家做本地联调。