快轉到主要內容

Linux系統用Docker跑ZeroTier One,進行內網穿透

ZeroTier Docker
✍ 切換正體/簡體字
目錄

ZeroTier作為開源軟體,怎麼可能不支援Linux系統呢。不錯,我在 這篇嘗試過許多Linux發行版安裝ZeroTier,連Alpine和Gentoo都能裝上了,還有什麼發行版不行的?

openSUSE Tumbleweed,這個就真的沒有受ZeroTier支援,不幸。我看網路上有人的作法是拿RHEL 9的RPM來裝,但是我不想額外加套件庫,更何況這是用其他發行版的RPM來用,我不是很喜歡這種作法。

於是就找到了zyclonite開發的 zerotier-docker專案,用Docker跑ZeroTier,用起來跟原生套件沒兩樣,照樣能夠讓裝置加入ZeroTier,進行內網穿透。

作者說他是在Fedora Silverblue (以前叫CoreOS) 測試的,因為immutable系統的設計才用Docker跑ZeroTier服務,容器裡的ZeroTier其實是跑在Alpine的映像檔上,此容器支援x86與ARM架構。

我覺得這是很有趣的構想,正好解決了特定Linux發行版沒人打包ZeroTier的問題。Docker在各大Linux的支援度可要比ZeroTier廣多了對吧?用Docker來跑ZeroTier服務也不是壞點子。

1. 安裝
#

  1. 首先在Linux系統 安裝Docker,並設定開機自動啟動服務。
sudo systemctl enable docker
  1. 用以下指令跑ZeroTier容器。使用-d引數使其在背景執行,再用--restart引數使容器之後開機自動啟動。
sudo docker run -d \
--restart unless-stopped \
--name zerotier-one --device=/dev/net/tun \
--net=host \
--cap-add=NET_ADMIN \
--cap-add=SYS_ADMIN \
-v /var/lib/zerotier-one:/var/lib/zerotier-one \
zyclonite/zerotier

2. 使用
#

  1. /var/lib/zerotier-one/networks.d目錄新增<ZeroTier Network ID>.conf的空白檔案,例如你的Network ID是5e3103qfrp2
sudo mkdir /var/lib/zerotier-one/networks.d
sudo touch /var/lib/zerotier-one/networks.d/5e3103qfrp2.conf
  1. 或者可以在容器執行時,用以下指令加入ZerotTier網路。但除非你的裝置是不關機的,否則用上面的方法加入ZeroTier網路會比較好。
sudo docker exec zerotier-one zerotier-cli join 5e3103qfrp2
  1. 這樣就完成加入網路。之後再到ZeroTier的網頁後台同意裝置加入即可。

這裡仍要注意Docker繞過UFW防火牆規則的問題,如果在意這點請使用 ufw-docker

另外zyclonite還開發了路由模式的ZeroTier容器,可以到他的 Github頁面查看。

相關文章

Linux如何安裝 & 使用ZeroTier建立虛擬區網
Linux系統 Self-hosting自架 Linux ZeroTier
[Root] Android手機跑Docker容器和Flatpak,Sony Xperai 5 II編譯自訂kernel
智慧型手機 Root與刷機 Sony Xperia Linux Kernel Android Docker Flatpak
ZeroTier使用教學:建立虛擬區網的VPN軟體
Linux系統 Self-hosting自架 VPN ZeroTier

留言板

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

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

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