lanproxy搭建内网穿透

Posted 穷少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lanproxy搭建内网穿透相关的知识,希望对你有一定的参考价值。

文章目录

1.什么是内网穿透?

  • 内网穿透也叫做内网映射,也叫“NAT穿透”
  • 一句话来说就是,让外网能访问你的内网;把自己的内网(主机)当成服务器,让外网能访问
  • 原理图解如下:

使用lanproxy来搭建内网穿透

lanyproxy

lanproxy 是一个将局域网个人电脑、服务器代理到公网的内网穿透工具,目前仅支持 tcp 流量转发,可支持任何 tcp 上层协议(访问内网网站、本地支付接口调试、ssh 访问、远程桌面…)。目前市面上提供类似服务的有花生壳、TeamView、GoToMyCloud 等等,但要使用第三方的公网服务器就必须为第三方付费,并且这些服务都有各种各样的限制,此外,由于数据包会流经第三方,因此对数据安全也是一大隐患。https://lanproxy.io2c.com

搭建

硬件与环境要求

  1. 一台公网服务器(Centos 7.6),只要有一台公网的ip的电脑即可,window或者linux都行
    1. 安装了java运行环境 (因为lanproxy是由java写的程序,所以公网电脑必须有java运行环境)
    2. 安装了git(我们通过git拉去lanproxy项目)
    3. 安装了maven(通过maven打包生成可执行软件(server,client))
  2. 一台内网电脑(运行一个http服务器在内网电脑上,以便后序看结果)

服务端

服务端必须要搭建在公网ip上,因为我们要透过公网的lanproxy服务端来帮助我们进行内网穿透

下载搭建

  • 拉取github上的lanproxy项目
git clone https://github.com/ffay/lanproxy.git
  • 通过mvn来打包拉取下来的lanproxy项目
cd lanproxy
mvn package 

mvn完成之后项目里面会多一个distribution文件夹

配置

distribution文件夹下有两个文件夹

  1. proxy-server-0.1:这个文件夹是服务端
  2. proxy-client-0.1:这个文件夹是客户端

服务端相关配置都在文件夹proxy-server-0.1/conf/config.properties文件内(我们一般就使用默认,不用修改

server.bind=0.0.0.0

#与代理客户端通信端口
server.port=4900 # 这里并不是server项目的启动端口,而是.......
# 比如说你的一个部署在内网服务器上的项目占用端口4900 ,而你想通过公网ip访问内网中
# 这个4900端口下的项目,这个server.port就等于4900

#ssl相关配置 如果不适用ssl 此处可以不进行配置
server.ssl.enable=true
server.ssl.bind=0.0.0.0
server.ssl.port=4993
server.ssl.jksPath=test.jks
server.ssl.keyStorePassword=123456
server.ssl.keyManagerPassword=123456

#这个配置可以忽略
server.ssl.needsClientAuth=false

#WEB在线配置管理相关信息
config.server.bind=0.0.0.0
config.server.port=8090 # 这里是server项目启动和访问端口
# 用户名和密码
config.admin.username=admin
config.admin.password=admin

启动

启动和停止程序都在proxy-server-0.1/bin下(如果是在window系统下,直接点击startup.bat即可启动)

# 赋予可执行权限
chmod 777 ./startup.sh
chmod 777 ./stop.sh

# 启动
./startup.sh

# 停止
./stop.sh

启动之后我们可以访问lanproxy提供的可视化网站来配置 默认地址:http://[你的公网ip]:8090

密码账户取决你的配置文件

  • account:admin
  • password:admin

添加内网用户

添加成功后,就会在客户端管理里有一条记录

添加内网映射端口


添加完成

客户端

客户端我们需要搭建在需要被内网穿透的内网ip电脑上,例如在我的个人电脑上

下载安装

客户端程序就在lanproxy项目的distribution文件内,与服务端程序放在一起
所以,我们只需要在自己电脑上将项目拉去下来,mvn打包,程序与服务端下载搭建基本一模一样

客户端配置

客户端的配置与服务端的配置文件都是在conf文件夹下,

# 这里是在lanproxy后台配置的密钥
client.key=e6a49a19b8024652ab4ff2210abf2c6a

# 配置ssl信息,根据服务端的配置填写(enable = false 就不需要配置)
ssl.enable=false
ssl.jksPath=test.jks
ssl.keyStorePassword=123456

# 服务器的ip
server.host=120.92.10.120

#proxy-server ssl默认端口4993,默认普通端口4900
#ssl.enable=true时这里填写ssl端口,ssl.enable=false时这里填写普通端口
server.port=4900

启动客户端

启动程序也是放在bin文件夹下,在window系统上我们直接点击(startup.bat)启动即可


测试

我们在自己的内网电脑上开启一个http服务器,例如tomcat,将发布端口改为80端口

我们内网电脑上已经开启了客户端,并且连接到了公网上的lanproxy服务器端,所以我们可以直接访问公网电脑的80端口,来访问本地电脑上的http服务器

至此,大功告成

以上是关于lanproxy搭建内网穿透的主要内容,如果未能解决你的问题,请参考以下文章

内网穿透工具--lanproxy

基于docker的lanproxy内网穿透服务

内网穿透(集合)

内网穿透(集合)

内网穿透(集合)

内网穿透(集合)