八個(gè)優(yōu)秀開(kāi)源內(nèi)網(wǎng)穿透工具
內(nèi)網(wǎng)穿透(NAT穿透)是一種將本地網(wǎng)絡(luò)服務(wù)暴露給互聯(lián)網(wǎng)的一種技術(shù)。這種技術(shù)可以很好地解決許多局域網(wǎng)內(nèi)的資源共享。采用路由的方式將一臺(tái)計(jì)算機(jī)變成一個(gè)“路由器”,將公共的網(wǎng)絡(luò)地址轉(zhuǎn)為內(nèi)部網(wǎng)絡(luò)地址,從而實(shí)現(xiàn)通過(guò)英特網(wǎng)可以訪問(wèn)局域網(wǎng)資源的目的。
內(nèi)網(wǎng)穿透有許多應(yīng)用場(chǎng)景,例如:
- 遠(yuǎn)程辦公:有時(shí)候需要在家里遠(yuǎn)程辦公,需要訪問(wèn)公司內(nèi)部的服務(wù)器或者局域網(wǎng)中的資源。利用內(nèi)網(wǎng)穿透技術(shù)可輕松實(shí)現(xiàn)遠(yuǎn)程辦公。
- 遠(yuǎn)程開(kāi)發(fā)調(diào)試:開(kāi)發(fā)Web應(yīng)用時(shí)常常需要在移動(dòng)設(shè)備中測(cè)試。通過(guò)內(nèi)網(wǎng)穿透技術(shù),可以將服務(wù)端開(kāi)發(fā)環(huán)境暴露到公網(wǎng)上,方便在移動(dòng)設(shè)備上進(jìn)行調(diào)試,提高開(kāi)發(fā)效率。
- 家庭服務(wù)器管理:在家中搭建了NAS存儲(chǔ)、智能家居控制系統(tǒng)等設(shè)備。當(dāng)我們離開(kāi)家時(shí),可以通過(guò)內(nèi)網(wǎng)穿透,在互聯(lián)網(wǎng)中安全訪問(wèn)家庭服務(wù)器,遠(yuǎn)程管理數(shù)據(jù)和設(shè)備。
- 云服務(wù)器訪問(wèn):對(duì)于云服務(wù)器,有時(shí)候我們需要訪問(wèn)其中的數(shù)據(jù)庫(kù)、文件或者其他服務(wù)。通過(guò)內(nèi)網(wǎng)穿透,我們可以直接訪問(wèn)云服務(wù)器內(nèi)部的資源,節(jié)省時(shí)間和成本。
- 局域網(wǎng)游戲聯(lián)機(jī):內(nèi)網(wǎng)穿透可以讓多臺(tái)設(shè)備在同一個(gè)局域網(wǎng)中進(jìn)行聯(lián)機(jī)游戲。這樣,即使設(shè)備之間不在同一個(gè)網(wǎng)絡(luò)中,也可以通過(guò)內(nèi)網(wǎng)穿透建立虛擬的局域網(wǎng),實(shí)現(xiàn)聯(lián)機(jī)游戲的功能。
雖然內(nèi)網(wǎng)穿透給通過(guò)互聯(lián)網(wǎng)訪問(wèn)局域網(wǎng)帶來(lái)了許多方便。但內(nèi)網(wǎng)穿透技術(shù)打破內(nèi)網(wǎng)的邊界,很容易給內(nèi)網(wǎng)帶來(lái)各種風(fēng)險(xiǎn);另外,內(nèi)網(wǎng)穿透依賴(lài)于互聯(lián)網(wǎng)上的服務(wù)器,對(duì)網(wǎng)絡(luò)穩(wěn)定性也是一種考驗(yàn)。因此,使用時(shí)需要綜合考慮應(yīng)用場(chǎng)景和安全需求。
內(nèi)網(wǎng)穿透工具有很多,比較知名的如:花生殼、Ngrok等。 但是,本文主要推薦一些開(kāi)源的內(nèi)外穿透工具,便于自己搭建私有的網(wǎng)絡(luò)通道。
1.Fast Reverse Proxy (FRP)
GitHub:https://github.com/fatedier/frp
文檔:https://gofrp.org/zh-cn/docs/
frp是一個(gè)快速反向代理,允許將位于局域網(wǎng)或防火墻后面的本地服務(wù)器暴露給因特網(wǎng)。它目前支持TCP和UDP,以及HTTP和HTTPS協(xié)議,這個(gè)工具可以使網(wǎng)絡(luò)請(qǐng)求能夠通過(guò)域名轉(zhuǎn)發(fā)到內(nèi)部服務(wù)。另外,F(xiàn)RP還提供P2P連接模式、流加密、負(fù)載平衡、自定義域名等功能。
FRP是用Golang編寫(xiě)的,因此它支持Linux、windows、Mac等操作系統(tǒng)。
2.Localtunnel
GitHub:https://github.com/localtunnel/localtunnel
localtunnel是一個(gè)可以將本地服務(wù)暴露給英特網(wǎng)的工具,非常適合用于瀏覽器測(cè)試、外部API回調(diào)服務(wù)等。
Localtunnel-server提供了一個(gè)簡(jiǎn)單的命令行界面,對(duì)于初學(xué)者來(lái)說(shuō)非常容易使用。要使用Localtunnel-server,必須先在系統(tǒng)上安裝Node.js和npm。啟動(dòng)后,Localtunnel客戶(hù)端將創(chuàng)建一個(gè)指向本地Web服務(wù)器的公共URL。
3.Chisel
GitHub:https://github.com/jpillora/chisel
Chisel是一個(gè)用Golang開(kāi)發(fā)的開(kāi)源網(wǎng)絡(luò)隧道解決方案。它支持TCP、HTTP和WebSockets等多種協(xié)議。Chisel提供了一個(gè)簡(jiǎn)單的命令行界面,開(kāi)發(fā)人員很容易入手。它還支持與客戶(hù)端自動(dòng)重新連接,確保穩(wěn)定運(yùn)行。
Chisel的主要優(yōu)勢(shì)是快速,因此它支持安全快速地發(fā)送大量數(shù)據(jù)。
4.Rathole
GitHub:https://github.com/rapiz1/rathole
Rathole是一個(gè)用Rust語(yǔ)言編寫(xiě)開(kāi)源隧道解決方案,也具備反向代理功能??梢酝ㄟ^(guò)Internet與NAT防火墻后面的應(yīng)用程序和設(shè)備建立連接。
Rathole獨(dú)有的突出特點(diǎn)是低資源消耗。
5.FastTunnel
GitHub:https://github.com/FastTunnel/FastTunnel
FastTunnel是一款高性能的跨平臺(tái)內(nèi)網(wǎng)穿透工具,它的主要功能是將內(nèi)網(wǎng)服務(wù)安全地暴露到公網(wǎng),允許用戶(hù)或其他人可以從任何地方訪問(wèn)這些服務(wù)。不同于其他穿透工具,F(xiàn)astTunnel致力于提供一個(gè)易于擴(kuò)展和維護(hù)的內(nèi)網(wǎng)穿透框架,使用戶(hù)能夠根據(jù)自己的需求構(gòu)建自定義的穿透應(yīng)用,并添加業(yè)務(wù)擴(kuò)展功能。該工具采用了.Net Core開(kāi)發(fā),因此可以在不同操作系統(tǒng)上部署,包括Windows、Linux和macOS等。這使得FastTunnel成為一種強(qiáng)大的解決方案,適用于各種應(yīng)用場(chǎng)景,無(wú)論是開(kāi)發(fā)者需要將本地服務(wù)遠(yuǎn)程暴露,還是需要?jiǎng)?chuàng)建自定義內(nèi)網(wǎng)穿透解決方案的高級(jí)用戶(hù),F(xiàn)astTunnel都提供了便捷且高性能的選擇。
6.sshuttle
GitHub:https://github.com/sshuttle/sshuttle
透明的代理服務(wù)器,可作為低成本的VPN實(shí)現(xiàn)方式。支持ssh轉(zhuǎn)發(fā);支持DNS隧道;支持Linux和MacOS等系統(tǒng)。
7.Bore
GitHub:https://github.com/ekzhang/bore
Bore是一個(gè)用Rust開(kāi)發(fā)的簡(jiǎn)單的TCP隧道工具,可以將本地端口繞過(guò)標(biāo)準(zhǔn)的NAT連接防火墻,暴露給遠(yuǎn)程服務(wù)器。
8.Zrok
GitHub:https://github.com/openziti/zrok
Zrok是一個(gè)基于OpenZiti構(gòu)建的下一代點(diǎn)對(duì)點(diǎn)共享平臺(tái)。OpenZiti是一個(gè)可編程的零信任網(wǎng)絡(luò),Zrok是一個(gè)Ziti下的原生應(yīng)用程序。zrok允許用戶(hù)共享HTTP、TCP和UDP等網(wǎng)絡(luò)協(xié)議下的資源。zrok還允許用戶(hù)以點(diǎn)對(duì)點(diǎn)方式共享文件、Web內(nèi)容以及其他資源。