−25%

Windows 年繳方案適用,至 10 月 31 日。 檢視方案

EQVPS
開始使用

用於 Headscale 的 VPS:自託管 Tailscale 控制伺服器

在一台小 VPS 上執行 Headscale,把網狀 VPN 的協調伺服器掌握在自己手裡。安裝、第一個使用者、連線裝置,以及它的侷限。

網狀 VPN 是那種悄無聲息讓一切變簡單的工具:您的筆電、家用伺服器、手機和各台 VPS 無論身在何處,都能透過私有位址互相存取。託管式網狀 VPN 的問題在於協調伺服器:一家公司掌握著您所有裝置的地圖。Headscale 是這台控制伺服器的開源替代品。把它跑在一台小 VPS 上,繼續使用原來的用戶端應用,地圖就歸您所有。

各部分如何配合

  • Headscale(在您的 VPS 上)分配位址、分發公鑰,並執行您的 ACL。
  • 用戶端就是標準的 Tailscale 應用,指向您的伺服器。
  • 流量透過 WireGuard 在裝置之間直接傳輸。控制伺服器從不承載它。

最後這一點正是很小的方案就夠用的原因:VPS 只需回應小小的協調請求。

您需要準備

  • Nano-IP(每月 $8):2 vCPU 和 1 GB 記憶體遠超 Headscale 的用量。
  • 獨立 IPv4 和一個網域,例如 hs.example.com。裝置透過 HTTPS 與控制伺服器通訊,因此 VPS 必須接受對內的 443;NAT 方案做不到(詳情)。

安裝(Debian 12 / Ubuntu 24.04)

從 GitHub 上 Headscale 的發布頁面下載目前的 .deb,並把版本號換成最新的:

HS_VER=0.26.1
wget -O headscale.deb \
  "https://github.com/juanfont/headscale/releases/download/v${HS_VER}/headscale_${HS_VER}_linux_amd64.deb"
apt install -y ./headscale.deb caddy

編輯 /etc/headscale/config.yaml,關鍵的是這兩行:

server_url: https://hs.example.com
listen_addr: 127.0.0.1:8080

在前面放一個 Caddy 提供 HTTPS:

cat > /etc/caddy/Caddyfile <<'EOF'
hs.example.com {
    reverse_proxy 127.0.0.1:8080
}
EOF
systemctl enable --now headscale
systemctl reload caddy

新增使用者和裝置

headscale users create alice
headscale users list            # note the user's ID
headscale preauthkeys create --user 1 --expiration 24h

較舊的版本在 --user 中要求使用者名稱而不是 ID;headscale preauthkeys create --help 會告訴您目前版本需要哪一種。

在 Linux 裝置上:

tailscale up --login-server https://hs.example.com --authkey YOUR_KEY

在手機和桌面端,Tailscale 應用允許您在設定中指定自訂的控制伺服器。在 VPS 上執行 headscale nodes list,您的裝置應該就會出現在列表裡。

中繼與 NAT 穿透

大多數裝置都能直連。當兩台裝置無法直連時(嚴格的行動網路、雙重 NAT),流量會經過 DERP 中繼。開箱即用時,Headscale 使用 Tailscale 的公共中繼,中繼只能看到加密的資料包。如果您不希望路徑上有任何外部環節,就在 config.yaml 中開啟內建中繼(derp.server.enabled: true),並開放 UDP 3478。此時被中繼的流量會計入您的 VPS 頻寬。

坦誠的侷限

沒有官方的 Web 儀表板:使用者、金鑰和路由都是 CLI 指令(做過兩次就熟了)。託管服務的新功能會較晚才出現在 Headscale 中,甚至不會出現。而且控制伺服器現在由您負責:它當機時,已有的連線仍能工作,但新裝置無法加入,金鑰也無法重新整理。請做好備份:全部狀態都在 /var/lib/headscale。

對於家庭實驗室、一個家庭,或者想把裝置地圖從第三方伺服器上拿回來的小團隊來說,這是一台 $8 VPS 最好的用法之一。

相關

準備好部署了嗎?以加密貨幣付款,免 KYC——大約一分鐘上線。

立即部署 →

常見問題

Headscale 伺服器實際上能看到什麼?

元資料:有哪些裝置、它們的公鑰、位址,以及最後一次線上的時間。流量本身透過 WireGuard 在裝置之間直接傳輸(如果彼此無法直連則經由中繼),並且是端到端加密的。自託管意味著這些元資料放在您的伺服器上,而不是別人的伺服器上。

需要特殊的用戶端嗎?

不需要。您在 Linux、macOS、Windows、iOS 和 Android 上使用普通的 Tailscale 應用,把它們指向您的伺服器位址即可。在 Linux 上只需要一個參數:--login-server。

哪個方案就夠了?

Headscale 非常輕量:Nano-IP(每月 $8)足以輕鬆支撐一個家庭或小團隊。您需要獨立 IP,因為裝置必須透過 HTTPS 存取控制伺服器;NAT 方案不接受對內的 443。

如果兩台裝置無法直連怎麼辦?

它們會回退到中繼(DERP)。預設情況下,Headscale 使用 Tailscale 的公共中繼,中繼只能看到加密後的資料包。您也可以改為開啟 Headscale 內建的中繼;它需要開放 UDP 3478,並會用您的 VPS 頻寬轉發流量。

和託管版 Tailscale 服務相比少了什麼?

沒有官方的 Web 管理面板:使用者和金鑰都透過命令列管理(有社群做的介面)。託管服務的一些新功能會較晚才來到 Headscale,或者根本不會來。對於個人或小團隊的網路,核心功能(網狀組網、ACL、MagicDNS、exit node)執行良好。

評論

目前還沒有評論。歡迎成為第一位。

發表評論

評論在顯示前會經過審核。