搭建lanproxy内网穿透

前言

内网穿透原理:
  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内网穿透_第1张图片

客户端名称:随便写

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

搭建lanproxy内网穿透_第2张图片

代理名称:随便写

公网端口:需要安全组开放此端口。这里指定公网服务器上映射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

你可能感兴趣的:(内网穿透,docker,linux,http)