ngrok是乙個開源的內網穿透服務(1.7之前的版本),通過反向**實現埠間的對映,使得內網服務(內網中所有的機器)能夠通過外網ip/網域名稱進行訪問(將請求**至指定機器,內網中安裝乙個客戶端即可)。
一台有外網ip的可提供服務的伺服器(用來執行ngrok服務端)
go語言環境
開放防火牆埠
ngrok github位址
github上面提供的是服務端的原始碼,客戶端是在指定配置之後編譯生成的。
安裝go語言環境
安裝ngrok,編譯生成客戶端
git clone
cd ngrok
配置證書資訊,以生成專屬的客戶端(可寫入shell指令碼執行)ngrok_domain="abc.com"
#換成你的網域名稱(繫結外網ip的網域名稱)
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
編譯生成客戶端和服務端(有針對不同系統生成的客戶端,自行搜尋)make release-server release-client
編譯生成的執行檔案放在ngrok/bin下,ngrok為客戶端,ngrokd為服務端。
ngrok-server引數說明
-httpaddr # http埠(通過外網ip或網域名稱加上這個埠進行http訪問內網)
-httpsaddr #同http,只是這個是https
-tunneladdr #隧道埠,內網和外網建立的隧道埠,預設為4443(客戶端配置連線的埠)
ngrokd啟動命令nohup ./bin/ngrokd -tlskey=server.key -tlscrt=server.crt -domain="your domain" -httpaddr=":8081" &
#nohup可將程序置入後台,且ssh連線斷開不受影響
netstat -tpln|grep ngrokd #檢視程序埠狀態
在內網機器上寫乙個配置檔案ngrok.cfg
該配置檔案可一次性**多個埠,建議按這種格式,配置檔案為yaml語法,所有縮排需要使用空格
server_addr: ngrok.abc.com:4443
啟動特定的隧道./ngrok -config ngrok.cfg start ssh ftp
啟用配置檔案中所有的隧道./ngrok -config ngrok.cfg start-all
內網穿透Ngrok安裝
參考資料 domain表示使用的父網域名稱 後面在ngrok客戶端配置的 網域名稱是該網域名稱的子網域名稱 docker做埠對映時,為了支援tcp 如ssh登入,需要除了ngrok和ngrokd連線的埠 http https埠外,還需要額外的埠修改 etc hosts檔案 增加如下配置 以便通過ss...
ngrok內網穿透教程
由於開發web專案,經常需要將本地部署的 讓外網能直接訪問到,最便捷的做法當然是在adsl路由器上直接做埠對映,很不幸大部分運營商都遮蔽了80等常用埠,曾經的做法是在公網一台vps上架設openvpn,將筆記本和vps連到乙個虛擬區域網,再用iptables做埠 來達到目的,雖然可行,但速度比較慢,...
Ngrok搭建內網穿透
什麼是ngrok ngrok是一款用go語言開發的開源軟體,它是乙個反向 它可以通過乙個公共的斷點和本地執行的web伺服器建立乙個安全通道,實現內網穿透功能。情況一 無外網網域名稱,使用二級網域名稱 mac os linux amd64 windows x64 linux arm 解壓 在linux...