ngrok內(nèi)網(wǎng)穿透之二

前言

之前寫過ngrok內(nèi)網(wǎng)穿透,當(dāng)時是正常沒問題的。但是最近由于更換了域名。于是重新編譯了一次服務(wù)端程序,但是無法正常運行。記錄下異常過程。

問題

ngrok 內(nèi)網(wǎng)穿透,更好域名后異常。
異常日志

 New connection from 115.194.14.96:64688
[01:45:31 UTC 2019/04/06] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [tun:6f958746] Waiting to read message
[01:45:31 UTC 2019/04/06] [WARN] (ngrok/log.(*PrefixLogger).Warn:87) [tun:6f958746] Failed to read message: read tcp 172.17.0.4:4443->115.194.14.96:64688: read: connection reset by peer
[01:45:31 UTC 2019/04/06] [DEBG] (ngrok/log.(*PrefixLogger).Debug:79) [tun:6f958746] Closing

依次檢查了如下幾個地方:

  • 檢查域名映射有沒有問題(nslookup)
nslookup 你的域名

發(fā)現(xiàn)正常。

  • 檢查那三個端口有沒有在服務(wù)器上打開(telnet )
telnet  服務(wù)端ip地址 端口

發(fā)現(xiàn)正常

  • 檢查證書是否正常
openssl req -noout -text -in device.csr

發(fā)現(xiàn)正常

  • 檢查防火墻是否開啟
firewall-cmd --state

以上檢查之后,問題依舊無法解決。

搜索了下答案,其他人也遇到過類似,未能提供解決方法。

https://github.com/hteen/docker-ngrok/issues/8

https://github.com/inconshreveable/ngrok/issues/480

于是只好更換新的方案。

新的方案

構(gòu)建鏡像

git clone https://github.com/hteen/docker-ngrok.git
cd docker-ngrok
sed -i '1cFROM golang:1.8.3' Dockerfile
sed -i '4cRUN apt-get install git make openssl' Dockerfile
docker build -t hteen/ngrok .

運行鏡像

docker run -idt --name ngrok-server  -p 4443:4443 -p 4445:4445 -v /data/ngrok:/myfiles -e DOMAIN='你的域名' hteen/ngrok /bin/sh /server.sh

這里如果你需要80和 443 記得增加端口。我ngrok只用來轉(zhuǎn)發(fā)端口。因此只映射了4445

運行服務(wù)端

客戶端在目錄 /data/ngrok下??截?本地運行即可。

./ngrok -config=config.yml start tcp12345

配置文件內(nèi)容,主要替換其中域名

server_addr: "ngrok.xxxxxxx.com:4443"
trust_host_root_certs: false
tunnels:
   tcp12345:
       remote_port: 4445
       proto:
          tcp: 12345
image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容