ngrok搭建教程,親自測試沒問題

 

需要內網域名一個,服務器一臺,我的服務器是阿里雲國內的,域名也是在阿里雲買的,在測試後需要備案,後面我換了一個備案域名就可以訪問了。

安裝git, golang和openssl

yum install -y git golang openssl

使用git下載項目

git clone https://github.com/inconshreveable/ngrok.git /usr/local/ngrok

 

#進入到ngrok目錄生成證書

域名解析

需要解析域名到服務器,測試域名能訪問服務器後進行下面操作。

#準備一個獨立域名,備好案的,替換下面的axiba.xyz域名
cd /usr/local/ngrok

# 下面的命令用於生成證書
openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=axiba.xyz" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=axiba.xyz" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

# 將我們生成的證書替換ngrok默認的證書,會提示覆蓋,輸入y
cp rootCA.pem assets/client/tls/ngrokroot.crt
cp device.crt assets/server/tls/snakeoil.crt
cp device.key assets/server/tls/snakeoil.key

編譯服務端與客戶端

#64位的linux服務端
GOOS=linux GOARCH=amd64 make release-server
#64位的windos客戶端
GOOS=windows GOARCH=amd64 make release-client

編譯後的服務端與客戶端在ngrok/bin目錄下

第一個目錄下面的ngrokd是服務端,第二個目錄下的需要拷貝ngrok.exe到windos平臺,可以使用winScp和Xftp等工具。

啓動服務端

./bin/ngrokd -domain="axiba.xyz"

如下圖就啓動成功

然後我們需要在防火牆中運行這幾個端口通過,或者關閉防火牆,然後還需要在服務器對應的雲平臺設置安全組,允許這幾個端口通過

然後在需要代理的windos平臺吧剛纔那個exe文件下載下來,然後在同級目錄下新建ngrok.cfg與start.bat

ngrok的內容

server_addr: "axiba.xyz:4443"
trust_host_root_certs: false

 

start.bat的內容

ngrok.exe -subdomain=wx -config=ngrok.cfg 80

wx 是本地自定義下級域名,80是代理的端口

編輯好後點擊start.bat

顯示成功,第一訪問的時候可能比較慢,請耐心。

設置開機自動啓動

進入指定目錄下

cd /etc/systemd/system/

新建文件

touch ngrok.service

編輯文件

vim ngrok.service
cription=ngrok
After=network.target

[Service]
ExecStart=/usr/local/ngrok/bin/ngrokd -domain=axiba.com

[Install]
WantedBy=multi-user.target

加入開機啓動

systemctl enable ngrok.service //加入開機啓動
systemctl daemon-reload  //重新載入 systemd,掃描新的或有變動的單元
reboot //重啓系統

其他代碼

    systemctl 是管制服務的主要工具, 它整合了chkconfig 與 service功能於一體。
     
    systemctl is-enabled iptables.service
    systemctl is-enabled servicename.service #查詢服務是否開機啓動
    systemctl enable *.service #開機運行服務
    systemctl disable *.service #取消開機運行
    systemctl start *.service #啓動服務
    systemctl stop *.service #停止服務
    systemctl restart *.service #重啓服務
    systemctl reload *.service #重新加載服務配置文件
    systemctl status *.service #查詢服務運行狀態
    systemctl --failed #顯示啓動失敗的服務
     
    注:*代表某個服務的名字,如http的服務名爲httpd

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章