Ngrok搭建本身的內網穿透

作過微信開發的應該都知道Ngrok內網穿透工具,大多都是在使用別人提供的服務,這樣並非很安全,因此咱們仍是須要搭建本身的Ngrok服務。


準備工做

  • 準備一個域名,此處以domain.com爲例
  • 一個有公網IP的服務器

我本身的服務器是 Ubuntu 16.04

先安裝go編譯器(ngrok是go語言編寫的)

apt install golangnode

下載ngrok源碼

git clone https://github.com/inconshreveable/ngrok.gitlinux

若是提示沒有git命令,請安裝git命令,最後生成客戶端會用到git

apt install gitgit

進入ngrok根目錄,執行如下命令生成簽名證書

  • NGROK_DOMAIN="domain.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

編譯ngrok

make release-servergithub

啓動ngrok服務

./bin/ngrokd -domain="domian.com" -httpAddr=":80" -httpsAddr=":443"golang

啓動事後,在瀏覽器訪問domain.com,若是出現以下提示,就證實一切已經配置完成

Tunnel domain.com not foundwindows

最後須要生成跟你本地相符合的客戶端了,依舊在ngrok根目錄使用命令

windows 64位瀏覽器

GOOS=windows GOARCH=amd64 make release-client安全

MAC OS (32位系統把amd64改爲386)服務器

GOOS=darwin GOARCH=amd64 make release-client微信

Linux

GOOS=linux GOARCH=amd64 make release-client

編譯事後的客戶端在ngrok目錄下的bin目錄下,下載須要的客戶端到本地,而後在同目錄下建立ngrok.cfg配置文件,內容以下:

  • server_addr: "domain.com:4443"
  • trust_host_root_certs: false

命令行啓動客戶端

ngrok -config=ngrok.cfg -subdomain wx 8080

其中wx是二級域名好比wx.domain.com(wx,8080可按本身需求修改),8080是轉發本地8080端口下的全部請求。

以上就是所有配置。若有問題歡迎留言交流。

JAVA版本的ngrok客戶端(開源大佬提供)

https://gitee.com/YJc/fast-ngrok

相關文章
相關標籤/搜索