Javascript is required
LanProxy内网穿透工具

lanproxy 是一个将局域网个人电脑、服务器代理到公网的内网穿透工具

准备

  • 公网服务器
  • 两个域名,一个用作后台控制面板,一个用作反向代理查看域名
  • 环境 Java, Maven, Docker, Nginx

公网服务器

docker run -d \
           --name lanproxy-server \
           -p 8090:8090 \
           -p 4900:4900 \
           -p 4993:4993 \
           -p 9000-9100:9000-9100 \
           biodwhu/lanproxy

image-20210618095948043

输入默认账号密码 admin/admin.

修改配置. 则需要进入docker内docker exec -it 7f2 sh

cd ..
cd conf
cat config.properties
server.bind=0.0.0.0
server.port=4900

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

config.server.bind=0.0.0.0
config.server.port=8090
config.admin.username=admin

Nginx反向代理配置域名

准备域名确定可以访问

image-20210618100808411

配置Nginx, 然后重启配置。

server
{
    listen 80;
      listen 443 ssl http2;
    server_name proxy.569781231.xyz;
    charset utf-8;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/proxy.569781231.xyz;
    
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        proxy_pass       http://127.0.0.1:8090;
        client_max_body_size 35m;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
    
    。。。
    。。。
}

image-20210618101201136

配置电脑的Nginx域名

server
{
    listen 80;
    server_name mac.569781231.xyz;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/mac.569781231.xyz;
    
    charset utf-8;
    location / {
        proxy_set_header   X-Real-IP $remote_addr;
        proxy_set_header   Host      $http_host;
        # 这里根据你的lanproxy配置,改成 外网接口 的值,在lanproxy后台网页上配置,后面配置
        proxy_pass       http://127.0.0.1:9000;
        client_max_body_size 35m;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

配置后台服务

  1. 添加一个客户端

image-20210618101254973

  1. 添加配置

image-20210618101359533

内网电脑配置

我的电脑是Mac。确保有JDK环境

  java -version
java version "1.8.0_271"
Java(TM) SE Runtime Environment (build 1.8.0_271-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.271-b09, mixed mode)

Maven环境

 mvn -v
Apache Maven 3.6.1 (d66c9c0b3152b2e69ee9bac180bb8fcc8e6af555; 2019-04-05T03:00:29+08:00)
Maven home: /Users/inisl/software/maven
Java version: 1.8.0_271, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_271.jdk/Contents/Home/jre
Default locale: zh_CN, platform encoding: UTF-8
OS name: "mac os x", version: "10.16", arch: "x86_64", family: "mac"

Java方式启动lanproxy client

1. 克隆项目
git clone https://github.com/ffay/lanproxy.git lanproxy

2. 打包项目
$ cd lanproxy
$ mvn package

3. 修改配置文件信息
打包完成之后,客户端文件会出现在 distribution/proxy-client-0.1 目录下,打开之后有是个文件夹:bin、conf、lib和log,配置信息在 conf/config.properties 文件内,根据前面服务端的配置信息修改一下。

image-20210618102229407

client.key=b51c135d0e284b0f88914f5f51ff0cbc
ssl.enable=true
ssl.jksPath=test.jks
ssl.keyStorePassword=123456

server.host=123.57.160.114

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

然后就可以启动客户端了。

  bin git:(master)  ./startup.sh
Starting the proxy client ...started
PID: 13947

查看状态

image-20210618103410596

数据统计

image-20210618103432981

image-20210618110956612


参考

https://github.com/ffay/lanproxy