Windows搭建ngrok伺服器
1. 雲伺服器的公網ip可以映射到本地電腦嗎
雲伺服器公網IP映射至本地電腦,通過Ngrok實現內網穿透,任意埠映射,解決埠映射難題。
面對IPv4協議,IPv6商用遙遙無期,內網穿透需求日益凸顯。運營商分配的內網IP,限制了埠映射的可能。在尋求替代方案時,Ngrok的自建伺服器功能脫穎而出,無需受制於人。
要實現內網穿透,可按照以下步驟操作:
1. 創建ngrok目錄,編譯程序。
2. 更新包管理器、安裝git。
3. 克隆ngrok源代碼至本地。
4. 安裝Go語言環境。
5. 設置環境變數。
6. 生成根證書和伺服器證書。
7. 將證書復制至ngrok目錄。
8. 生成客戶端與服務端。
9. 在工作目錄的bin文件夾內,生成ngrok.exe和ngrokd.exe。
10. 使用注冊表編輯器添加註冊表項。
11. 啟動自定義服務。
12. 關閉系統自帶防火牆,設置硬體防火牆埠映射。
13. 將ngrok.exe復制至c:\windows\system32目錄,並創建ngrok.cfg配置文件。
14. 編寫配置文件,聲明域名、通道與埠。
15. 創建執行BATCH文件,設置開機自動運行ngrok -config "ngrok.cfg" start服務名稱。
16. 遠程桌面測試成功。
通過以上步驟,即可實現在雲伺服器公網IP與本地電腦之間建立內網穿透連接,實現任意埠映射,解決埠映射難題。
2. 用Ngrok實現內網穿透
Ngrok簡介:
Ngrok是用於內網穿透的開源軟體,它的1.x版本存在內存泄漏問題,從2.x版本開始轉向閉源。其工作原理是:伺服器端運行於擁有公網IP的伺服器上,監聽http、https及tunnel埠,等待客戶端連接。客戶端在需要穿透的內網機器上運行,連接至伺服器後,伺服器開始監聽客戶端指定埠,外網用戶連接伺服器監聽埠,伺服器將用戶數據轉發至內網客戶端,實現內網穿透。
准備工具:
1. 源碼地址:github.com/inconshrevea...
2. 外網伺服器:配備公網IP的伺服器,需設置子域名(A、CNAME)。
3. 內網客戶端:可以是虛擬機,本文以Ubuntu 20.04為例。
准備編譯環境:
1. 安裝go:使用命令`sudo apt install golang`。
2. 安裝git:通過命令`sudo apt install git`實現。
3. 生成自簽名證書:執行`cd ngrok`至項目目錄,設置伺服器域名`NGROK_DOMAIN="ngrok.abc.com"`。然後依次運行`openssl genrsa -out rootCA.key 2048`、`openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem`、`openssl genrsa -out device.key 2048`、`openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr`、`openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000`。
4. 將證書復制到指定文件夾:`cp rootCA.pem ../assets/client/tls/ngrokroot.crt`、`cp device.crt ../assets/server/tls/snakeoil.crt`、`cp device.key ../assets/server/tls/snakeoil.key`。
編譯伺服器和客戶端:
1. 伺服器編譯:在linux系統中,使用命令`GOOS=linux GOARCH=386 make release-server`(32位)或`GOOS=linux GOARCH=amd64 make release-server`(64位),針對Mac OS和Windows系統,分別使用相應命令進行編譯。
2. 客戶端編譯:根據系統類型,執行`GOOS=linux GOARCH=386 make release-client`(32位)或`GOOS=linux GOARCH=amd64 make release-client`(64位),同樣包括Mac OS和Windows系統。
編譯完成後,伺服器和客戶端程序將被生成在bin文件夾中。
運行伺服器:
將`ngrokd`程序復制至伺服器指定目錄,若埠被佔用可更改埠號,並確保開啟防火牆並打開埠允許外網訪問。具體操作參考相關文章。
開啟伺服器命令:`./ngrokd -domain="ngrok.abc.com" -httpAddr=":7080" -httpsAddr=":7010" -tunnelAddr=":7000"`。成功運行時會顯示相應提示。
運行客戶端:
將`ngrok`程序復制至客戶端指定目錄,創建`ngrok.yml`配置文件,配置如下內容:`./ngrok -config=ngrok.yml -log=ngrok.log start http ssh`。成功時將顯示相關信息,即可通過設置的網址訪問客戶端。
補充:
1. 若服務端80埠被佔用,可以使用Nginx進行轉發,例如訪問`test.ngrok.abc.com`即可轉發至`ngrok.abc.com:7080`。
3. 在Win10系統下如何實現內網的穿透
內網穿透有何用處?
寬頻為內網IP的用戶即內網用戶,以下范圍內的IP地址屬於內網保留地址,即不是公網IP,而是屬於內網IP:
10.0.0.0 - 10.255.255.255;
100.64.0.0 - 100.127.255.255;
172.16.0.0 - 172.31.255.255;
192.168.0.0 - 192.168.255.255。
例如某小區用戶均被分配的內網IP,通過一個公共的網關訪問外網,小區內每家用戶的計算機均可連接外網,但是Internet上的其他用戶卻無法對內網的計算機發送連接請求,自然也就無法訪問內網計算機所搭建的網站,也無法為內網計算機提供僅公網IP才能支持的下載、傳輸服務,例如BT下載、電驢等。
內網穿透即NAT穿透,通過埠映射將一台主機的內網(LAN)IP地址映射成一個公網(WAN)IP地址,讓互聯網上的用戶可以通過此公網IP地址訪問特定的內網主機所提供的網站或者伺服器。
內網穿透教程:花生殼DDNS埠映射
1、花生殼客戶端,沒有護照的用戶需要先注冊花生殼護照。
2、在Windows10系統內安裝花生殼,完成後登陸。
3、點擊客戶端內網映射,則跳轉至花生殼管理的內網映射web頁面,可以直接在網頁中對域名進行添加映射,即使不在伺服器現場,也可以遠程管理。
下面介紹內網映射添加步驟:
1、點擊【內網映射】——【添加映射】。
2、在添加映射頁面,填寫好「應用名稱」,「內網伺服器IP」,「內網服務埠」以及選擇「外網埠」形式,點擊確定即可。
3、添加成功後,會生成一個外網訪問地址。
4、在瀏覽器地址欄輸入外網訪問地址,即可成功訪問內網主機搭建的服務和應用。
5、搞定埠映射之後,內網用戶也能同公網用戶一樣隨心所欲使用強大的互聯網服務了。除了搭建網站之外,完成內網穿透的用戶還可以輕松實現遠程桌面的搭建和訪問、遠程監控攝像頭、自己開服玩游戲、搭建各類辦公系統等等。