以下以阿里云centos7服務(wù)器為例钱反,并且已經(jīng)安裝好git址儒、golang
一演训、下載ngrok
cd /data/wwwroot
git clone https://github.com/tutumcloud/ngrok.git
二蜒秤、生成ngrok使用的https證書
cd /data/wwwroot/ngrok
NGROK_DOMAIN="ngrok.test.com"
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
并替換
cp base.pem assets/client/tls/ngrokroot.crt
cp server.crt assets/server/tls/snakeoil.crt
cp server.key assets/server/tls/snakeoil.key
三汁咏、編譯服務(wù)端
make release-server
生成bin/ngrok
四、編譯客戶端
GOOS=windows GOARCH=amd64 make release-client
生成bin/windows_amd64/ngrok.exe
把ngrok.exe
下載到你電腦
mac下編譯: GOOS=darwin GOARCH=amd64 make release-client
五作媚、運(yùn)行服務(wù)端
后臺(tái)運(yùn)行
nohup ./bin/ngrokd -tlsKey=server.key -tlsCrt=server.crt -domain="ngrok.test.com" -httpAddr=":3080" -httpsAddr=":3043" >/dev/null 2>log &
注意事項(xiàng)
1攘滩、3080,3043端口可以改成80纸泡,443漂问,如果這兩個(gè)端口空閑的話。
2女揭、阿里云安全組開放3080蚤假、3043、4443端口吧兔,4443是默認(rèn)的客戶端通信端口磷仰。
3、iptables開放3080境蔼、3043灶平、4443端口阎姥。
4绎狭、添加兩條域名解析ngrok和*.ngrok,第二條記得帶上*.眉抬,不然無(wú)法匹配xxx.ngrok.test.com三級(jí)域名吴藻。
六瞒爬、運(yùn)行客戶端
編輯配置文件ngrok.cfg
server_addr: "ngrok.test.com:4443"
trust_host_root_certs: false
運(yùn)行
ngrok -config=ngrok.cfg -subdomain abc 8080
七、如果80端口已經(jīng)被其他程序占用,ngrok如何使用80端口侧但,進(jìn)行微信公眾號(hào)開發(fā)本地調(diào)試矢空?
因?yàn)槲⑿殴娞?hào)只支持80端口或443端口。
方法一:
如果你的服務(wù)器只用了80端口俊犯,那么你可以用443端口來(lái)開發(fā)妇多。
方法二:
如果你的服務(wù)器80端口和443端口都被占用,且不能取消占用
- 配置ngrok.test.com的80端口映射(使用nginx或apache對(duì)不同域名進(jìn)行80端口映射)
- 設(shè)置代理和反向代理
/
都指向http://test.ngrok.test.com:9080/
- 客戶端只要設(shè)置前綴為test的ngrok代理燕侠,就可以通過(guò)ngrok.test.com/xxx直接訪問(wèn)
為什么不直接指向127.0.0.1:9080
?
試過(guò)了者祖,沒用,本地的9080端口雖然被ngrok占用绢彤,但無(wú)法直接通過(guò)127.0.0.1:9080訪問(wèn)七问。
所以我暫時(shí)只能再次發(fā)起http請(qǐng)求來(lái)進(jìn)行轉(zhuǎn)發(fā)。