如何实现内网穿透 如果你在百度搜索内网穿透,会找到花生壳、ngrok、FRP 等一些商业化工具,不过这些工具通常需要收费,免费的往往会限速。传送门:https://github.com/ffay/lanproxy
公网服务端配置
2.1 服务端启动
为了降低部署门槛,开源社区已经有小伙伴做好了 docker 镜像。 所以,服务端我们直接采用 docker 启动。
首先,新建项目文件夹:
mkdir lanproxy
cd lanproxy
然后,编写 docker-compose.yml 配置文件:
version: '3.1' services: lanproxy-client: image: franklin5/lanproxy-server container_name: lanproxy-server environment: # 配置后台管理账号,默认admin - LANPROXY_USERNAME=admin # 配置后台管理密码,默认admin - LANPROXY_PASSWORD=admin volumes: # 用于保存创建的配置文件,避免重启服务后配置消失 - /usr/local/docker/lanproxy-server/config-data:/root/.lanproxy ports: - 8090:8090 - 4900:4900 - 4993:4993 - 9000-9100:9000-9100 restart: always
解释下上面几个端口: 8090:用于服务端 web 界面,方便对多个客户端进行管理 9000-9100:用于配置多个客户端,进行端口映射 最后,启动服务: docker-compose up -d
启动成功后,在宝塔面板中查看状态,如果启动失败。管理
这里进去可以查看容器日志:
2.2 打开防火墙
注意:上述端口:8090、4900、4993、9000-9100 都需要在防火墙中放开,否则无法访问!
2.3 打开 Web 管理界面
打开 web 应用,也就是公网服务器的 IP + 端口号,例:your_ip:8090
。登陆账号和密码,在 docker-compose.yml 中有配置,默认都是 admin。

进来后,我们先添加一个客户端,注意这里的密钥,会在后面客户端配置时需要用到。
3. 内网客户端配置
3.1 安装 Java 环境
比如我们要装稳定版 Java 1.8,命令行一键安装:
sudo apt install openjdk-8-jre-headless
当然,也可以直接在宝塔面板中进行安装:
上图中给出了 JDK 的地址,我们需要将其加入到环境变量中:
echo "export PATH=$PATH:/www/server/java/jdk1.8.0_371/bin/" >> ~/.bashrc
# 让更改立即生效
source ~/.bashrc
再看下是否安装成功:
java -version
1
3.2 安装客户端
下载:
git clone https://github.com/frank-lam/lanproxy-client.git
修改配置文件:
在 distribution/proxy-client-0.1/conf/config.properties
中进行修改.m默认只需要填入 client.key
和 server.host
:
# 这里是在lanproxy后台配置的密钥
client.key=刚刚在 2.2 拿到的客户端密钥
# 配置ssl信息,根据服务端的配置填写(enable = false 就不需要配置)
ssl.enable=false
ssl.jksPath=test.jks
ssl.keyStorePassword=123456
# 公网服务器ip,也支持域名
server.host=xx.xx.xx.xx
#proxy-server ssl默认端口4993,默认普通端口4900
#ssl.enable=true时这里填写ssl端口,ssl.enable=false时这里填写普通端口
server.port=4900
启动客户端服务:
sh start.sh
- 1
如果需要关闭服务:# 查看客户端运行状态
sh status.sh
# 停止客户端
sh stop.sh
回到客户端管理界面,发现当前客户端状态,已经变更为 在线
:
4、添加端口映射
回到客户端管理界面,在 配置管理
这里,添加一个端口映射:
- 代理名称:随便填
- 公网端口:9000-9100 中任意一个,用于映射到内网服务
- 内网主机 IP:找到内网主机的 IP,以及你要映射出来的服务的端口号
- 按照上述步骤,我为当前客户端添加了两个映射关系:
- 所以,服务端和客户端的映射关系应该是:
- 公网服务端的 IP:9000 对应 101.33.210.166:3001
- 公网服务端的 IP:9001 对应 101.33.210.166:3000
其中 3000 端口是我们上篇中配置的 OneAPI, 我们打开来看看:
至此,你就可以愉快地采用公网 IP + 9000-9100 端口号去访问内网服务了~
- 写在最后
本文通过一场实操带大家走完了
内网穿透
的全部流程~作为一款开源免费的服务,lanproxy 使用门槛低,配置简单,非常适合新手玩家尝试。
如果本文对你有帮助,欢迎点赞收藏备用!