部署自己的Ngrok實現內網穿透

來源:互聯網
上載者:User

為什麼要內網穿透

一般來說,外網要訪問伺服器,那麼這個伺服器必須綁定一個公網ip,現在可以購買的雲端服務器都是這樣。比如個人要在家裡組建伺服器,而且要外網的用戶端可以訪問,這時候問題就出現了

  • 問題1:現在一般家裡是沒有外網ip的,ip都是路由好幾層的區域網路ip
  • 問題2:就算有外網ip,也是動態ip

準備

  • 外網伺服器一台,系統為Ubuntu
  • 根網域名稱,需要具有網域名稱的A記錄解析許可權
  • 內網測試機器,這裡使用個人windows筆記本

正式工作

網域名稱解析

首先需要一個網域名稱作為ngrok的網域名稱,比如ngrok.example.com,那麼需要把ngrok.example.com和*.ngrok.example.com網域名稱的A記錄解析到外網伺服器。

編譯ngrok

安裝Go環境

ngrok是Go語言開發的,需要安裝Go環境,ubuntu使用 sudo apt install golang 安裝
,安裝完成後使用 go version 驗證是否安裝成功。

下載ngrok源碼

ngrok的官方github地址是:https://github.com/inconshreveable/ngrok ,使用 git clone https://github.com/inconshreveable/ngrok.git 拉取代碼。

產生自我簽署憑證

刪除assets/client/tlsassets/server/tls目錄下的所有認證檔案,在ngrok根目錄建立指令碼檔案script,檔案內容為:
將NGROK_DOMAIN替換成自己的ngrok網域名稱

cd /usr/local/ngrokNGROK_DOMAIN="ngrok.example.com"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 5000cp rootCA.pem assets/client/tls/ngrokroot.crtcp device.crt assets/server/tls/snakeoil.crtcp device.key assets/server/tls/snakeoil.key

使用sudo sh script運行檔案

image.png
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.