暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

内网穿透工具Lanproxy

码农黄某人 2021-07-11
1961

前言

内网穿透原理:

  1. 用户访问我们的服务器,这个服务器是有公网IP的,所以用户可以无压力访问

  2. 服务器与本地电脑保持长链接,当有请求的时候,服务器将请求转发到我们的本地电脑

  3. 本地电脑将响应回复给服务器

  4. 服务器将响应回复给用户


一、lanproxy服务端搭建

注意,服务端需为可被外网访问

(1)docker-compose.yml

# https://hub.docker.com/r/franklin5/lanproxy-server
version: '3.1'
services:
lanproxy-server:
  image: franklin5/lanproxy-server
  container_name: lanproxy-server
  environment:
    # 配置你的账号,默认admin
    - LANPROXY_USERNAME=admin
    # 配置你的密码,默认admin
    - LANPROXY_PASSWORD=admin
  volumes:
    # 用于保存创建的配置文件,避免重启服务后配置消失
    - /data/lanproxy_server/config-data:/root/.lanproxy
  ports:
    - 8090:8090 # web界面端口
    - 4900:4900
    - 4993:4993
    - 9008-9009:9008-9009 # 可映射为内网端口
    #- 9000-9100:9000-9100
  restart: always

说明:挂载出来的文件是一个json文件,用来保存已配置好的穿透数据


[
{"name":"example","clientKey":"be59f41977c044g28711091696eee69d","proxyMappings":
      [
          {"name":"www.example.com","inetPort":"9008","lan":"172.17.2.117:80"},
          {"name":"mobile.example.com","inetPort":"9009","lan":"172.17.2.117:81"}
      ],"status":1
    }
]

(2)启动容器

docker-compose up -d
公网访问端口 8090 进入web端

说明:在公网服务器上配置域名。如果不配置域名,也可以通过http://IP:PORT的形式来访问,同时注意公网服务器上开放相应的端口

(3)界面配置

客户端名称:随便写

客户端密钥:点击生成随机密钥,生成的密钥需要保留,该密钥需要填写到客户端配置文件中

代理名称:随便写

公网端口:需要安全组开放此端口。这里指定公网服务器上映射lanproxy-server容器的端口,如9008内网主机IP:内网机器的IP加端口。如172.17.2.117:80


二、客户端搭建

docker run

docker run -d --name lanproxy-client -e LANPROXY_KEY="be59f41977c044g28711091696eee69d" -e LANPROXY_HOST="120.120.120.120" --restart=always franklin5/lanproxy-client

参数说明:

LANPROXY_KEY :上面web界面中生成的client key

LANPROXY_HOST: 公网服务器的IP地址

启动成功后,即可通过公网域名或ip配置端口访问内网服务

//TODO java或go程序启动客户端,不使用docker



文章转载自码农黄某人,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论