摘要: 快速搭建ngrok服務器,或者直接運行我製作的ngrok服務器的鏡像來啟動
為啥搭建ngrok服務器
ngrok 是一個反向代理工具,我們可以直接下載官網的客戶端使用,但是因為官網服務器在國外,比較慢,而且免費版不支持綁定二級域名。
需要準備什麼
公網的linux服務器(最好是centos7,一步通過)
獨立域名
如果對docker熟悉的話可以直接運行我製作的ngrok服務器的鏡像來啟動https://github.com/jueying/docker-ngrok-server
步驟
1. 安裝git, golang和openssl
yum install -y git golang openssl
git版本和golang版本不能太舊,centos7默認安裝git1.8.3,go1.8.3
2. clone ngrok項目到本地
git clone https://github.com/inconshreveable/ngrok.git /usr/local/ngrok
3. 生成證書
# 這裡替換為自己的獨立域名export NGROK_DOMAIN="huahongbin.cn"#進入到ngrok目錄生成證書cd /usr/local/ngrok# 下面的命令用於生成證書openssl genrsa -out rootCA.key 2048openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pemopenssl genrsa -out device.key 2048openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csropenssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000# 將我們生成的證書替換ngrok默認的證書cp rootCA.pem assets/client/tls/ngrokroot.crtcp device.crt assets/server/tls/snakeoil.crtcp device.key assets/server/tls/snakeoil.key
4. 編譯不同平臺的服務端和客戶端
# 編譯64位linux平臺服務端GOOS=linux GOARCH=amd64 make release-server# 編譯64位windows客戶端GOOS=windows GOARCH=amd64 make release-server# 如果是mac系統,GOOS=darwin。如果是32位,GOARCH=386
執行後會在ngrok/bin目錄及其子目錄下看到服務端ngrokd
和客戶端ngrok.exe
。
5. 啟動服務端
# 指定我們剛才設置的域名,指定http, https, tcp端口號,端口號不要跟其他程序衝突./bin/ngrokd -domain="$NGROK_DOMAIN" -httpAddr=":80" -httpsAddr=":8082" -tunnelAddr=":443"
6. 啟動客戶端
將ngrok.exe拷貝到本地文件夾中(可以用winscp),並在文件夾新建配置文件ngrok.cfg,內容如下:
server_addr: "huahongbin.cn:443"trust_host_root_certs: false
域名替換為自己的獨立域名,端口替換為啟動ngrok服務器設置的tunnel端口。
然後在cmd中使用以下命令啟動:
ngrok.exe -subdomain=jueying -config=ngrok.cfg 80
80即為你要代理的本地端口
在瀏覽器中輸http://127.0.0.1:4040 可以看到具體的請求信息。
常見問題
編譯時在下面步驟卡主
go get gopkg.in/yaml.v1
這是因為Git版本太低,請將服務器git版本升級到1.7.9.5以上。因為ngrok首次編譯時需要在國外網站下載一些依賴。可能會很慢甚至timeout。多嘗試幾次,或者你懂得。
閱讀更多 IT技術之家 的文章