ZeroTier是提供免費虛擬區域網路的公司,軟體開源且可自架,支援各大作業系統。
ZeroTier尤其適合想從外面網路連到家裡電腦/NAS的用戶。只要建立一個ZeroTier網路,其他裝置用ZeroTier客戶端連線至該網路,則等同連線到同樣的虛擬區域網路。用途有:存取家中的伺服器、進行多人遊戲、遠端桌面等等。
原理類似VPN,有術語將其稱為「內網穿透」。不過使用者不需費心設定路由器的通訊埠轉發,只要確認防火牆的通訊埠能讓ZeroTier通過即可。
ZeroTier基本方案免費且不限速,僅有限制最多50個裝置連線,個人使用足夠了,還能控管加入連線的用戶提昇安全性。
下面簡介如何在Linux系統設定與安裝ZeroTier,有純文字指令版與圖形化版本,其他作業系統的設定方法請看 這篇。
1. Linux安裝ZeroTier#
根據 官方文件
Debian, Ubuntu, CentOS, RHEL, Fedora使用以下指令安裝ZeroTier,安裝指令稿會自動識別發行版。
curl -s https://install.zerotier.com | sudo bash
Arch Linux和Manjaro則從官方套件庫安裝:
sudo pacman -S zerotier-one
Alpine Linux從官方儲存庫安裝:
sudo apk add zerotier-one
Gentoo從官方儲存庫安裝:
sudo emerge --ask net-misc/zerotier
openSUSE似乎被ZeroTier遺忘了…雖然技術上說openSUSE可以拿RHEL的rpm來用。
如果你的Linux發行版沒人打包ZeroTier,可以考慮用 Docker跑ZeroTier,Snap版的ZeroTier我試了跑不起來。
2. 管理ZeroTier後台#
到 ZeroTier官方網站註冊帳號。
登入 ZeroTier後台,點選Create A NetWork
點進去新建的Network,裡面會顯示一組英數代碼Network ID,這就是你的網路的代碼,將這個代碼提供給其他裝置加入。
裝置連線後,會在ZeroTier後台看到裝置,要在左邊的格子打勾,該裝置才會允許加入。
ZeroTier會給每個裝置分配虛擬區域IP,例如從上圖可以得知電腦的區域IP是
172.30.221.253
。除非刪除裝置,否則這個虛擬區域IP是固定的。
3. 加入ZeroTier網路#
- 加入ZeroTier網路前,建議開啟
9993/udp
通訊埠以讓ZeroTier連線更流暢。以UFW來說的話就是:
sudo ufw allow 9993/udp
sudo ufw reload
- 啟動ZeroTier服務,設定開機自動啟動
sudo systemctl start zerotier-one
sudo systemctl enable zerotier-one
- 如果您的電腦使用Wifi連線,致使要登入桌面才會連上網路的話,則必須啟用
systemd-networkd-wait-online
服務,讓ZeroTier在有網路之後才嘗試連線 ( 參考 )
sudo systemctl enable systemd-networkd-wait-online
- 加入ZeroTier網路
sudo zerotier-cli join "Network ID"
#應會回傳200 join OK
- 確認ZeroTier網路狀態
sudo zerotier-cli status
- 確認ZeroTier有無P2P成功,如果有的話Peers上面會顯示
LEAF
,這樣網路會順暢些。
sudo zerotier-cli peers
- 離開ZeroTier網路
sudo zerotier-cli leave "Network ID"
#應會回傳200 leave OK
4. 圖形化管理界面 Zerotier GUI#
第三方開發的ZeroTier管理程式,安裝後可以用圖形界面管理ZeroTier連線。
啟動需要sudo,只支援Arch系和Debian的發行版。
Arch Linux從AUR安裝:
yay -S zerotier-gui-git
Debian/Ubuntu手動製作Deb檔:
git clone https://github.com/tralph3/ZeroTier-GUI.git
cd ZeroTier-GUI
./make_deb.sh
chmod +x make_deb.sh