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

開源中國2018-09-26 22:33:40


作者:哥本哈根的小哥

鏈接:

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


最近沒什麼事情,看了一些關於內網穿透的文章,因我本身已是做微信開發相關的工作,對這部分關注的比較多,現分享給大家。


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


NAPT原理


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



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


  • https://www.sohu.com/a/201964268_743147


我瞭解的內網穿透工具


  • Ngrok

  • Natapp

  • 小米球

  • Sunny-Ngrok

  • echosite

  • Ssh、autossh

  • Lanproxy

  • Spike

  • frp

  • fcn

  • 花生殼


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


1、Ngrok


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


參考博客:10分鐘教你搭建自己的ngrok服務器


  • https://blog.csdn.net/yjc_1111/article/details/79353718


2、Natapp


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


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


  • https://natapp.cn/article/natapp_newbie


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使用教程


  • https://www.ngrok.cc/_book/


5、echosite


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


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


  • https://blog.csdn.net/interesting0303/article/details/81098603


6、Ssh、autossh


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


使用教程:SSH內網穿透


  • https://yangqiang.im/?p=698


7、Lanproxy


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


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


  • https://blog.csdn.net/xmtblog/article/details/77943159


8、Spike


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


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


  • https://segmentfault.com/q/1010000009955702


9、Frp


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


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


  • https://sunnyrx.com/2016/10/21/simple-to-use-frp/


10、Fcn


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


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


  • http://www.sohu.com/a/202331135_449548


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


開源中國徵稿開始啦!


開源中國 www.oschina.net 是目前備受關注、具有強大影響力的開源技術社區,擁有超過 200 萬的開源技術精英。我們傳播開源的理念,推廣開源項目,為 IT 開發者提供一個發現、使用、並交流開源技術的平臺。


現在我們開始對外徵稿啦!如果你有優秀的技術文章想要分享,熱點的行業資訊需要報道等等,歡迎聯繫開源中國進行投稿。投稿詳情及聯繫方式請參見:我要投稿






推薦閱讀

Linus 又被批評了...

從 Eclipse 到 IDEA,金字塔到太空堡壘

你好,超全的 Vue 開源項目合集,簽收一下

Python 也攤上事兒了,術語 master-slave 亦恐被無奈修改

給你一份詳細的 Spring Boot 知識清單


點擊“閱讀原文”查看更多精彩內容

https://weiwenku.net/d/109080374