Lanproxy内网穿透搭建
1、内网穿透定义
内网穿透是一种将外部网络流量传输到内部网络的技术,通常用于让外部设备或计算机访问内部网络上的资源,即使这些资源位于防火墙、路由器或 NAT(网络地址转换)后面。内网穿透有多种用途,包括能够从远程访问家庭网络摄像头、文件服务器、打印机等设备,或者测试网站或应用程序时让外部设备访问您的本地开发环境。
有多种工具和服务可用于实现内网穿透,下面是一些常用的方法:
端口转发/端口映射: 这是最基本的内网穿透方法。可以在路由器上配置端口映射,将外部流量路由到特定端口上的内部设备。这通常用于远程访问设备或服务。
反向代理: 使用反向代理服务器,可以将外部请求路由到内部服务器,例如通过使用NGINX或Apache等软件配置。这对于向外部公开Web应用程序非常有用。
VPN(虚拟专用网络): 可以设置VPN服务器,允许外部设备通过VPN连接到内部网络。这样,远程设备就好像它们位于内部网络一样。
专门的内网穿透工具: 有许多第三方工具和服务可以帮助您轻松实现内网穿透,例如ngrok、frp、zerotier等。这些工具提供了更多高级功能,可以简化配置和管理。
物联网(IoT)平台: 如果您正在构建物联网设备或应用程序,许多IoT平台提供了内网穿透功能,以便远程管理和监控设备。
2、Lanproxy方案
Lanproxy :是一个用于实现内网穿透的开源工具。它可以将外部网络流量安全地传输到内部网络,以便让外部设备或计算机访问内部网络上的资源,即使这些资源位于防火墙或 NAT 后面。
简单易用: Lanproxy 提供了简单的配置和管理界面,使内网穿透变得容易上手。
多协议支持: 它支持多种协议,包括HTTP、HTTPS、TCP、UDP等,因此可以用于不同类型的应用。
安全性: Lanproxy 支持身份验证和访问控制,以确保只有授权的设备可以访问内部资源。
跨平台: Lanproxy 可以在多种操作系统上运行,包括Linux、Windows和macOS。
用途广泛: 您可以使用 Lanproxy 来远程访问内部网络上的Web应用、数据库、文件服务器等各种资源,或者用于开发和测试。
选择Lanproxy的原因:
支持一对多穿透,一个服务端,多个客户端
基于端到端穿透
使用Web面板管理客户端
连接到客户端后,可以穿透客户端可以访问到的所有内网端口
支持多平台Linux、Windows
3、搭建
1、准备工作
外网:需要一台有公网的服务器或VPS,Linux系统即可,详细系统类型不限
内网:一台Linux主机或虚拟机,Linux系统即可,详细系统类型不限
服务器端需要开放两个端口,其他为业务端口
1、内网穿透服务器端与客户端通信端口
2、Lanproxy控制面板端口
内网客户端只需要配置服务端的IP地址、通信端口、客户端密钥即可
2、搭建步骤
服务端配置
先安装必要的软件和环境
Ubuntu/Debian
apt update && apt upgrade -y && apt install openjdk-17* tar wget vim -y
CentOS/Rocky
yum update && yum upgrade -y && yum install openjdk-17* tar wget vim -y
ArchLinux
pacman -S jdk17-openjdk tar wget vim
使用Xftp上传文件,或复制上面的下载链接,使用wget命令直接下载
wget https://miku01.cc/upload/proxy-server-0.1.tar
解压proxy-server-0.1.tar
文件
mkdir /lanproxy-server
tar -xvf proxy-server-0.1.tar -C /lanproxy-server
修改Lanproxy-server的配置文件
vim /lanproxy-server/proxy-server-0.1/conf/config.properties
按insert
键进入编辑模式,按ESC
可以退出编辑模式进入命令模式
命令模式下输入:wq
即可保存并退出
仅修改以下参数
server.port=4900 #服务器与客户端的通信端口
config.server.port=8090 #服务器控制面板端口
config.admin.username=admin #控制面板用户名
config.admin.password=admin #控制面板密码
修改完配置文件后即可保存并退出,运行以下命令启动Lanproxy
!!防火墙要放行以上的通信端口
和面板端口
启动
bash /lanproxy-server/proxy-server-0.1/bin/startup.sh
停止
bash /lanproxy-server/proxy-server-0.1/bin/stop.sh
启动后出现PID即正常启动
-e Starting the proxy server ...started
PID: 22514
在浏览器输入服务器IP+控制面板端口
进入Web控制台
生成一个客户端密钥
客户端配置
使用Xftp上传客户端文件,或使用wget命令下载
wget https://miku01.cc/upload/proxy-java-client-0.1.zip
解压
mkdir /lanproxy-server
tar -xvf proxy-java-client-0.1.tar -C /lanproxy-client/
仅修改以下配置
vim /lanproxy-client/proxy-java-client-0.1/conf/config.properties
client.key=80a59fdb2c974ee78b94dacf022204bf #将Lanproxy控制台生成的客户端密钥替换这里的密钥
server.host=123.123.123.123 #服务器IP地址
server.port=4900 #服务器通信端口
启动
bash /lanproxy-client/proxy-java-client-0.1/bin/startup.sh
停止
bash /lanproxy-client/proxy-java-client-0.1/bin/stop.sh
配置端口转发
在Lanproxy控制台可以看到客户端已经上线,可以开始配置端口转发
将内网的192.168.1.1的80端口穿透到公网服务器的6999端口
防火墙放行6999端口,现在访问公网服务器IP+6999端口就相当于访问到了内网服务器的192.168.1.1:80
但是这种携带端口访问的方法并不优雅,在后续的专栏文章中将使用反向代理去除端口
评论区