ZeroTier使用教學:建立虛擬區網的VPN軟體

想要從外面的網路連線到家中的電腦、存取NAS照片、遠端桌面、存取自架服務、遊戲多人連線?你可以使用ZeroTier達成此目的。

ZeroTier是免費架設虛擬區域網路的開源軟體,類似私人VPN,支援Linux/Windows/macOS/FreeBSD/Android/iOS系統。

只要建立一個ZeroTier網路,將手機電腦加進此網路,等同連線到同一個Wifi下,這樣裝置之間便可以互相連線。

本文將簡介ZeroTier優點和安全性,再談如何在電腦/手機安裝ZeroTier。

1. ZeroTier優點

以「從外面的網路連回家裡的電腦」這個目的來看

過去我們可能會調整路由器,設定通訊埠轉發(port forwarding),將浮動IP配上動態DDNS,讓外部網路能連線到家裡電腦。

但有些人的路由器不是自己的無法亂動,或是你懶得去調,那麼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網路。

  1. 官方網站,點選右上角Sign up註冊帳號。

  2. 接著登入ZeroTier網路後台,點選Create A Network

  3. 下方列表會出現新網路,點進去修改設定。首先會看到「Network ID」這是給其他裝置連線用的。接著給Network命名,再勾選「Private」設定為私人網路。

  4. 頁面往下,會看到「IPV4 Auto Assign」的規則,建立Network時會隨機挑一組網段,通常維持預設即可。除非你習慣用192.168來代表區域網路的裝置再選擇其他規則。

  5. 頁面再往下抵達「Members」區塊。此時還沒有任何裝置客戶端加入此網路,所以是空白(客戶端安裝請看下一節)。

  6. 有裝置加入後,重新整理ZeroTier後台頁面。勾選左邊的方框允許該裝置加入,接著給裝置取名方便辨識。以此類推,讓其他電腦/手機也加入此網路。

  7. 每個裝置後面會顯示ZeroTier分配的虛擬區域IP,要連線就是使用此IP位址。以下圖為例,假設要從Android手機存取Windows上的FTP伺服器,伺服器IP就是打10.147.19.87

  8. 你可以隨時讓裝置退出ZeroTier網路,需要的時候再連上去。ZeroTier後台會保留分配給該裝置的虛擬區域IP位址。

4. 安裝與設定ZeroTier客戶端

這邊列出各大作業系統安裝ZeroTier客戶端的方法。

4.1. Linux

請看這篇了解各大Linux發行版安裝ZeroTier,還有ZeroTier指令用法。

4.2. Windows

  1. ZeroTier官網下載Windows的安裝檔安裝。

  2. 安裝後ZeroTier會顯示在系統匣右下角。

  3. Windows搜尋「防火牆設定」

  4. 點選「允許應用程式通過防火牆」

  5. 點選「變更設定」,接著確認ZeroTier有打勾。再按下確定。

  6. 點選右下角的ZeroTier,勾選「Start UI at login」設定開機自動啟動。

  7. 接著點選「Join New Network」,會跳出視窗。在這邊輸入ZeroTier的Network ID,加入ZeroTier網路。之後在ZeroTier網頁後台允許該裝置加入。

4.3. macOS

  1. ZeroTier官網下載PKG安裝檔。

  2. 在應用程式列表找到ZeroTier,接著會顯示在系統右上角。右鍵點選「Join New Network」。

  3. 輸入Network ID,加入網路。之後在ZeroTier網頁後台允許該裝置加入。

  4. 如果macOS有啟用防火牆,請到系統偏好設定→安全性→防火牆→進階,允許ZeroTier客戶端的連入連線。

4.4. FreeBSD

從官方套件庫安裝:

1
sudo pkg install net/zerotier

啟動服務:

1
sudo service zerotier start

其餘連線指令跟Linux類似。

4.5. Android

  1. Google Play下載ZeroTier

  2. 開啟ZeroTier APP,點選右上角設定。

  3. 勾選「Use Cecullar Data」允許使用行動網路流量。

  4. 回到首頁,點選右上角+號,填寫Network ID,再勾選「Route All traffic through ZeroTier」,點Add Network。

  5. 點選開關,啟動VPN連線,連線到ZeroTier網路。之後在ZeroTier網頁後台允許該裝置加入。

4.6. iOS

  1. App Store下載ZeroTier

  2. 開啟ZeroTier APP,點選右上角加入網路,輸入Network ID,勾選Enable Default Route。

  3. 回到主界面,啟動VPN連線。之後在ZeroTier網頁後台允許該裝置加入。

5. 改善ZeroTier延遲

P2P連線時,資料傳輸不經過官方伺服器,速度取決於雙方裝置的網路速度。

若P2P失敗,ZeroTier就會走官方的的伺服器傳輸資料,此時速度就會慢很多。

因此要確保雙方裝置的防火牆是否有開放9993 UDP通訊埠才能穩定P2P連線。

你可以用指令確認ZeroTier裝置間是否有成功P2P:

1
sudo zerotier-cli peers

範例輸出如下,role顯示LEAF代表P2P成功,顯示PLANET代表連線走的是官方伺服器。

1
2
3
4
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的使用場合


感謝您的閱讀。歡迎分享Ivon的部落格(ivonblog.com)的文章,引用或轉載請註明文章網址,並遵守創用CC-姓名標示-非商業性-禁止改作 4.0 國際授權條款。如需商業使用請來信告之。

written by human, not by AI

如果本網站文章對您有幫助,歡迎請我喝杯珍珠奶茶。

留言板

點選按鈕,選擇您覺得方便的留言系統。

這是Giscus留言板,需要登入Github帳號才能留言。方便您張貼程式碼,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。