美工统筹SEO,为企业电子商务营销助力!
详解基于docker搭建lanproxy内网穿透办事
一佰互联网站开辟设想(www.taishanly.com) 颁布发表日期 2020-04-23 09:20:22 阅读数: 157
文档更新申明
2018年04月06日 v1.0
内网穿透信任是后端开辟者常常碰到的须要,可是怎样完成呢?实在有现成的办事:花生壳、ngrok等,可是,比来花生壳颁布发表,收费版的内网穿透将不撑持80端口映照了,而收费版的ngrok也不够不变,因而乎,我就起头需找新的处理计划了
本文利用了docker、nginx,要全数搞懂的话须要必然的后端根本(固然,根基上入个门就能够了),小我以为仍是有必然阅读门坎的,可是你若是只是想把办事搭建起来,根据步骤来做是不难的
1、概述
内网穿透实在便是用办事器做一其中转,将要求转发,本文记实了在 ubuntu 16.04
上,基于 docker
搭建的内网穿透办事
1.1、道理
内网穿透的道理以下图所示:
- 用户拜候咱们的办事器,这个办事器是有公网IP的,以是用户能够无压力拜候
- 办事器与本地电脑坚持长链接,当有要求的时辰,办事器将要求转发到咱们的本地电脑
- 本地电脑将呼应答复给办事器
- 办事器将呼应答复给用户
1.2、完成
要搭建内网穿透,咱们得完成两个使命
在公网能拜候的办事器上运转咱们的内网穿透办事; 在本地电脑上面运转内网穿透客户端。
固然,你能够本身根据道理完成一套,不过咱们有现成的三方开源东西,能够帮咱们完成这一套功效。这个便是咱们明天的配角 lanproxy 。
2、完成步骤
现成的东西已找到,接上去便是简略的搭建一下了,搭建进程分为办事端和本地电脑端
2.1、办事端流程:
- 在办事器上装置
docker
和nginx
- 在办事器上经由过程
docker
运转lanproxy server
- 将域名剖析到咱们的办事器
- 设置装备摆设
nginx
反向代办署理 - 翻开
lanproxy
背景页面,增加客户端和映照信息
2.2、本地电脑流程:
- 运转要被映照的办事
- 运转本地电脑映照客户端法式(
lanproxy client
)
上面起头办事真个设置装备摆设:
2.1.1、在办事器上装置 docker
和 nginx
nginx
的装置是很简略的,一个号令就搞定
docker
也能够利用剧本装置,也是一句号令的事
# 1、装置nginx$ sudo apt-get install nginx# 2、装置docker$ curl -fsSL http://get.docker.com | bash -s docker --mirror Aliyun# 可选步骤,建docker源点窜成阿里云$ sudo mkdir -p /etc/docker$ sudo tee /etc/docker/daemon.json <<-"EOF"{ # 上面的链接须要到阿里云背景检查,每小我的加快地点是不一样的 "registry-mirrors": ["http://abcdefg.mirror.aliyuncs.com"]}EOF$ sudo systemctl daemon-reload$ sudo systemctl restart docker
2.1.2 在办事器上经由过程 docker
运转 lanproxy server
办事装置终了以后,就能够用docker跑办事了,能够本身写一个 Dockerfile
,这里,我就把本身写的放出来吧,大师能够拿去用着,gayhub 传递门
这里我点窜了 proxy-server-0.1
的局部文件,由于在 docker
中,须要保管办事前台运转,不然容器会被 kill
掉,而官网默许的启动剧本是背景启动的,把 bin/startup.sh
外面的启动号令点窜成前台启动便可(去掉nohub和后面的1&2 &)
# 1、克隆docker设置装备摆设,若是要点窜设置装备摆设能够编辑 conf/config.properties 文件,设置装备摆设体例见lanproxy官网$ git clone http://github.com/fengqiangboy/lanproxy-docker.git lanproxy-docker# 2、build docker镜像$ cd lanproxy-docker$ sudo bash build_container.sh# 3、运转docker容器$ bash run_container.sh
2.1.3 将域名剖析到咱们的办事器
须要两个域名,一个用来拜候咱们的 lanproxy
背景,一个用来拜候咱们须要内网穿透的办事
比方:
lanproxy.fengqiangboy.com -> 用来拜候lanproxy后端test.fengqiangboy.com -> 用来拜候内网穿透办事
2.1.4设置装备摆设 nginx
反向代办署理
将两个域名剖析到咱们的办事器以后,再经由过程反向代办署理,将其反代到咱们的lanproxy端口
上面设置装备摆设的终究结果便是:
- 咱们能够经由过程
lanproxy.fengqiangboy.com
拜候lanproxy
后 - 咱们能够经由过程
test.fengqiangboy.com
拜候本地电脑映照的办事
lanproxy.fengqiangboy.com.conf:
server { listen 80; # 这里利用本身的域名 server_name lanproxy.fengqiangboy.com; charset utf-8; 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"; }}
test.fengqiangboy.com.conf:
server { listen 80; # 这里利用本身的域名 server_name test.fengqiangboy.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:50000; client_max_body_size 35m; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; }}
2.1.5 翻开 lanproxy
背景页面,增加客户端和映照信息
- 翻开
http://lanproxy.fengqiangboy.com
- 用后面
conf/config.properties
文件中设置装备摆设的账号和暗码登录背景 - 增加一个客户端,记着客户端密钥
- 增加完客户端以后增加一个设置装备摆设,设置装备摆设以下图
到此,办事真个设置装备摆设就完成了。上面起头本地电脑的设置装备摆设。
2.2.1 运转要被映照的办事
既然要把内网的办事映照进来,那起首就要把本地电脑的办事跑起来吧,不然拿甚么来映照?这里就良多操纵体例了,各个说话都不一样,把本身的办事跑起来就行
2.2.2 运转本地电脑映照客户端法式( lanproxy client
)
这里有两个体例,一个体例是利用官网供给的 go
版本,不须要装置 java
环境在本地电脑上,别的一种是利用官网供给的 java
版本,这里我利用 java
版本的。
克隆 lanproxy
代码到本地电脑
$ git clone http://github.com/ffay/lanproxy.git lanproxy
打包 lanproxy
打包之前须要确保你装置了 maven
$ cd lanproxy$ mvn package
点窜设置装备摆设文件信息
打包完成以后,客户端文件会呈此刻 distribution/proxy-client-0.1
目次下,翻开以后有是个文件夹: bin
、 conf
、 lib
和 log
,设置装备摆设信息在 conf/config.properties
文件内,根据后面办事真个设置装备摆设信息点窜一下。
# 这里是在lanproxy背景设置装备摆设的密钥client.key=key# 设置装备摆设ssl信息,根据办事真个设置装备摆设填写ssl.enable=truessl.jksPath=test.jksssl.keyStorePassword=123456# 办事器的ipserver.host=163.162.161.160#根据办事端设置装备摆设,开启ssl的话填写ssl的端口,不然填写通俗端口server.port=4993
启动客户端
客户端信息设置装备摆设完成以后就能够启动客户端了
# mac/linux利用这个$ bash bin/startup.sh# Windows 间接运转 bin/startup.bat
拜候测试
根据后面的设置装备摆设,这时辰咱们应当是能够经由过程 test.fengqiangboy.com
来拜候咱们的内网办事了的,用阅读器翻开看看
3、一点补充
为甚么要利用docker?
利用docker首要是为了不粉碎办事端环境,只是给 lanproxy
装置了一个 jdk8
的环境,不影响其余办事持续运转;并且利用 docker
还能够很便利的转移到别的机械上面安排,只需把 Dockerfile
拷贝曩昔就能够了。
如许搭建,办事重视启的话须要手动重启 lanproxy
吗?
不须要,在办事端启动 docker
容器的剧本下,我增加了 --restart unless-stopped
参数,只需 docker
办事启动了,容器就会跟着启动,若是你不须要这个须要,能够去掉这个参数
为甚么不必花生壳?
前未几看到花生壳的通知布告,说从4月1日起头,收费版将不供给80端口映照,现实上我用这个映照最大的须要便是做微信调试,去掉80端口就不能做微信调试了,不知足我的须要了,固然,花生壳仍是不错的,若是能知足你的须要,仍是能够省时省力完成内网穿透的
以上便是本文的全数内容,但愿对大师的进修有所赞助,也但愿大师多多撑持网页设想。
上一篇: Windows下tomcat装置教程 | 下一篇:linux经常利用号令小结之yum、源码装置