有沒有免費的內網穿透工具(內網穿透神器NPS的使用)
2023-04-13 11:02:23 1
有沒有免費的內網穿透工具?內網穿透是指將內網中的軟體服務通過網絡代理方式暴露給廣域網用戶可以實現內網穿透的方式很多,比如通過防火牆硬體、網絡穿透軟體來進行實現本文主要介紹通過NPS軟體實現典型的內網穿透,下面我們就來聊聊關於有沒有免費的內網穿透工具?接下來我們就一起去了解一下吧!
有沒有免費的內網穿透工具
內網穿透是指將內網中的軟體服務通過網絡代理方式暴露給廣域網用戶。可以實現內網穿透的方式很多,比如通過防火牆硬體、網絡穿透軟體來進行實現。本文主要介紹通過NPS軟體實現典型的內網穿透。
NPS介紹nps是一款輕量級、高性能、功能強大的內網穿透代理伺服器。目前支持TCP、udp流量轉發,可支持任何tcp、udp上層協議(訪問內網網站、本地支付接口調試、ssh訪問、遠程桌面,內網dns解析等等……),此外還支持內網http代理、內網socks5代理、p2p等,並帶有功能強大的web管理端。
其官方網站為:https://ehang-io.github.io/nps其官網文檔對軟體的安裝、使用描述的非常完整,基本根據官方文檔就可以進行順利安裝與使用。
基本概念了解該軟體的使用,首先需要了解一個基本的內網穿透使用場景。
伺服器端,一般安裝在公網伺服器上,是所有內網資源對外的統一入口。客戶端,一般安裝在內網伺服器上,是內網伺服器與公網伺服器的橋梁。客戶端連接埠,客戶端使用該秘鑰連接服務端連接埠建立長連接,用於將外網伺服器請求信息轉發至對應客戶端,對應客戶端也通過該埠返回相關信息。客戶端秘鑰,在服務端部署完成後,需要建立客戶端秘鑰,並在客戶端連接時需要使用該秘鑰進行連接。一個伺服器端,可以對應多個客戶端。在伺服器端的不同埠,可以映射在不同客戶端的對應本地埠之上。
典型場景本文我們設計一個最常見的場景,來說明整個軟體的使用過程。我們設定基本需求如下。
我們有一臺具備公網IP的伺服器,伺服器名稱為public-server,作業系統為linux我們有兩臺內網伺服器inner-server1(linux)、inner-server2(windows)我們將公網伺服器的8081埠,映射至inner-server1:80;8082埠映射至inner-server2:80埠。兩個代理協議均為TCP協議操作步驟外網伺服器public-server(linux)服務端nps安裝首先,需要登錄其github項目發布版本頁面 (https://github.com/ehang-io/nps/releases ) 下載對應版本服務端nps軟體。根據public-server的情況這裡我們下載,linux_amd64_server.tar.gz版本。通過ssh登錄public-server,並將文件上傳至對應安裝目錄,需要首先進行解壓縮。(假定文件上傳至目錄/usr/nps)tar -xzvf linux_amd64_server.tar.gz
解壓縮完成後進入解壓目錄,需要執行對應安裝命令,以保障我們可以將nps相關命令與加載至bin資源下sudo ./nps install
之後我們需要啟動相關服務端軟體,並在控制臺查看是否啟動成功。sudo nps start
配置網絡代理並開啟publiic-server WEB服務端埠在啟動成功後,我們需要打開防火牆8080埠,使得可以通過瀏覽器登錄其管理臺。同時需要打開8024埠,使得客戶端可以連接到服務端通訊埠。sudo firewall-cmd --permanent --add-port=8080/tcpsudo firewall-cmd --permanent --add-port=8024/tcpsudo firewall-cmd --reload
使用瀏覽器登錄相關埠,提示用戶名稱與密碼。使用如下默認用戶名密碼進行登錄。admin/123
登錄成功後一定要修改相關密碼,修改配置文件 nps.confsudo vim /etc/nps/conf/nps.conf
web_usernameweb_password
重新啟動相關服務並嘗試重新登錄sudo nps stopsudo nps start
通過web管理臺配置客戶端接入信息使用瀏覽器登錄相關埠,提示用戶名稱與密碼。使用如下修改後用戶名密碼進行登錄。點擊 客戶端 -> 新增 ,依次填寫 備註(inner-server1)、允許客戶端通過配置文件連接(是)、壓縮(是)、加密(是),不填寫Basic 認證用戶名、Basic 認證密碼、唯一驗證密鑰點擊 客戶端 -> 新增 ,依次填寫 備註(inner-server2)、允許客戶端通過配置文件連接(是)、壓縮(是)、加密(是),不填寫Basic 認證用戶名、Basic 認證密碼、唯一驗證密鑰新建完成後查看客戶端清單,保存好兩臺伺服器自動生成的唯一驗證密鑰、客戶端ID備用,在這裡我們假定其分別為「client-key」、"client-id"內網伺服器inner-server1安裝npc(linux)客戶端並連接需要登錄其github項目發布版本頁面 ( https://github.com/ehang-io/nps/releases ) 下載對應版本客戶端nps軟體。根據public-server的情況這裡我們下載,linux_amd64_client.tar.gz 版本。通過ssh登錄inner-server1,並將文件上傳至對應安裝目錄,需要首先進行解壓縮。(假定文件上傳至目錄/usr/npc)tar -xzvf linux_amd64_client.tar.gz
解壓縮完成後進入解壓目錄,需要執行對應安裝命令,以保障我們可以將npc相關命令與加載至bin資源下,同時設置伺服器ip地址埠以及連接秘鑰(上一步新建客戶端時自動生成並備用的信息)。sudo ./npc install -server=public-server:8024 -vkey=client-key
之後我們需要啟動相關服務端軟體,並在控制臺查看是否啟動成功。sudo npc stopsudo npc start
內網伺服器inner-server2安裝npc(windows)客戶端並連接需要登錄其github項目發布版本頁面 ( https://github.com/ehang-io/nps/releases ) 下載對應版本客戶端nps軟體。根據public-server的情況這裡我們下載,windows_amd64_client.tar.gz 版本。通過ssh登錄inner-server1,並將文件上傳至對應安裝目錄,需要首先進行解壓縮。(假定文件上傳至目錄D:\npc)tar -xzvf windows_amd64_client.tar.gz
解壓縮完成後進入解壓目錄,需要執行對應安裝命令,同時設置伺服器ip地址埠以及連接秘鑰(上一步新建客戶端時自動生成並備用的信息)。npc.exe install -server=public-server:8024 -vkey=inner-server2唯一驗證密鑰
之後我們需要啟動相關服務端軟體,並在控制臺查看是否啟動成功。npc.exe stopnpc.exe start
外網伺服器public-server(linux)服務端埠映射配置使用瀏覽器登錄相關埠,提示用戶名稱與密碼。使用如下修改後用戶名密碼進行登錄。在此需要使用到上文談到創建客戶端後自動生成的客戶端ID。選擇TCP 隧道->新增 ,依次填寫 模式(TCP)、客戶端ID(client-id)、備註(inner-server1-80)、**服務端埠(8081)、目標(127.0.0.1:80)選擇TCP 隧道->新增 ,依次填寫 模式(TCP)、客戶端ID(client-id)、備註(inner-server2-80)、**服務端埠(8082)、目標(127.0.0.1:80)打開public-server相關防火牆sudo firewall-cmd --permanent --add-port=8081/tcpsudo firewall-cmd --permanent --add-port=8082/tcpsudo firewall-cmd --reload
測試訪問public-server:8081/8082埠並觀察服務端、客戶端日誌進行驗證轉發是否成功。總結至此,我們基於nps完成了最常見的內網穿透配置,其實nps所支持的協議、作業系統非常多,大家可以根據官方文檔進行逐步學習、驗證即可。整體系統的可用性非常好,我部署了一年沒有出現過任何問題。
版權聲明,本文首發於 數字魔盒 https://www.dm2box.com/ 歡迎轉載。
,