首先當然是要做的準備工作,你需要準備:
乙個有固定公網 ip 的伺服器 (或者能通過 cname 解析到的伺服器也行);
乙個網域名稱 (國內使用者請參考是否需要備案等要求選購);
ssl 證書 (可選,可以稍後再申請);
docker
因此,將 ngrok 放置在 docker 容器中監聽80
和443
埠,並對外暴露不同的埠號,使用 nginx 進行****,這樣就能避免上面的問題了。
$ wget -co lnmp1.5.tar.gz
$ tar zxf lnmp1.5.tar.gz && cd lnmp1.5
$ [sudo] ./install.sh lnmp
複製**
由於我的伺服器記憶體較小,我選擇跳過了 mysql 安裝並安裝了低版本的 php 環境,您應該根據需要自行選擇;或者您要是熟悉 nginx 的 ssl 配置的話,可以選擇跳過本章節,手動申請網域名稱並配置****。
完成 lnmp 安裝後,可以使用它提供的命令來方便的申請泛網域名稱證書,使用下面的命令,按照螢幕上的提示完成配置即可:
$ [sudo] lnmp dnsssl
複製**
注意儲存生成的證書路徑資訊,下面會用到。
如果您是手動在 let's encrypt 申請的泛網域名稱證書,那還請注意它的有效期只有三個月,到期還需要手動更新。完成後,lnmp 會幫助您建立乙個 nginx vhost 配置檔案,位置在
/usr/local/nginx/conf/vhost/.conf
,參考下面的配置替換原有內容:
}複製**
$ curl -fssl -o get-docker.sh
$ chmod +x ./get-docker.sh
$ ./get-docker.sh
複製**
你可能需要輸入 sudo 密碼來獲取管理員許可權。國內使用者可以在./get-docker.sh
後面加上--mirror aliyun
來使用阿里雲 docker 映象。
這裡我參考了 hteen/docker-ngrok 的寫法,不過我不需要在編譯前自簽名 ssl 證書,所以我簡化了他的寫法並優化了映象構建過程 (最後生成的映象只有18.7m
?):
複製**
完成後,使用下面的命令構建映象:
$ docker build -t ngrok .
複製**
使用也非常簡單,不過您需要將上面生成的 ssl 證書路徑作為共享卷掛載到 docker 容器中,ngrok 需要能訪問到這些證書:
# 例如我的證書放在 /usr/local/nginx/conf/ssl/tunnel.your.domain 下:
$ docker run -d --name ngrok-srv \
> -p 5442:80 -p 5443:443 -p 4443:4443 \
> -v /usr/local/nginx/conf/ssl/tunnel.your.domain/certs:/usr/local/ngrok/certs \
> -e ngrok_domain='tunnel.your.domain' \
> -e tls_key=/usr/local/ngrok/certs/tunnel.your.domain.key \
> -e tls_crt=/usr/local/ngrok/certs/fullchain.cer ngrok
複製**
本地 ngrok 客戶端連線時,你還需要這些配置:
server_addr:
tunnel.your.domain:4443
trust_host_root_certs:
true
複製**
將上面的內容儲存為ngrok.yml
,你可以這樣使用它:
$ ngrok -config ngrok.yml -subdomain test 3000
複製**
ok ?,就是這樣,你可以寫個 express 服務快速測試一下:
res.send(`introspected tunnels to localhost
});console.log('listen on port 3000!');
複製**
開啟瀏覽器,訪問:
是不是很酸爽? ?
ngrok 作為一項知名開源內網穿透專案而為人所熟知,然而人家也是要恰飯的嘛,所以 ngrok@2 就閉源了,成為了乙個商業付費專案,不過好在 [email protected] 的原始碼還在 github 上可以找到,所以早 fork 保平安咯~
前端開發神器之ngrok
ngrok能做什麼,為什麼是前端開發神器?內網穿透,對映本地開發環境到公網,模擬多終端線上環境。結合乙個很簡單的pwa demo,舉個簡單的例子 1.轉殖demo到本地git clone 2.本地8080埠執行demo 複製 3.ngrok內網穿透到公網 複製 4.檢視公網位址 chrome 複製 ...
微信開發 配置 Ngrok
工欲善其事必先利其器 解壓到 usr local tar zxvf go1.8.3.linux amd64.tar.gz c usr local新增環境變數 echo export path path usr local go bin etc bashrc source etc bashrc首先我們...
微信開發之ngrok內網穿透工具
最近發現了乙個神器,也是基於ngrok的,但他免費!沒聽錯,自定義網域名稱免費。官方管理平台 為 下面是使用方法 1 按提示註冊乙個使用者,然後登陸主頁面如下 這裡比較關鍵的是那個token,後面是要加入到配置檔案中的 2.配置系統預留的網域名稱字尾或者自定義網域名稱,如圖所示 這裡著重說一下自定義...