当我们想把本地电脑或服务器搭建的Web网站映射到外网时,会经常用到Frp,但是Frp虽然功能很强大,但是非常不好用,因此推荐lanproxy内网穿透工具,自带Web管理面板,让我们在服务端配置方便了很多,而且一个服务端可以支持多个客户端连接,看起来还不错,这里就分享下。
简介
lanproxy
是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,目前仅支持tcp
流量转发,可支持任何tcp
上层协议,可用作访问内网网站、本地支付接口调试、SSH
访问、远程桌面等等,而且带Web
在线管理面板,添加端口配置十分简单。
相关链接
主页地址:https://nat.io2c.com/
Github地址:https://github.com/ffay/lanproxy https://gitee.com/fnw/lanproxy
发布包下载:https://seafile.cdjxt.net/d/2e81550ebdbd416c933f/
服务端安装
服务端需要安装在一个有公网IP
的服务器上,系统为Linux/Windows
均可,我这里使用的是腾讯云的云主机安装了宝塔面板。
1、安装JAVAjava
版本至少为1.7
,查看命令为java -version
,我这里安装了JAVA1.8。如果没安装可参考:Linux/Windows系统安装最新版JAVA教程。
2、lanproxy服务端的安装
因为我使用了宝塔面板,因此我在宝塔面板里将事先下载的proxy-server-0.1.tar.gz文件解压保存在/usr/local/proxy-server-0.1目录下,下载地址:点击进入。
然后编辑配置文件conf/config.properties
,参考如下:
server.bind=0.0.0.0server.port=4900server.ssl.enable=trueserver.ssl.bind=0.0.0.0server.ssl.port=4993server.ssl.jksPath=test.jksserver.ssl.keyStorePassword=123456server.ssl.keyManagerPassword=123456server.ssl.needsClientAuth=falseconfig.server.bind=0.0.0.0config.server.port=8090config.admin.username=adminconfig.admin.password=admin
当然没有安装宝塔等面板的服务器也可以直接使用wget下载,代码如下:
#下载最新发布包wget -O proxy-server-0.1.zip 'https://seafile.cdjxt.net/d/2e81550ebdbd416c933f/files/?p=/proxy-server-0.1.zip&dl=1'#解压发布包unzip proxy-server-0.1.zip#进入到文件夹cd proxy-server-0.1
然后编辑配置文件conf/config.properties
,参考如下:
server.bind=0.0.0.0#与代理客户端通信端口server.port=4900#ssl相关配置server.ssl.enable=trueserver.ssl.bind=0.0.0.0server.ssl.port=4993server.ssl.jksPath=test.jksserver.ssl.keyStorePassword=123456server.ssl.keyManagerPassword=123456#这个配置可以忽略server.ssl.needsClientAuth=false#WEB在线配置管理相关信息config.server.bind=0.0.0.0config.server.port=8090config.admin.username=adminconfig.admin.password=admin
2、云主机上运行lanproxy
cd /root/proxy-server-0.1/binchmod +x startup.sh./startup.sh
然后打开地址http://ip:8090
,使用上面配置中配置的用户名密码登录,进入Web
管理面板,且配置数据存放在~/.lanproxy/config.json
文件中。
#如果打不开Web界面,就需要开启防火墙,一般CentOS系统出现情况最多#Centos 6系统iptables -I INPUT -p tcp --dport 8090 -j ACCEPTservice iptables saveservice iptables restart#CentOS 7系统firewall-cmd --zone=public --add-port=8090/tcp --permanent firewall-cmd --reload
3、lanproxy开机自启动
cd ~
ll
cd /etc/
ll
vim rc.local
键盘敲击 i 键,进入编辑模式,在最下面输入下面代码
cd /usr/local/proxy-server-0.1/bin./startup.sh
编辑完点击Esc键退出编辑模式(),输入:wq保存配置并退出vim模式。
4、Windows系统安装
方法参考上面,只是启动的时候双击bin
文件夹里的startup.bat
即可运行。
客户端使用
客户端一般安装在一个内网的VPS
服务器或Windows
电脑上使用。这里说下JAVA
和非JAVA
两个客户端的使用方法,客户端下载地址:点击进入。
1、配置服务端
首先我们通过http://ip:8090
进入服务端Web
管理界面,先添加客户端,名称随便填。
然后点击刚刚添加的客户端名称,再添加配置,设置公网端口,后端IP:端口
。
截图的配置意思是将内网的888
端口映射到服务器的8080
端口,也就是访问服务器ip:8080
等于访问内网ip:888
。
这时候基本配置好了一个客户端节点,且该节点可以供多个客户端使用。
2、JAVA客户端使用
本版本需要安装java
,且版本依然至少为1.7
,查看命令为java -version
,如果没安装可参考:Linux/Windows系统安装最新版JAVA教程。
然后进入客户端下载地址,下载proxy-java-client-0.1.zip,再将文件解压到服务器或者Windows
电脑上,编辑conf/config.properties
配置文件,修改如下:
#与在proxy-server配置后台创建客户端时填写的秘钥保持一致;client.key=ssl.enable=truessl.jksPath=test.jksssl.keyStorePassword=123456#这里填写实际的proxy-server地址;没有服务器默认即可,自己有服务器的更换为自己的proxy-server(IP)地址server.host=lp.thingsglobal.org#proxy-server ssl默认端口4993,默认普通端口4900#ssl.enable=true时这里填写ssl端口,ssl.enable=false时这里填写普通端口server.port=4993
最后运行lanproxy
:
#运行方法可参考服务端运行步骤linux(mac)系统:直接进入bin目录,然后运行startup.sh脚本windows系统:直接双击bin目录下的startup.bat
3、非JAVA客户端使用
该方法可以不用安装java
即可在客户端运行lanproxy
,首先下载对应版本的JAVA客户端,然后解压出来,再运行以下命令:
#以下需要使用的参数是服务端IP,服务端端口,客户端密匙1、普通端口连接#mac 64位nohup ./client_darwin_amd64 -s SERVER_IP -p SERVER_PORT -k CLIENT_KEY &#linux 64位nohup ./client_linux_amd64 -s SERVER_IP -p SERVER_PORT -k CLIENT_KEY &#windows 64 位./client_windows_amd64.exe -s SERVER_IP -p SERVER_PORT -k CLIENT_KEY2、SSL端口连接#mac 64位nohup ./client_darwin_amd64 -s SERVER_IP -p SERVER_SSL_PORT -k CLIENT_KEY -ssl true &#linux 64位nohup ./client_linux_amd64 -s SERVER_IP -p SERVER_SSL_PORT -k CLIENT_KEY -ssl true &#windows 64 位client_windows_amd64.exe -s SERVER_IP -p SERVER_SSL_PORT -k CLIENT_KEY -ssl true
这里单独说下Windows
电脑使用方法,首先按住Win+R
,输入cmd
进入命令窗口。
#如果你将客户端exe文件解压到了D盘的RATS文件夹,则使用命令进入RATS文件夹cd /d d:\RATS#如果你是SSL端口连接,先替换自己的IP,端口,CLIENT_KEY后运行,普通端口命令参考上面client_windows_amd64.exe -s SERVER_IP -p SERVER_SSL_PORT -k CLIENT_KEY -ssl true
最后客户端运行后,服务端Web
界面的配置状态显示在线即连接成功。
如果显示不在线检查下防火墙端口和配置是否正确什么的。