1 摘要
關於玩轉內網穿透系列:
玩轉內網穿透(1):內網穿透是什麼?有什麼用
玩轉內網穿透(2):CentOS 7使用Ngrok搭建內網穿透服務
本文將玩一點高級的,以實現高端的功能:
(1) 綁定多域名,多端口
(2) 實現遠程桌面功能
(3) 開機啓動Ngrok內網穿透服務
(4)一切啓動都腳本化
2 綁定多域名、多端口、多協議
2.1 配置文件修改
修改客戶端配置文件:
ngrok.yml
server_addr: "flying9001.site:4443"
trust_host_root_certs: false
tunnels:
api:
subdomain: "api"
proto:
http: 127.0.0.1:8022
remote:
subdomain: "remote"
proto:
http: 192.168.8.56:18022
ssh:
remote_port: 50000
proto:
tcp: 192.168.8.101:22
desktop:
remote_port: 55123
proto:
tcp: 192.168.8.100:3389
配置文件說明:
server_name
: 域名+隧道端口(tunnelAddr
)
trust_host_root_certs
: 當使用ssl/tls證書的時候,需要設置此選項;默認 ngrok 只信任 ngrok.com
域名證書,所以自簽名設置爲 false
tunnels
: 隧道,設置多域名時如此配置
api
: 隧道名稱
subdomain
: 二級域名名稱
proto
: 隧道協議,常用協議包括: http
,tcp
,udp
http
: 協議名稱,後邊接內網映射的 ip+端口,這裏的 ip 可以爲本機(127.0.0.1),也可以爲局域網內的其他主機 ip
啓動客戶端:
d:
cd D:\develop\software\windows_amd64
ngrok.exe -config ngrok.yml start api remote
2.2 啓動腳本
windows 啓動腳本,在Ngrok客戶端軟件同一文件夾下創建 start_multi.bat
文件
start_multi.bat
:
ngrok.exe -config ngrok.yml start api remote ssh desktop
腳本寫好後,下次啓動客戶端直接雙擊腳本即可運行
配置文件中包含的隧道,在腳本中都需要體現出來,如果腳本中沒有,則啓動後不會運行對應的隧道
3 遠程桌面連接
Windows 系統自帶的遠程桌面連接端口爲 3389
,在步驟2中已經包含了這一端口
使用步驟:
(1) 打開Windows的遠程連接功能
win10: 開始 – 設置 – 系統 – 遠程桌面 – 「啓用遠程桌面」,點擊打開 – 點擊「高級設置」–啓用「需要計算機使用網絡級別身份驗證進行連接」
(2) 使用遠程桌面進行連接
win10: 開始 – 輸入"遠程桌面連接" 進行搜索 – 選擇搜索結果 「遠程桌面連接」應用程序 – 輸入隧道域名+端口 – 點擊「連接」 – 輸入計算機「用戶名」和「密碼」 進行遠程連接
官方參考:
如何使用遠程桌面
使用“遠程桌面連接”連接到另一臺計算機
3 Ngrok 服務開啓啓動
編寫 Ngrok 服務端 啓動腳本 start.sh
cd /usr/local/ngrok/
touch start.sh
sudo chmod +x start.sh
啓動腳本內容:
# !/bin/bash
#
# ngrok 啓動腳本
# ngrok 目錄
ngrokPath=/usr/local/ngrok/
# 代理域名
domain=xxx.com
nohup ${ngrokPath}bin/ngrokd -tlsKey="${ngrokPath}assets/server/tls/snakeoil.key" -tlsCrt="${ngrokPath}assets/server/tls/snakeoil.crt" -domain=${domain} -httpAddr=:5442 -httpsAddr=:5443 -tunnelAddr=":4443" >/dev/null 2>&1 &
其中 xxx.com
爲自己的域名
開機啓動腳本:
echo "/usr/local/ngrok/start.sh" >> /etc/rc.d/rc.local
sudo chmod +x /etc/rc.d/rc.local
4 參考資料推薦
ngrok綁定多個頂級域名、多個二級域名及轉發tcp同時啓動的方法
個人公衆號:404Code,記錄半個互聯網人的技術與思考,感興趣的可以關注.