請參閱: 開源內網穿透軟體比較
想要從外面的網路連線到家中的電腦、存取NAS照片、遠端桌面、存取自架服務、遊戲多人連線?你可以使用ZeroTier達成此目的。
ZeroTier是免費架設虛擬區域網路的開源軟體,類似私人VPN,支援Linux/Windows/macOS/FreeBSD/Android/iOS系統。
只要建立一個ZeroTier網路,將手機電腦加進此網路,等同連線到同一個Wifi下,這樣裝置之間便可以互相連線。
本文將簡介ZeroTier優點和安全性,再談如何在電腦/手機安裝ZeroTier。
1. ZeroTier優點#
以「從外面的網路連回家裡的電腦」這個目的來看
過去我們可能會調整路由器,設定通訊埠轉發(port forwarding),將浮動IP配上動態DNS,讓外部網路能連線到家裡電腦。
但有些人的路由器不是自己的無法亂動,或是你懶得去調,那麼ZeroTier就派上用場了,以上步驟通通不需要,只要裝在要連線的電腦即可運作。
使用上也比較簡單,客戶端操作就像連VPN一樣簡單易懂。
ZeroTier的免費方案上限為25個裝置連線,且官方表示不限制網速,個人使用足夠了。
雖說ZeroTier最早是採用GPLv3授權釋出的自由軟體,但是 2019年官方將其轉換為商業友好的BSL授權條款,軟體不再是完全開源。
2. ZeroTier安全性#
ZeroTier會把所有連線的裝置組成一個虛擬區域網路,像A電腦會分配到192.168.1.100
,B電腦192.168.1.101
,這些IP只有在連線到ZeroTier網路時才能存取。
ZeroTier客戶端在連線時會到官方伺服器查詢要連線的目標裝置,接著嘗試給二者UDP打洞(hole punch),成功P2P後資料傳輸就不會經過ZeroTier伺服器,速度提高:
然而若電腦防火牆阻擋P2P連線,那麼連線就會變成依賴官方伺服器傳輸(relaying),速度變慢:
就安全性來說,裝置加入ZeroTier私人網路前還要在網頁後台同意,才能存取同一ZeroTier網路下的其他裝置,所以並不是所有人都能隨便加進來。
根據 ZeroTier官方發表的白皮書,每個裝置之間的連線是點對點加密的,很難竊聽傳輸資料。
但缺點是你得信任ZeroTier這家商業公司作為連線中轉伺服器。即使連線有加密,他們也知道哪個IP正在使用他們的服務。故ZeroTier雖然很像VPN,但它無法隱藏你的IP,也不能拿來跨區。
如果真的不信任ZeroTier官方伺服器,你也可以自己租個VPS,利用ZeroTier的 開放原始碼軟體自行架設中轉伺服器"Moon"降低延遲,降低對ZeroTier官方服務的依賴。
3. 建立ZeroTier網路#
你必須先到ZeroTier官方網頁註冊帳號,才能建立ZeroTier網路。
至 官方網站,點選右上角Sign up註冊帳號。
接著登入 ZeroTier網路後台,點選Create A Network
下方列表會出現新網路,點進去修改設定。首先會看到「Network ID」這是給其他裝置連線用的。接著給Network命名,再勾選「Private」設定為私人網路。
頁面往下,會看到「IPV4 Auto Assign」的規則,建立Network時會隨機挑一組網段,通常維持預設即可。除非你習慣用
192.168
來代表區域網路的裝置再選擇其他規則。頁面再往下抵達「Members」區塊。此時還沒有任何裝置客戶端加入此網路,所以是空白(客戶端安裝請看下一節)。
有裝置加入後,重新整理ZeroTier後台頁面。勾選左邊的方框允許該裝置加入,接著給裝置取名方便辨識。以此類推,讓其他電腦/手機也加入此網路。
每個裝置後面會顯示ZeroTier分配的虛擬區域IP,要連線就是使用此IP位址。以下圖為例,假設要從Android手機存取Windows上的FTP伺服器,伺服器IP就是打
10.147.19.87
。你可以隨時讓裝置退出ZeroTier網路,需要的時候再連上去。ZeroTier後台會保留分配給該裝置的虛擬區域IP位址。
4. 安裝與設定ZeroTier客戶端#
這邊列出各大作業系統安裝ZeroTier客戶端的方法。
4.1. Linux#
請看 這篇了解各大Linux發行版安裝ZeroTier,還有ZeroTier指令用法。
4.2. Windows#
至 ZeroTier官網下載Windows的安裝檔安裝。
安裝後ZeroTier會顯示在系統匣右下角。
Windows搜尋「防火牆設定」
點選「允許應用程式通過防火牆」
點選「變更設定」,接著確認ZeroTier有打勾。再按下確定。
點選右下角的ZeroTier,勾選「Start UI at login」設定開機自動啟動。
接著點選「Join New Network」,會跳出視窗。在這邊輸入ZeroTier的Network ID,加入ZeroTier網路。之後在ZeroTier網頁後台允許該裝置加入。
4.3. macOS#
至 ZeroTier官網下載PKG安裝檔。
在應用程式列表找到ZeroTier,接著會顯示在系統右上角。右鍵點選「Join New Network」。
輸入Network ID,加入網路。之後在ZeroTier網頁後台允許該裝置加入。
如果macOS有啟用防火牆,請到系統偏好設定→安全性→防火牆→進階,允許ZeroTier客戶端的連入連線。
4.4. FreeBSD#
從官方套件庫安裝:
sudo pkg install net/zerotier
啟動服務:
sudo service zerotier start
其餘連線指令跟Linux類似。
4.5. Android#
至 Google Play下載ZeroTier
開啟ZeroTier APP,點選右上角設定。
勾選「Use Cecullar Data」允許使用行動網路流量。
回到首頁,點選右上角+號,填寫Network ID,再勾選「Route All traffic through ZeroTier」,點Add Network。
點選開關,啟動VPN連線,連線到ZeroTier網路。之後在ZeroTier網頁後台允許該裝置加入。
4.6. iOS#
至 App Store下載ZeroTier
開啟ZeroTier APP,點選右上角加入網路,輸入Network ID,勾選Enable Default Route。
回到主界面,啟動VPN連線。之後在ZeroTier網頁後台允許該裝置加入。
5. 改善ZeroTier延遲#
P2P連線時,資料傳輸不經過官方伺服器,速度取決於雙方裝置的網路速度。
若P2P失敗,ZeroTier就會走官方的的伺服器傳輸資料,此時速度就會慢很多。
因此要確保雙方裝置的防火牆是否有開放9993 UDP通訊埠才能穩定P2P連線。
你可以用指令確認ZeroTier裝置間是否有成功P2P:
sudo zerotier-cli peers
範例輸出如下,role
顯示LEAF
代表P2P成功,顯示PLANET
代表連線走的是官方伺服器。
200 peers
<ztaddr> <ver> <role> <lat> <link> <lastTX> <lastRX>
2wwweeew4f 1.10.2 LEAF 204 DIRECT 14487 14487
cawwfwwwb9 1.10.2 LEAF 142 DIRECT 12450 2295
從以上指令也能看到個別裝置的延遲率(Lat, Latency),若高於100就很容易lag,得檢查網路連線,或是重新連上ZeroTier網路。
6. ZeroTier的實際運用例子#
本站有列出一些 ZeroTier的使用場合。