編按:本文綜合整理自 GitHub tailscale/tailcat 官方 repo、Hacker News 討論串(id=49452990),並加入 Siami 編輯部觀點與分析。Tailcat 是 Tailscale 官方在 2026 年 8 月 26 日於 Hacker News 上引爆討論的開源專案,HN 評分最高曾達 599 分、討論串超過百則留言。
什麼是 Tailcat?
Tailcat 是 Tailscale 官方開源的小工具,副標題寫得直白:“Tailscale without Tailscale, by Tailscale”。它本質上是 netcat 的精神繼承者,但底層通道從裸 TCP 換成了 Tailscale 的 magicsock 數據平面,再包上 WireGuard 加密。
一句話總結:
兩台機器之間,互相丟一個「短 token」,就能建立 WireGuard 加密隧道,不需要 Tailscale 帳號、不需要 root 權限、不會動到路由表或 DNS。
技術上,Tailcat 重組了 Tailscale 開源專案中三個核心元件:
- magicsock:處理兩端點之間的 NAT 穿透與點對點加密通道
- DERP relay(Designated Encrypted Relay for Packets):NAT 穿透失敗時的最後中繼站
- WireGuard:所有流量端對端加密
但完全跳過了 Tailscale 的控制平面——所有連線 metadata 都靠「out-of-band」(兩邊自己用任何方式交換,例如電話、即時訊息、甚至印出來手抄)。
安裝與基本用法
安裝方式非常輕量:
$ go install github.com/tailscale/tailcat/cmd/tailcat@latest
或用 Nix flakes:
$ nix run github:tailscale/tailcat
最經典的範例——兩台機器互相 pipe stdin/stdout:
# 伺服器端
$ tailcat
# Selected bootstrap relay region 302, San Francisco
# 🐈 Server listening with new address: tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFpGQEu
# 用戶端(把 token 貼上來)
$ echo hello | tailcat tcomFwWCCcjS5nKNqAod034nWoJZW0LZqDhhC8U_dKdnDRYQ8uNGFpGQEu
# 伺服器端收到
hello
除了純粹的 stdin/stdout 轉送,Tailcat 還內建了幾個實用子命令:
--serve=8080,8443:把本地 TCP port 暴露到遠端--serve=no-auth-ssh:跑一個免認證的 SSH 伺服器--serve=exit-node:讓用戶端透過伺服器的網路出去ping:測試連線,回報是走 DERP relay 還是直連socks:把流量包成 SOCKS5 proxy 走隧道parse/resolve:解析 token 的內部結構
為什麼這件事重要
1. 它把「商用 VPN 廠商的 NAT 穿透黑魔法」免費開源了
過去要享受 Tailscale 等級的 NAT 穿透,使用者必須接受:
- 註冊帳號
- 把流量的 metadata(誰連誰、IP 是多少)交給一家商業公司
- 信任控制平面不會被政府、駭客、或是公司倒閉所影響
Tailcat 的設計哲學是:保留 Tailscale 的「網路層魔法」,但把「誰知道你連到誰」這層從雲端拿掉。兩台機器之間唯一的 metadata 是一串你可以電話念給對方的 token。
正如作者 Brad Fitz 在 HN 回應:
There’s no vendor lock-in here and no payment or account required. If Tailscale as a company fails, tailcat keeps working if you run your own DERP server.
換句話說,Tailscale 不是把這個專案當成商業威脅,而是當成對開源社群的一份責任——他們 CEO Avery 公開主張 DERP 伺服器應該作為公共基礎建設來運作。
2. 它徹底重新定義「點對點檔案傳輸」的使用者體驗
過去要在兩台 NAT 後面的機器間傳檔,常見選項是:
- Magic Wormhole:用 PAKE + 短密語,支援電話口頭傳遞,但加密設定複雜
- SSH 反向隧道:要喬 port forwarding、要處理 CGNAT、要懂路由器
- Syncthing:要長期同步,不是臨時檔案傳輸
Tailcat 直接給你一個 tailcat token 就通的簡潔模型,且因為底層走 WireGuard 加密,連 SSH 連線都能在 WireGuard 認證完成前就被擋掉——真正的 zero trust。
3. 它點出了網際網路根本性的設計缺陷
HN 留言中 mrsssnake 的評論一針見血:
Everything should be possible with just plain netcat and IP stack. Someone asks about NAT holepunching, encryption, static IDs, permissions, etc., yes this is what Internet lacks and why every P2P app reinvents it over and over again.
Tailcat 之所以需要存在,是因為 IPv4 + NAT + CGNAT + IPv6 普及不足,導致「兩台電腦直接互傳位元組」這件 1980 年代應該很簡單的事,到了 2026 年還是需要額外工具。
與既有方案的比較
| 工具 | NAT 穿透 | 需要帳號 | 完全開源 | 加密 |
|---|---|---|---|---|
| Tailcat | ✅(magicsock) | ❌ | ✅ BSD-3 | ✅ WireGuard |
| iroh | ✅ | ❌ | ✅ MIT/Apache | ✅ |
| Headscale | ✅ | ❌ | ✅ | ✅ WireGuard |
| Netbird | ✅ | ❌ | ✅ | ✅ WireGuard |
| ZeroTier | ✅ | ❌ | ✅ BSL | ✅ |
| 直接 WireGuard | ❌ | ❌ | ✅ | ✅ |
HN 留言中 colinmarc 提到,iroh 的 NAT 穿透演算法部分基於 Tailscale 的設計,所以 Tailcat 算是把這個生態系裡的「開源、不需帳號、控制平面自帶」這個象限填滿了。
數據解讀 / 質疑
質疑 1:被當作 C&C 通道怎麼辦?
HN 上 LoganDark 點出了一個安全社群會擔心的問題:
What’s the risk of malware using this for C&C or otherwise? Hackers love communication channels that are difficult to take down individually.
Tailcat 的設計特性剛好符合惡意程式最愛的條件:加密、無法被 ISP 看到、token 短得像一次性、不需要連固定 C2 server。但 Tailscale CEO 在 8 月 26 日的討論中已預告:免費 DERP 是有速率限制的,要做大規模殭屍網路必須自架 DERP——而自架 DERP 會留下 fingerprint。
質疑 2:完全不需要 Tailscale 控制平面,是優勢還是限制?
gz5 認為既然都開源了,為什麼不也把 DERP 控制也開放,做成完全去中心化?這點 Brad Fitz 的回答很誠實:
我們沒有要追求完全去中心化。我們要的是「不綁特定雲端」。你被允許自架 DERP,但不用 DERP 控制平面就不可能做精細的權限管理(ACL、裝置審核等)。
換句話說,Tailcat 的設計選擇是「減少鎖定,但保留中心化選項」——這是 Tailscale 對「未來 5-10 年基礎建設演化」的押注。
質疑 3:免費 DERP 會不會被濫用到不堪負荷?
Brad Fitz 回應:
這些 DERP 是 rate-limited 的,而且與 Tailscale 商業用戶的 DERP 是完全分離的 fleet,DNS/SNI 都不會出現
tailscale.com字串。
這意味著 Tailscale 在商業 DERP 之外另開了一個獨立基礎建設層(derp map 在 tailcat.dev/derpmap.json),這是認真的「公益 DERP」承諾。
開發細節與生態系
- 語言:Go
- 授權:BSD-3-Clause
- 星數:1,355(截至 2026-08-27)
- 建立日期:2024-10-29
- HN 討論首發:2026-08-26
配套資源
- WebAssembly 瀏覽器 demo:tailscale.github.io/tailcat/ ——可以直接在瀏覽器收發檔案或文字
- Nix flake:
nix run github:tailscale/tailcat即可執行 - GitHub Pages workflow:8/27 剛加入 CI/CD 自動部署 web demo
- Minecraft 模組:tailscale/tailcat-for-minecraft —— 用 Tailcat 當多人連線傳輸層的小玩具(Brad Fitz 在 HN 自爆這是同事做的 demo)
社群對照組:Tailscale 內部開發哲學
HN 留言中 mikepurvis 問:
Is nix widespread or the standard dev environment at tailscale?
Brad Fitz 的回答:
It’s not our standard dev environment but some of us use Nix. We don’t really use Docker much, though. Mostly just
go testetc.
這透露 Tailscale 工程文化:Go 為主、輕量 CI、實驗性專案偏好 Nix 的可重現性。
結論
Tailcat 不是要取代 Tailscale 商業產品,而是給開源社群一份**「如何用 Tailscale 的程式碼、但不被 Tailscale 綁住」**的範本。
對於以下場景特別適合:
- 個人開發者需要在咖啡廳臨時 SSH 回自家機器
- 不想把連線 metadata 交給任何公司的隱私敏感用戶
- 想研究 NAT 穿透 / WireGuard 應用的工程師
- 需要把家裡 NAS 短暫暴露給朋友的研究者
對於以下場景仍須用 Tailscale 商業版或 Headscale:需要集中管理 ACL、裝置審核、多人協作的企業環境。
Brad Fitz 在 HN 結尾打趣:
One fun use case: a coworker just whipped up this Minecraft mod using tailcat as its transport. (just a cute demo, not intended for release or ongoing maintenance)
所以嚴格來說,Tailcat 也算是 Minecraft 多人連線的另類解法之一。
編按:本文綜合整理自 GitHub tailscale/tailcat 官方 repo 與 Hacker News 討論串(id=49452990),並加入 Siami 編輯部觀點與分析。Brad Fitz(Tailscale 工程團隊)於 HN 的回應為本文技術細節的主要來源。
網友熱門留言 (11)