真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

基于Docker如何搭建內(nèi)網(wǎng)穿透服務(wù)

這篇文章主要介紹“基于Docker如何搭建內(nèi)網(wǎng)穿透服務(wù) ”,在日常操作中,相信很多人在基于Docker如何搭建內(nèi)網(wǎng)穿透服務(wù) 問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”基于Docker如何搭建內(nèi)網(wǎng)穿透服務(wù) ”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

10余年建站經(jīng)驗(yàn), 網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)客戶(hù)的見(jiàn)證與正確選擇。創(chuàng)新互聯(lián)建站提供完善的營(yíng)銷(xiāo)型網(wǎng)頁(yè)建站明細(xì)報(bào)價(jià)表。后期開(kāi)發(fā)更加便捷高效,我們致力于追求更美、更快、更規(guī)范。

1、概述

內(nèi)網(wǎng)穿透其實(shí)就是用服務(wù)器做一個(gè)中轉(zhuǎn),將請(qǐng)求轉(zhuǎn)發(fā)。

1.1、原理

內(nèi)網(wǎng)穿透的原理如下圖所示:

  1. 用戶(hù)訪問(wèn)我們的服務(wù)器,這個(gè)服務(wù)器是有公網(wǎng)ip的,所以用戶(hù)可以無(wú)壓力訪問(wèn)

  2. 服務(wù)器與本地電腦保持長(zhǎng)鏈接,當(dāng)有請(qǐng)求的時(shí)候,服務(wù)器將請(qǐng)求轉(zhuǎn)發(fā)到我們的本地電腦

  3. 本地電腦將響應(yīng)回復(fù)給服務(wù)器

  4. 服務(wù)器將響應(yīng)回復(fù)給用戶(hù)

基于Docker如何搭建內(nèi)網(wǎng)穿透服務(wù)

1.2、實(shí)現(xiàn)

要搭建內(nèi)網(wǎng)穿透,我們得完成兩個(gè)任務(wù)

在公網(wǎng)能訪問(wèn)的服務(wù)器上運(yùn)行我們的內(nèi)網(wǎng)穿透服務(wù); 在本地電腦上面運(yùn)行內(nèi)網(wǎng)穿透客戶(hù)端。

當(dāng)然,你可以自己根據(jù)原理實(shí)現(xiàn)一套,不過(guò)我們有現(xiàn)成的三方開(kāi)源工具,可以幫我們實(shí)現(xiàn)這一套功能。這個(gè)就是我們今天的主角 。

2、實(shí)現(xiàn)步驟

現(xiàn)成的工具已經(jīng)找到,接下來(lái)就是簡(jiǎn)單的搭建一下了,搭建過(guò)程分為服務(wù)端和本地電腦端

2.1、服務(wù)端流程:

  1.  在服務(wù)器上安裝 docker 和 nginx

  2. 在服務(wù)器上通過(guò) docker 運(yùn)行 lanproxy server

  3. 將域名解析到我們的服務(wù)器

  4. 配置 nginx 反向代理

  5. 打開(kāi) lanproxy 后臺(tái)頁(yè)面,添加客戶(hù)端和映射信息

2.2、本地電腦流程:

  1. 運(yùn)行要被映射的服務(wù)

  2. 運(yùn)行本地電腦映射客戶(hù)端程序( lanproxy client )

下面開(kāi)始服務(wù)端的配置:

2.1.1、在服務(wù)器上安裝 docker 和 nginx

nginx 的安裝是很簡(jiǎn)單的,一個(gè)命令就搞定

docker 也可以使用腳本安裝,也是一句命令的事

# 1、安裝nginx
$ sudo apt-get install nginx

# 2、安裝docker
$ curl -fssl https://get.docker.com | bash -s docker --mirror aliyun

# 可選步驟,建docker源修改為阿里云
$ sudo mkdir -p /etc/docker
$ sudo tee /etc/docker/daemon.json <<-'eof'
{
 # 下面的鏈接需要到阿里云后臺(tái)查看,每個(gè)人的加速地址是不一樣的
 "registry-mirrors": ["https://abcdefg.mirror.aliyuncs.com"]
}
eof
$ sudo systemctl daemon-reload
$ sudo systemctl restart docker

2.1.2 在服務(wù)器上通過(guò) docker 運(yùn)行 lanproxy server

服務(wù)安裝完畢之后,就可以用docker跑服務(wù)了,可以自己寫(xiě)一個(gè) dockerfile ,這里,我就把自己寫(xiě)的放出來(lái)吧,大家可以拿去用著,gayhub 傳送門(mén)

這里我修改了 proxy-server-0.1 的部分文件,因?yàn)樵?nbsp;docker 中,需要保存服務(wù)前臺(tái)運(yùn)行,否則容器會(huì)被 kill 掉,而官網(wǎng)默認(rèn)的啟動(dòng)腳本是后臺(tái)啟動(dòng)的,把 bin/startup.sh 里面的啟動(dòng)命令修改成前臺(tái)啟動(dòng)即可(去掉nohub和后面的1&2 &)

# 1、克隆docker配置,如果要修改配置可以編輯 conf/config.properties 文件,配置方法見(jiàn)lanproxy官網(wǎng)
$ git clone https://github.com/fengqiangboy/lanproxy-docker.git lanproxy-docker

# 2、build docker鏡像
$ cd lanproxy-docker
$ sudo bash build_container.sh

# 3、運(yùn)行docker容器
$ bash run_container.sh

2.1.3 將域名解析到我們的服務(wù)器

需要兩個(gè)域名,一個(gè)用來(lái)訪問(wèn)我們的 lanproxy 后臺(tái),一個(gè)用來(lái)訪問(wèn)我們需要內(nèi)網(wǎng)穿透的服務(wù)

例如:

lanproxy.fengqiangboy.com -> 用來(lái)訪問(wèn)lanproxy后端

test.fengqiangboy.com -> 用來(lái)訪問(wèn)內(nèi)網(wǎng)穿透服務(wù)

2.1.4配置 nginx 反向代理

將兩個(gè)域名解析到我們的服務(wù)器之后,再通過(guò)反向代理,將其反代到我們的lanproxy端口

下面配置的最終效果就是:

  1. 我們可以通過(guò) lanproxy.fengqiangboy.com 訪問(wèn) lanproxy 后

  2. 我們可以通過(guò) test.fengqiangboy.com 訪問(wèn)本地電腦映射的服務(wù)

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;
    # 這里根據(jù)你的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;
    # 這里根據(jù)你的lanproxy配置,改成 外網(wǎng)接口 的值,在lanproxy后臺(tái)網(wǎng)頁(yè)上配置,后面配置
    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 打開(kāi) lanproxy 后臺(tái)頁(yè)面,添加客戶(hù)端和映射信息

  1. 打開(kāi) http://lanproxy.fengqiangboy.com

  2. 用前面 conf/config.properties 文件中配置的賬號(hào)和密碼登錄后臺(tái)

  3. 添加一個(gè)客戶(hù)端,記住客戶(hù)端密鑰

  4. 添加完客戶(hù)端之后添加一個(gè)配置,配置如下圖

基于Docker如何搭建內(nèi)網(wǎng)穿透服務(wù)

到此,服務(wù)端的配置就完成了。下面開(kāi)始本地電腦的配置。

2.2.1 運(yùn)行要被映射的服務(wù)

既然要把內(nèi)網(wǎng)的服務(wù)映射出去,那首先就要把本地電腦的服務(wù)跑起來(lái)吧,不然拿什么來(lái)映射?這里就很多操作方法了,各個(gè)語(yǔ)言都不一樣,把自己的服務(wù)跑起來(lái)就行

2.2.2 運(yùn)行本地電腦映射客戶(hù)端程序( lanproxy client )

這里有兩個(gè)方法,一個(gè)方法是使用官網(wǎng)提供的 go 版本,不需要安裝 java 環(huán)境在本地電腦上,另外一種是使用官網(wǎng)提供的 java 版本,這里我使用 java 版本的。

克隆 lanproxy 代碼到本地電腦

$ git clone https://github.com/ffay/lanproxy.git lanproxy

打包 lanproxy

打包之前需要確保你安裝了 maven

$ cd lanproxy
$ mvn package

修改配置文件信息

打包完成之后,客戶(hù)端文件會(huì)出現(xiàn)在 distribution/proxy-client-0.1 目錄下,打開(kāi)之后有是個(gè)文件夾: bin 、 conf 、 lib 和 log ,配置信息在 conf/config.properties 文件內(nèi),根據(jù)前面服務(wù)端的配置信息修改一下。

# 這里是在lanproxy后臺(tái)配置的密鑰
client.key=key

# 配置ssl信息,根據(jù)服務(wù)端的配置填寫(xiě)
ssl.enable=true
ssl.jkspath=test.jks
ssl.keystorepassword=123456

# 服務(wù)器的ip
server.host=163.162.161.160

#根據(jù)服務(wù)端配置,開(kāi)啟ssl的話(huà)填寫(xiě)ssl的端口,否則填寫(xiě)普通端口
server.port=4993

啟動(dòng)客戶(hù)端

客戶(hù)端信息配置完成之后就可以啟動(dòng)客戶(hù)端了

# mac/linux使用這個(gè)
$ bash bin/startup.sh

# windows 直接運(yùn)行 bin/startup.bat

訪問(wèn)測(cè)試

按照前面的配置,這時(shí)候我們應(yīng)該是可以通過(guò) test.fengqiangboy.com 來(lái)訪問(wèn)我們的內(nèi)網(wǎng)服務(wù)了的,用瀏覽器打開(kāi)看看

基于Docker如何搭建內(nèi)網(wǎng)穿透服務(wù)

到此,關(guān)于“基于Docker如何搭建內(nèi)網(wǎng)穿透服務(wù) ”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!


網(wǎng)站欄目:基于Docker如何搭建內(nèi)網(wǎng)穿透服務(wù)
URL地址:http://weahome.cn/article/iisopc.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部