1. 程式人生 > >可以實現內網穿透的幾款工具

可以實現內網穿透的幾款工具

首先說下內網穿透的原理。

 

NAPT原理

 

在NAT閘道器上會有一張對映表,表上記錄了內網向公網哪個IP和埠發起了請求,然後如果內網有主機向公網裝置發起了請求,內網主機的請求資料包傳輸到了NAT閘道器上,那麼NAT閘道器會修改該資料包的源IP地址和源埠為NAT閘道器自身的IP地址和任意一個不衝突的自身未使用的埠,並且把這個修改記錄到那張對映表上。最後把修改之後的資料包傳送到請求的目標主機,等目標主機發回了響應包之後,再根據響應包裡面的目的IP地址和目的埠去對映表裡面找到該轉發給哪個內網主機。這樣就實現了內網主機在沒有公網IP的情況下,通過NAPT技術藉助路由器唯一的一個公網IP來訪問公網裝置。 具體原理參照下圖:

 

 

更加具體的原理性介紹可以看下這篇文件:【技巧】內網穿透工具的原理與開發實戰

 

我瞭解的內網穿透工具

 

  • Ngrok    

  • Natapp

  • 小米球

  • Sunny-Ngrok

  • echosite

  • Ssh、autossh

  • Lanproxy

  • Spike

  • frp

  • fcn

  • 花生殼

 

前5個都是基於國外的ngrok來進行二次開發的。

 

1、Ngrok

 

ngrok 是一個反向代理,通過在公共端點和本地執行的 Web 伺服器之間建立一個安全的通道,實現內網主機的服務可以暴露給外網。ngrok 可捕獲和分析所有通道上的流量,便於後期分析和重放,所以ngrok可以很方便地協助服務端程式測試。

 

參考部落格:10分鐘教你搭建自己的ngrok伺服器

 

2、Natapp

 

natapp是 基於ngrok的國內收費內網穿透工具,類似花生殼,有免費版本,比花生殼好。免費版本:提供http,https,tcp全隧道穿透,隨機域名/TCP埠,不定時強制更換域名/埠,自定義本地埠

 

參考文章:NATAPP1分鐘快速新手圖文教程

 

3、小米球

 

小米球是基於ngrok二次開發的內網穿透工具,支援多協議、多隧道、多埠同時對映(http、https、tcp等等...),同時支援多種系統win、linux、linux_arm、mac等。具體的使用直接參考官網。

 

4、Sunny-Ngrok

 

Sunny-Ngrok同樣是ngrok二次開發的內網穿透工具,支援http,https協議,同時支援更豐富的系統和語言:linux、win、mac、openwrt、 python、php等。

 

教程:Sunny-Ngrok使用教程

 

5、echosite

 

echosite同樣ngrok二次開發的內網穿透工具,支援多種協議,以前是全部免費的,現在推出了收費版和免費版,可根據自己的需要去選擇。

 

參考教程:EchoSite---讓內網穿透變得簡單

 

6、Ssh、autossh

 

ssh 配合autossh工具使用,因為autossh會容錯,自動重新啟動SSH會話和隧道。autossh是一個程式,用於啟動ssh的副本並進行監控,在死亡或停止傳輸流量時根據需要重新啟動它。 這個想法來自rstunnel(Reliable SSH Tunnel),但是在C中實現。作者的觀點是,它不像匆匆忙忙的工作那麼容易。使用埠轉發環路或遠端回顯服務進行連線監視。在遇到連線拒絕等快速故障時,關閉連線嘗試的速度。在OpenBSD,Linux,Solaris,Mac OS X,Cygwin和AIX上編譯和測試; 應該在其他BSD上工作。免費軟體。

 

使用教程:SSH內網穿透

 

7、Lanproxy

 

lanproxy是一個將區域網個人電腦、伺服器代理到公網的內網穿透工具,目前僅支援tcp流量轉發,可支援任何tcp上層協議(訪問內網網站、本地支付介面除錯、ssh訪問、遠端桌面...)。目前市面上提供類似服務的有花生殼、TeamView、GoToMyCloud等等,但要使用第三方的公網伺服器就必須為第三方付費,並且這些服務都有各種各樣的限制,此外,由於資料包會流經第三方,因此對資料安全也是一大隱患。

 

參考教程:業餘草推薦一款區域網(內網)穿透工具lanproxy

 

8、Spike

 

Spike是一個可以用來將你的內網服務暴露在公網的快速的反向代理,基於ReactPHP,採用IO多路複用模型。採用Php實現。

 

參考教程:使用 PHP 實現的的內網穿透工具 “Spike”

 

9、Frp

 

frp 是一個可用於內網穿透的高效能的反向代理應用,支援 tcp, udp, http, https 協議。利用處於內網或防火牆後的機器,對外網環境提供 http 或 https 服務。對於 http, https 服務支援基於域名的虛擬主機,支援自定義域名繫結,使多個域名可以共用一個80埠。利用處於內網或防火牆後的機器,對外網環境提供 tcp 和 udp 服務,例如在家裡通過 ssh 訪問處於公司內網環境內的主機。

 

教程:一款很好用的內網穿透工具--FRP、使用frp實現內網穿透

 

10、Fcn

 

FCN[free connect]是一款傻瓜式的一鍵接入私有網路的工具, fcn利用公共伺服器以及資料加密技術實現:在免公網IP環境下,在任意聯網機器上透明接入服務端所在區域網網段。支援多種系統,有免費版和付費版。

 

教程:內網穿透工具FCN介紹

 

上面便是我所知道的內網穿透工具,其中ngrok相關的我基本都用過還有frp,都差不多。大部分都可以免費去使用,但是我不建議大家把這些免費的穿透工具去放到比較重要的雲伺服器中去使用,容易被攻擊。我的小夥伴,開始你的穿透之旅吧。

 

作者:哥本哈根的小哥 

https://my.oschina.net/ZL520/blog/2086061