社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
基于docker的lanproxy内网穿透服务
目录
IP地址 | 操作系统 | 角色 | 网络说明 |
---|---|---|---|
172.17.2.117 | Ubuntu16.04 | lanproxy客户端 | 办公内网 |
120.120.120.120 | Ubuntu16.04 | lanproxy服务端 | 阿里云公网 |
docker-compose.yml文件内容如下:
root@chenhan:~/docker/lanproxy-docker# cat 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
- 4900:4900
- 4993:4993
- 9008-9009:9008-9009
#- 9000-9100:9000-9100
restart: always
说明:
上面的挂载卷,是用来保存已配置好的穿透数据, 这个数据是一个json文件
root@node:/data/lanproxy_server/config-data# cat config.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
}
]
端口:9008-9009:9008-9009可以自行定义
启动lanproxy容器:
docker-compose up -d
说明:在公网服务器上配置域名。如果不配置域名,也可以通过http://IP:PORT的形式来访问,同时注意公网服务器上开放相应的端口
lanproxy-server web界面访问nginx配置文件如下:
server {
listen 80;
# 这里使用自己的域名
server_name lanproxy.example.com;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
# 这里根据你的 lanproxy 配置,改成 config.server.port的值
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";
}
}
# 配置完成后可通过lanproxy.example.com访问lanproxy-server的web界面
配置穿透域名,该域名访问后会通过lanproxy映射到上面办公内网的指定主机上的指定端口
server {
listen 80;
# 这里使用自己的域名
server_name www.example.com;
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";
}
}
Client name:名字随便取
点击后面的Generate random key生成一个客户端密钥,该密钥需要填写到客户端配置文件中
基于docker的lanproxy内网穿透服务
internet port:需要安全组开放此端口。这里指定公网服务器上映射lanproxy-server容器的端口,如9008
Backend ip:内网机器的IP加端口。如172.17.2.117:80
这里我需要穿透的内网机器IP地址为172.17.2.117的80端口。在该主机上启动lanproxy客户端容器:
# https://hub.docker.com/r/franklin5/lanproxy-client
docker run -d
--name lanproxy-client
-e LANPROXY_KEY="be59f41977c044g28711091696eee69d" # 上面web界面中生成的client key
-e LANPROXY_HOST="120.120.120.120" # 公网服务器的IP地址
--restart=always
franklin5/lanproxy-client
启动容器成功后,即可通过www.example.com域名访问到172.17.2.117:80上的web程序
————————————————
版权声明:本文为CSDN博主「琴酒网络」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/pcn01/article/details/105814893
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!