- 下載
- sudo curl -s https://install.zerotier.com | sudo bash (需要科學上網)
- 所有涉及硬件的操作好像都需要 root 權限,curl 在這里需要連接網絡,所以也需要 sudo
- sudo zerotier-cli status
- 若返回
200 info
及設備 ID,表示安裝成功
- 若返回
- sudo zerotier-cli join [NETWORK_ID]
- 成功則回復 200
- 啟動 and 自啟動
- sudo systemctl start zerotier-one # 啟動服務
- sudo systemctl enable zerotier-one # 設置開機自啟
sudo zerotier-cli listnetworks
,查看是否獲取到內網 IP- 能查到說明那很好了,查不到的話,恭喜可以看 debug 篇了
- sudo curl -s https://install.zerotier.com | sudo bash (需要科學上網)
- debug 篇(廣和通板子也有點逆天,第一次碰見 tun 出問題的 )
- 查看日志:journalctl -u zerotier-one --since “1 hour ago” (or “5 minutes ago”)
- 日志顯示
could not open TUN/TAP device: Permission denied
- 日志顯示
- 列出所在的 ZeroTier Network:sudo zerotier-cli listnetworks
- 正常情況下會有輸出一個網絡 ![[Pasted image 20250330120150.png]]
- 因內核模塊缺失和
/dev/net/tun
權限不足,導致 ZeroTier 無法創建虛擬接口- ls -l /dev/net/tun # 正常權限應為 crw-rw-rw- 或 crw-rw-r----
- 修復權限:
- sudo chmod 666 /dev/net/tun # 臨時放寬權限
- 永久解決權限:
- echo ‘KERNEL == “tun”, MODE=“0666”’ | sudo tee /etc/udev/rules.d/90-tun.rules
- sudo udevadm control --reload
- 若用戶非 root,需賦予其訪問 TUN 設備的權限
- 提示沒有 tun 組
- 創建 tun 組
- sudo groupadd tun # 創建名為 “tun” 的用戶組
- 驗證是否成功
- grep tun /etc/group # 輸出應包含 “tun?GID”
- 把用戶加入 tun 組
- sudo usermod -aG tun <用戶名> # 例如:sudo usermod -aG tun zerotier-one
- 確保
/dev/net/tun
設備允許tun
組訪問:(暫時)- sudo chmod 660 /dev/net/tun # 設置權限為 rw-rw----
- sudo chown root:tun /dev/net/tun # 設置所有者為 root,組為 tun
- 永久方案
- echo ‘KERNEL == “tun”, MODE=“0660”, GROUP=“tun”’ | sudo tee /etc/udev/rules.d/90-tun.rules
- sudo udevadm control --reload # 重載規則
- 創建 tun 組
- 檢查有無這個文件夾
- ls /dev/net/tun # 若不存在則手動創建
- 手動創建設備節點(覺得是本次問題的關鍵)
- sudo mkdir -p /dev/net
- sudo mknod /dev/net/tun c 10 200 # 主設備號 10,次設備號 200
- 配置權限(永久)
- echo ‘KERNEL== “tun”, MODE=“0666”’ | sudo tee /etc/udev/rules.d/90-tun.rules
- sudo udevadm control --reload
- 重啟
- sudo systemctl restart zerotier-one # 重啟 ZeroTier 或其他依賴 TUN 的服務
- 檢查虛擬網卡
- ip link show | grep zt # 應顯示類似 ztb2e4e0333 的接口
- 放行 9993
- sudo ufw allow 9993/udp # Ubuntu/Debian
- 檢查 網絡管理員 有無同意申請
- zerotier-cli listnetworks
- 提示沒有 tun 組
- 查看日志:journalctl -u zerotier-one --since “1 hour ago” (or “5 minutes ago”)