相信所有搞內(nèi)網(wǎng)穿透的小伙伴巩检,都有一顆熱愛工作的心厚骗。
最近忽然有了遠程辦公的需求,苦于單位的電腦沒有公網(wǎng)IP兢哭,且最近TeamViewer時不時的抽風领舰,因此UP主密集的試用了很多內(nèi)網(wǎng)穿透工具。除了前面提到的TeamViewer迟螺,也用了向日葵冲秽、Frp、Ngrok等工具矩父,總是不甚滿意锉桑。直到發(fā)現(xiàn)了ZeroTier,個人感覺還是挺香的窍株。
1 為啥選ZeroTier
先看看UP主對用過幾款內(nèi)網(wǎng)穿透軟件的對比:(僅對免費版進行對比民轴,土豪請略過):
軟件 | 是否兩端都需要安裝軟件 | 是否需要有公網(wǎng)IP服務(wù)器 | 是否支持點對點直連 | 缺點 |
---|---|---|---|---|
Ngrok | 否 | 否* | 否 | 需經(jīng)第三方服務(wù)器轉(zhuǎn)發(fā),速度受限于服務(wù)器帶寬球订;免費版第三方服務(wù)器域名不定時更換后裸,需經(jīng)常修改 |
TeamViewer | 是 | 否 | 否 | 需經(jīng)第三方服務(wù)器轉(zhuǎn)發(fā),速度受限于服務(wù)器帶寬冒滩;第三方服務(wù)器位于國外轻抱,連接不穩(wěn)定 |
Frp | 否 | 是 | 否 | 需要有一臺具有公網(wǎng)IP的服務(wù)器,速度受限于服務(wù)器帶寬 |
向日葵 | 是 | 否 | 否 | 需經(jīng)第三方服務(wù)器轉(zhuǎn)發(fā)旦部,速度受限于服務(wù)器帶寬祈搜;免費版限速2Mbps |
ZeroTier | 是 | 否 | 是 | 初次連接需經(jīng)第三方服務(wù)器建立點對點直通路由较店;第三方服務(wù)器位于國外,連接不穩(wěn)定容燕;存在建立點對點直通路由失敗的情況 |
UP主選擇ZeroTier梁呈,最開始就是看上了它的 點對點的直連。
注:也可自行搭建Ngrok的服務(wù)器蘸秘,此時需要條件及瓶頸類似Frp
2 啥是ZeroTier
ZeroTier is a smart Ethernet switch for planet Earth.
ZeroTier官網(wǎng)對自己的解釋已經(jīng)很透徹了:ZeroTier就是一個全球化的只能以太網(wǎng)交換機官卡。我們知道,交換機是一個L2設(shè)備醋虏。不同的設(shè)備通過網(wǎng)線/無線連接到同一臺交換機上寻咒,交換機通過MAC地址尋址進而完成節(jié)點間的互聯(lián)。ZeroTier的原理也一樣颈嚼,大致如下:
- 所有的設(shè)備在安裝軟件后毛秘,會在操作系統(tǒng)中生成一張?zhí)摂M網(wǎng)卡。設(shè)備的虛擬網(wǎng)卡通過互聯(lián)網(wǎng)接到ZeroTier提供的根服務(wù)器上(官方稱此根服務(wù)器為Planet阻课,是一個由12個分布在主要大洲的服務(wù)器構(gòu)成的集群叫挟,并號稱這樣設(shè)計以后幾乎所有設(shè)備到Planet的延遲都不會超過100ms)
- Planet為每一個連接到它的設(shè)備分配一個全球唯一的40bit的加密后的地址(類似MAC地址)
- 任意兩個節(jié)點進行首次連接時,Planet服務(wù)器會將兩個網(wǎng)絡(luò)信息發(fā)送給對方(官方稱為rendezvous messages)限煞,指導兩個節(jié)點建立點對點連接
- 兩個節(jié)點收到rendezvous message后抹恳,會嘗試建立點對點連接,如果建立成功后續(xù)數(shù)據(jù)將不再經(jīng)過Planet轉(zhuǎn)發(fā)
由此可見署驻,ZeroTier僅在連接之初需要第三方服務(wù)器轉(zhuǎn)發(fā)數(shù)據(jù)奋献,之后的數(shù)據(jù)直接直通。因此旺上,連接速率不再受限于第三方服務(wù)器秽荞,可以充分利用家里和單位的帶寬。
3 安裝ZeroTier
ZeroTier幾乎支持所有平臺:Windows抚官、MacOS扬跋、Linux、IOS凌节、Android钦听,甚至支持群暉、OpenWRT倍奢,簡直喪心病狂朴上。不過Android平臺下需要先安裝谷歌服務(wù)套件(GMS)。(作為剛換了華為手機的UP主卒煞,內(nèi)心真是B了狗了痪宰。)
ZeroTier的安裝也很簡單,幾乎不需要配置,下載對應平臺的安裝包直接安裝就行衣撬。網(wǎng)址:https://www.zerotier.com/download/乖订。
安裝之后,就可已組建自己的虛擬局域網(wǎng)了具练。具體步驟如下:
- 注冊ZeroTier賬號乍构,網(wǎng)址:https://my.zerotier.com/
login.png -
創(chuàng)建網(wǎng)絡(luò),并配置IP段
network1.png
- 在想要互聯(lián)的設(shè)備上扛点,加入該網(wǎng)絡(luò)ID(以Windows哥遮、Linux為例)
-
Windows
image.png - Linux
sudo zerotier-cli join 步驟2中的網(wǎng)絡(luò)ID
- 返回ZeroTier網(wǎng)站,授權(quán)設(shè)備接入網(wǎng)絡(luò)陵究,網(wǎng)址:https://my.zerotier.com/
image.png - 可以根據(jù)分配的IP盡心ping測了眠饮。下圖是ping測的結(jié)果。兩臺設(shè)備都是電信的網(wǎng)絡(luò)铜邮∫钦伲可明顯看出時延開始很大,慢慢變小了牲距。
ping.png
至此返咱,大功告成钥庇。設(shè)備們就相當于在一個局域網(wǎng)之中了牍鞠。什么遠程桌面啊、ssh啊就可以直接搞起了评姨。UP主這幾天用下來难述,無論時延還是速率表現(xiàn)的都不錯。Planet服務(wù)器也算穩(wěn)定(至少比TeamViewer強多了)吐句。當然胁后,如果手頭有公網(wǎng)IP的服務(wù)器的話,還可以自己搭建根服務(wù)器的備份(官方稱之為Moon節(jié)點)嗦枢。這樣的話攀芯,設(shè)備間首次建立連接時就不用再大老遠跑到ZeroTier的服務(wù)器上了。
至于如何搭建Moon節(jié)點文虏,且聽下回分解吧侣诺。。氧秘。