亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

一:前言

場(chǎng)景問(wèn)題:

如果本地的項(xiàng)目在沒(méi)有服務(wù)器的情況下,需要讓他人訪問(wèn);

在自己的電腦上搭建一個(gè)web服務(wù)器,實(shí)現(xiàn)本地的訪問(wèn)和外部的訪問(wèn)。我們就要做內(nèi)網(wǎng)穿透了,內(nèi)網(wǎng)穿透就是別人通過(guò)外網(wǎng)能夠訪問(wèn)到我們本地的服務(wù)器。

市面上一些主流的內(nèi)網(wǎng)穿透工具有:

Ngrok,NatApp,花生殼,Ssh、autossh,F(xiàn)rp,Lanproxy,Spike

這里介紹使用Ngrok工具。

二:使用官網(wǎng)自帶的服務(wù)器

官網(wǎng)提供免費(fèi)的服務(wù)器可使用,但是域名是隨機(jī)的,只能臨時(shí)使用,但是作為開(kāi)發(fā)測(cè)試,給遠(yuǎn)方的甲方看到自己的電腦上的項(xiàng)目,還是足夠了。

傻瓜式操作,5分鐘完成。

官方網(wǎng)站:https://ngrok.com/

自己下載相應(yīng)的版本即可,我這里是linux,選擇Linux即可。

官方提供個(gè)三種安裝方式,都可以使用。

第一種:下載解壓得到一個(gè)腳本文件,執(zhí)行即可。

第二種:apt安裝即可。

第三種:用snap工具安裝。

Linux搭建ngrok服務(wù)器,內(nèi)網(wǎng)穿透服務(wù),實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的在線訪問(wèn)

 

我這里用snap安裝:

sudo snap install ngrok

添加authtoken,authtoken需要注冊(cè)登錄進(jìn)去才可以看到,我用google郵箱默認(rèn)登錄即可。

Linux搭建ngrok服務(wù)器,內(nèi)網(wǎng)穿透服務(wù),實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的在線訪問(wèn)

 

添加authtoken

sudo ngrok config add-authtoken 29xKUhVc76mfOyPp3IYrXk6KIe7_4modhP9oq1B3beAWRKCtC

添加完成后,直接執(zhí)行需要啟動(dòng)的端口即可。如這里是web網(wǎng)站,就使用80端口啟動(dòng)。

sudo ngrok http 80

啟動(dòng)后,會(huì)隨機(jī)分配一個(gè)域名,用這個(gè)域名就可以實(shí)現(xiàn)外網(wǎng)訪問(wèn)自己電腦內(nèi)網(wǎng)了,啟動(dòng)后界面:

Linux搭建ngrok服務(wù)器,內(nèi)網(wǎng)穿透服務(wù),實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的在線訪問(wèn)

 

這里分配的域名為
https://1414-96-9-67-134.ap.ngrok.io/,如果是甲方,給他用這個(gè)域名,就可以訪問(wèn)自己的電腦的web網(wǎng)頁(yè)了。

瀏覽器打開(kāi)測(cè)試就可以訪問(wèn)了。

Linux搭建ngrok服務(wù)器,內(nèi)網(wǎng)穿透服務(wù),實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的在線訪問(wèn)

 

三:自己搭建ngrok服務(wù)器

雖然官方有自己的服務(wù)器,需要更多的功能還是需要付費(fèi),比如自定義域名。所以這里可以自己搭建服務(wù)器。

目前只有版本1開(kāi)源可搭建,版本2以上沒(méi)有開(kāi)源,畢竟人家也要吃飯的。代碼也要2016年停止更新,所以現(xiàn)在基本都是用這套代碼的。

github地址:
https://github.com/inconshreveable/ngrok

官方示意圖:

Linux搭建ngrok服務(wù)器,內(nèi)網(wǎng)穿透服務(wù),實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的在線訪問(wèn)

 

1:域名解析

這里是我自己的域名ywbj.cc 為例子配置。

打開(kāi)域名管理頁(yè)面,建立兩個(gè)A記錄,把域名解析到服務(wù)器上,用來(lái)關(guān)聯(lián)ngrok服務(wù)。

添加*.ngrok.ywbj.cc和ngrok.ywbj.cc兩條記錄

Linux搭建ngrok服務(wù)器,內(nèi)網(wǎng)穿透服務(wù),實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的在線訪問(wèn)

 

到時(shí)候?qū)⑼ㄟ^(guò) xxx.ngrok.ywbj.cc:端口 來(lái)訪問(wèn)代理服務(wù)器。

2:安裝git

git一般是默認(rèn)安裝的,沒(méi)有的話直接安裝即可

#centos
yum install git
#或者ubuntu
sudo apt install git

 

3:安裝、配置Go語(yǔ)言環(huán)境

ngrok是基于go語(yǔ)言開(kāi)發(fā)的,所以需要先安裝go語(yǔ)言開(kāi)發(fā)環(huán)境。

我這里是ubuntu,直接安裝

sudo apt install golang -y

安裝完成后go version可查看版本是否安裝成功。

ubuntu@ubuntu:~# go version
go version go1.13.8 linux/amd64

安裝好后,需設(shè)置go環(huán)境變量。

由于我是在線安裝,只需要配置兩個(gè)環(huán)境變量。

cd ~
# 到主目錄
vi .bashrc
# 打開(kāi)配置文件,在末尾添加如下
export GOPATH=/usr/local/ngrok/
# 這個(gè)目錄是go的工作目錄,即等下要編譯ngrok的目錄
export NGROK_DOMAIN="ngrok.ywbj.cc"
#ngrok服務(wù)二級(jí)域名,后面生成證書(shū)時(shí)的$NGROK_DOMAIN

如果是自己下載的golang版本,則還需要配置添加其他兩個(gè)環(huán)境變量,這里例子為:下載版本放在安裝 /usr/local 路徑:

export GOROOT=/usr/local/go
# 這個(gè)目錄是go的解壓目錄
export PATH=$GOROOT/bin:$PATH:$GOPATH/bin
# 設(shè)置bin目錄

更改完成后,刷新生效配置

source .bashrc

4:下載獲取 Ngrok 源碼

下載源碼

git clone https://github.com/tutumcloud/ngrok.git ngrok

進(jìn)入目錄

cd ngrok

5:根據(jù)自己的域名生成證書(shū)

openssl具體參數(shù),可以自行研究,比較復(fù)雜,下面$NGROK_DOMAIN變量,就是環(huán)境變量已經(jīng)配置好了。如果沒(méi)有配置DOMAIN環(huán)境變量,也可以,只需要在執(zhí)行前加條命令。

NGROK_DOMAIN="ngrok.ywbj.cc"

然后生成證書(shū)

openssl genrsa -out base.key 2048
openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pem
openssl genrsa -out server.key 2048
openssl req -new -key server.key -subj "/CN=$NGROK_DOMAIN" -out server.csr
openssl x509 -req -in server.csr -CA base.pem -CAkey base.key -CAcreateserial -days 10000 -out server.crt

生成完成,替換原來(lái)的默認(rèn)證書(shū)

cp base.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key

 

6:編譯生成服務(wù)端和客戶(hù)端

ngrokd 為服務(wù)端的執(zhí)行文件,ngrok為客戶(hù)端的執(zhí)行文件。

make release-server release-client

注:我這里服務(wù)器和客戶(hù)端都是同一平臺(tái),所以我同時(shí)編譯即可。如果客戶(hù)端不同,分開(kāi)執(zhí)行。

以windows、arm、linux客戶(hù)端版本編譯,如下:

GOOS=linux GOARCH=amd64 make release-client
GOOS=windows GOARCH=amd64 make release-client
GOOS=linux GOARCH=arm make release-client

不同平臺(tái)使用不同的 GOOS 和 GOARCH,GOOS為go編譯出來(lái)的操作系統(tǒng) (windows,linux,darwin),GOARCH, 對(duì)應(yīng)的構(gòu)架 (386,amd64,arm),對(duì)應(yīng)如下:

Linux 平臺(tái) 32 位系統(tǒng):GOOS=linux GOARCH=386
Linux 平臺(tái) 64 位系統(tǒng):GOOS=linux GOARCH=amd64

Windows 平臺(tái) 32 位系統(tǒng):GOOS=windows GOARCH=386
Windows 平臺(tái) 64 位系統(tǒng):GOOS=windows GOARCH=amd64

mac 平臺(tái) 32 位系統(tǒng):GOOS=darwin GOARCH=386
MAC 平臺(tái) 64 位系統(tǒng):GOOS=darwin GOARCH=amd64

ARM 平臺(tái):GOOS=linux GOARCH=arm

編譯出的程序會(huì)放在ngrok/bin/下,ngrok為客戶(hù)端程序,ngrokd為服務(wù)器程序。

 

7:?jiǎn)?dòng)服務(wù)器端

ngrokd為服務(wù)器端。

cd ngrok/
sudo ./bin/ngrokd -domain="ngrok.ywbj.cc" -httpAddr=":8080" -httpsAddr=":8081" -tunnelAddr=":4443"

上面domain為自己的域名,設(shè)置默認(rèn)http,https端口分別為8080,8081,連接的tunnel(隧道端口)為4443端口。端口可以隨意設(shè)置,并不是唯一的。

啟動(dòng)后瀏覽訪問(wèn)
http://ngrok.ywbj.cc:8080/,可以看到提示,也是啟動(dòng)了隧道。

Linux搭建ngrok服務(wù)器,內(nèi)網(wǎng)穿透服務(wù),實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的在線訪問(wèn)

 

查看端口情況,也可以看到已經(jīng)啟動(dòng)。

netstat -lntup|grep ngrok
Linux搭建ngrok服務(wù)器,內(nèi)網(wǎng)穿透服務(wù),實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的在線訪問(wèn)

 

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

將ngrok通過(guò)工具,傳送到需要穿透的客戶(hù)端機(jī)器。

在同一文件夾中,創(chuàng)建ngrok.cfg配置文件,并寫(xiě)入基礎(chǔ)配置。

sudo vim ngrok.cfg

添加內(nèi)容如下:

server_addr: "ngrok.ywbj.cc:4443"
trust_host_root_cert: false

此文件位YAML格式,縮進(jìn)用空格。

server_addr后填寫(xiě)你的域名,要和之前寫(xiě)的一模一樣。

4443是固定端口,一般不改,但也可以在服務(wù)端更改。

web也可以改成其他,啟動(dòng)客戶(hù)端80端口。

./ngrok -subdomain web -config=ngrok.cfg 80

第一次啟動(dòng)有點(diǎn)慢,耐心一點(diǎn),可能需要等待重連一會(huì)。連接成功后,顯示:

Linux搭建ngrok服務(wù)器,內(nèi)網(wǎng)穿透服務(wù),實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的在線訪問(wèn)

 

瀏覽器訪問(wèn)
http://web.ngrok.ywbj.cc:8080/即可穿透訪問(wèn)內(nèi)網(wǎng)客戶(hù)端80端口。

Linux搭建ngrok服務(wù)器,內(nèi)網(wǎng)穿透服務(wù),實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的在線訪問(wèn)

 

9:使用固定端口配置

如果想一次性轉(zhuǎn)發(fā)多個(gè)端口或者想指定遠(yuǎn)程的對(duì)應(yīng)端口,需要完善ngrok.cfg,如:

server_addr: ngrok.ywbj.cc:4443
trust_host_root_certs: false
tunnels:
 ssh:
  remote_port: 1122
  proto:
   tcp: 22
 ss:
  remote_port: 8388
  proto:
   tcp: 8388
 ftp:
  remote_port: 20
  proto:
   tcp: 20
 ftp2:
  remote_port: 21
  proto:
   tcp: 21
 http:
  subdomain: www
  proto:
   http: 80
   https: 443

使用方法,啟動(dòng)特定的轉(zhuǎn)發(fā)tunnel

./ngrok -config=ngrok.cfg start http

當(dāng)然也可以將所有配置全部轉(zhuǎn)發(fā)

./ngrok -config ngrok.cfg start-all
Linux搭建ngrok服務(wù)器,內(nèi)網(wǎng)穿透服務(wù),實(shí)現(xiàn)外網(wǎng)到內(nèi)網(wǎng)的在線訪問(wèn)

 

10:后臺(tái)啟動(dòng)

服務(wù)端:

nohup ./bin/ngrokd -domain="ngrok.ywbj.cc" -httpAddr=:8080 -httpsAddr=":8081" -tunnelAddr=":4443"
> /var/log/ngrokd.log 2>&1 &

客戶(hù)端:

必須加上參數(shù) -log=stdout,否則是不行的

nohup ./ngrok -config ngrok.cfg -log=stdout start-all > /var/log/ngrok.log 2>&1 &

到此,ngrok服務(wù)器搭建完成。

分享到:
標(biāo)簽:服務(wù)器 ngrok
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定