溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

微信公眾號(hào)開(kāi)發(fā)80端口映射之搭建ngrok服務(wù)器

發(fā)布時(shí)間:2020-07-16 16:12:34 來(lái)源:網(wǎng)絡(luò) 閱讀:6560 作者:pizibaidu 欄目:建站服務(wù)器

說(shuō)明

了解本文之前,最好先看前篇:<<微信公眾號(hào)開(kāi)發(fā)80端口映射解決方案>>。最近公司要搞微信公眾號(hào)開(kāi)發(fā),需要解決80端口映射的問(wèn)題,為了穩(wěn)定可靠,只好自己搭建ngrok服務(wù)端。ngrok 是一個(gè)使用go語(yǔ)言編寫(xiě)的反向代理軟件,通過(guò)在公共的端點(diǎn)和本地運(yùn)行的 Web 服務(wù)器之間建立一個(gè)安全的通道,實(shí)現(xiàn)內(nèi)網(wǎng)穿透。ngrok 可捕獲和分析所有通道上的流量,便于后期分析和重放。

 

環(huán)境和條件

服務(wù)器Centos6.8_x64+windows10_x64


一臺(tái)有公網(wǎng)ip的服務(wù)器


域名解析到服務(wù)器。此處拿域名ngrok.XXX.com舉例。


關(guān)于域名解析,如果你的域名是為此專用的,可以開(kāi)啟泛解析到此服務(wù)器上面。如果你的主域名已經(jīng)在用,你僅僅需要一個(gè)二級(jí)域名解析到此服務(wù)器,并且開(kāi)啟二級(jí)域名的泛解析。我選擇是第二種,如下圖。當(dāng)然你不做泛解析也可以,自己在本地hosts文件添加記錄也可以。

微信公眾號(hào)開(kāi)發(fā)80端口映射之搭建ngrok服務(wù)器

微信公眾號(hào)開(kāi)發(fā)80端口映射之搭建ngrok服務(wù)器

 

安裝步驟

 

一.安裝依賴包

yum -y install zlib-devel openssl-devel perl hg cpio expat-devel gettext-devel curl curl-devel perl-ExtUtils-MakeMaker hg wget gcc gcc-c++ git

 

二.安裝go語(yǔ)言環(huán)境

 

可以選擇yum安裝,我選擇yum安裝

yum install -y golang

也可以手動(dòng)安裝,下載地址http://www.golangtc.com/download

下載安裝包之后,直接解壓,配置環(huán)境變量即可。

 

三.編譯ngrok

 

3.1下載ngrok源碼并設(shè)置變量

cd /usr/local/

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

export GOPATH=/usr/local/ngrok/

export NGROK_DOMAIN="ngrok.XXX.com"

cd /usr/local/ngrok

3.2生成自簽名證書(shū),ngrok為ssl加密連接。
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.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 rootCA.pem -CAkey rootCA.key -CAcreateserial -out server.crt -days 5000

 

拷貝證書(shū)文件到指定位置

cp rootCA.pem assets/client/tls/ngrokroot.crt

cp server.crt assets/server/tls/snakeoil.crt

cp server.key assets/server/tls/snakeoil.key

 

服務(wù)器在國(guó)內(nèi)需要修改,在國(guó)外不用修改

vim /usr/local/ngrok/src/ngrok/log/logger.go

log "github.com/keepeye/log4go"

 

3.3 編譯服務(wù)端和linux客戶端,GOOS和GOARCH可以參照go env

cd /usr/local/ngrok/

GOOS=linux GOARCH=amd64

make clean

make release-server release-client


執(zhí)行完會(huì)在當(dāng)前目錄生成一個(gè)bin文件夾,里面包含了ngrokdngrok文件;
其中,bin/ngrokd文件是服務(wù)端程序;bin/ngrok文件是客戶端程序(注意上面指定了GOOS

64位linux的,所以這個(gè)文件是不能在macwin等其他平臺(tái)跑的,下面將進(jìn)行說(shuō)明如何交叉編譯)


 

3.4 交叉編譯客戶端

 

Windows客戶端

cd /usr/local/ngrok/

GOOS=windows GOARCH=amd64 

make release-client

 

MAC客戶端

cd /usr/local/ngrok/

GOOS=darwin GOARCH=amd64

make release-client


客戶端配置文件

server_addr: "ngrok.XXX.com:4443"

trust_host_root_certs: false

 

四.啟動(dòng)服務(wù)

 

/usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"

 

后臺(tái)運(yùn)行

setsid /usr/local/ngrok/bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80"


啟動(dòng)服務(wù)后會(huì),默認(rèn)會(huì)開(kāi)啟監(jiān)聽(tīng)80,443,4443。當(dāng)然80和443端口你可以指定端口,只需要如下啟動(dòng)服務(wù)

bin/ngrokd -domain="ngrok.XXX.com" -httpAddr=":8888" -httpsAddr=":8889"

微信公眾號(hào)開(kāi)發(fā)80端口映射之搭建ngrok服務(wù)器


 

開(kāi)啟客戶端

ngrok -config=ngrok.cfg -subdomain=test 80

 

啟動(dòng)成功如下效果

微信公眾號(hào)開(kāi)發(fā)80端口映射之搭建ngrok服務(wù)器

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI