快轉到主要內容

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

Linux系統 Self-hosting自架 VPN ZeroTier
🗓️ 民國111年 壬寅年
✍ 切換正體/簡體字
目錄

請參閱: 開源內網穿透軟體比較

想要從外面的網路連線到家中的電腦、存取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網路。

  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
#

從官方套件庫安裝:

sudo pkg install net/zerotier

啟動服務:

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:

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的使用場合

延伸閱讀
#

相關文章

Sunshine:Linux版Moonlight教學,自架免費雲端串流遊戲服務+遠端桌面
Linux系統 Self-hosting自架 Cloud Gaming Remote Desktop Steam Linux
取代Google搜尋引擎的一些選擇:去中心化的YaCy和Presearch
Linux系統 Self-hosting自架 Search Engine Google Search
如何自架Whoogle搜尋引擎,防範隱私被Google搜尋窺探
Linux系統 Self-hosting自架 Search Engine Google Search

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur連結。您的留言會在Github Discussions向所有人公開。

這是Disqus留言板,您可能會看到Disqus強制投放的廣告。有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。