上次寫 Turnout 時,它還在開發中。10 月 26 日推出 1.0 之後,它又陸續更新了幾版:1.1.0 讓 WireGuard 在 UDP 被擋的網路上改走 TCP,1.1.2 起 Turnout 也有了 Windows 11 版,同一份授權 Mac 和 Windows 都能用。這篇整理 1.1 這一路加了什麼,以及 Windows 版和 Mac 版哪裡一樣、哪裡不同。
目前的版本是 11 月 6 日發布的 1.1.4,Mac 和 Windows 同時推出。
先補上 1.0:試用與授權
Turnout 還是那個連到 WireGuard 伺服器的 VPN 用戶端:讀你原本給 wg-quick 用的 .conf,hook 照樣執行,路由由你作主,通道從哪個網路介面出去也由你決定。1.0 起它是付費 App,每台電腦先有 7 天可以使用全部功能,需要的話再多 7 天;試用不需要帳號和信用卡,期間也不做授權檢查。試用結束後只有「連線」需要授權,中斷連線、編輯、匯出、修復網路設定和解除安裝一律照常。
UDP 被擋時,改走 TCP
WireGuard 只用 UDP,而有些網路會封鎖或限速 UDP:飯店和訪客 Wi-Fi、部分辦公室、部分電信業者。1.1.0 加入了 Phantun 的支援:在編輯器裡把對等端的傳輸方式從 UDP 切成 Phantun(TCP),Turnout 就會把 WireGuard 的封包包在一條 TCP 連線裡,送到 WireGuard 伺服器前面的一台 Linux 主機,由那裡的 Phantun 伺服器交給 WireGuard。
TCP 那一段由 Turnout 自己處理,Phantun 伺服器再以 UDP 交給 WireGuard。
這個設定只是對等端裡的一行註解。wg-quick 看到 #@ 開頭的行會當成註解,所以同一個檔案拿到別的地方,照樣用 UDP 連線:
[Peer]
PublicKey = …
Endpoint = vpn.example.com:51820
#@ Phantun = 4567
伺服器那邊也不用自己查文件。「伺服器設定⋯」會列出 Linux 主機要執行的指令,可以用 Docker 或 Phantun 的發行版執行檔,通道的連接埠和 MTU 都已經填好,每一段都有「複製」按鈕。UDP 通道一直收不到回應時,路徑上會出現「使用 Phantun⋯」,直接切換過去;從 Linux 搬過來、Endpoint 是 127.0.0.1 的設定檔(因為那邊先啟動了 phantun_client),也會得到同樣的建議,順便把那些指令移掉。

走 Phantun 的通道(英文介面):TCP 連線畫成一段包住傳輸線的套管。
上一篇提過的那條路徑也跟著多了一段:TCP 連線畫成包住傳輸線的套管,連線中是虛線,連上後變成實線;伺服器拒絕時變紅色,完全沒有回應時是橘色,旁邊再用一句話說明該檢查哪一邊。走 Phantun 的通道在連線期間,會在 Mac 的封包過濾(pf)加一條規則,中斷時移除;「修復網路設定⋯」和當機後的復原也會一併清掉它。
Windows 版:同一套做法,搬到 Windows 11
1.1.2 是 Windows 版的第一個正式版本。它和 Mac 版讀同一種設定檔,用同樣的方式選路:
- 設定檔照 wg-quick 的方式讀取:匯入 .conf 和裝著它們的 zip,包括官方 WireGuard App 匯出的檔案,也能再匯出。編輯器一樣有表單和文字兩種檢視,註解和不認得的行都照原樣保留。
- 網路介面由你選:
#@ BindInterface讓加密流量從指定的網路介面卡出去,名稱就是 Windows 顯示的那個,例如#@ BindInterface = Ethernet 2;#@ Route … dev讓指定的網段繞過通道。 - 自己連線:通道可以依排程,或在這台電腦加入你列出的 Wi-Fi 時連線,時間到或離開時中斷;這中間你手動做的操作會維持不變。
- Hook:PreUp、PostUp、PreDown、PostDown 一樣會執行,也一樣要先經過管理者核准。
- 通知與語言:同樣的通知,介面有 English、繁體中文、日本語、Español 和 한국어。

從通知區域的 Turnout 圖示打開的面板(英文介面)。
和 Mac 版不同的地方
- 待在通知區域:Mac 版在選單列,Windows 版在通知區域。Windows 可能會把新圖示收在工作列的 ^ 後面,把它拖到工作列上,就會一直顯示。
- 全通道的流量留在通道裡:承接所有流量的通道連線期間,Windows 的防火牆會擋下原本會從通道外送出的流量,以及送往通道 DNS 伺服器以外的 DNS 查詢,做法和官方 WireGuard App 相同。繞道的路由、區域網路必要的流量(DHCP、loopback)和通道本身連到伺服器的連線都會放行。這一點 Mac 版反而沒有。
- 還沒有 Phantun:用到 Phantun 的設定檔會照常顯示,但在 Windows 上還不會連線。
- 用命令列取代「捷徑」:
Turnout.exe connect <tunnel>、disconnect <tunnel>和status [tunnel]。 - 只支援 x64 電腦上的 Windows 11:Windows 10、Arm 版 Windows 和 Windows Server 都不支援。
它對 Windows 做了什麼
和 Mac 版一樣,Turnout 在 Windows 上也分成兩半:App 以你的身分執行,沒有任何特殊權限;真正修改網路的是一個以 SYSTEM 身分執行的背景服務。兩者之間是一條只回應這台電腦的具名管道。
App 只負責介面,所有會改動系統的事都交給背景服務。
每條已連線的通道都是一個以它命名的 Wintun 網路介面卡,驅動程式來自 WireGuard 專案,隨 Turnout 一起安裝;WireGuard 本身和 Mac 版一樣由 GotaTun 執行,那是 Mullvad 開發、以 MPL-2.0 授權的實作。位址和路由透過 Windows 的 IP Helper 函式設定;DNS 伺服器設在通道自己的介面卡上,所以中斷後不需要還原其他東西。防火牆規則放在服務自己的工作階段裡,通道中斷或服務停止時就會消失。
設定檔(包括私鑰)放在 %ProgramData%\cc.ctsite.turnout\tunnels,只有 SYSTEM 和管理者能讀取;hook 以 SYSTEM 身分透過 cmd.exe /C 執行。每一項路由變更在動手之前都會先記錄下來,所以當機之後,服務下次啟動時會先把留下的變更復原。想自己看看它改了什麼,可以在 PowerShell 裡執行:
Get-Service cc.ctsite.turnout.daemon
Get-NetAdapter # 通道的 Wintun 介面卡
Get-NetRoute -AddressFamily IPv4 # 它加入的路由
Get-DnsClientServerAddress # 通道介面卡的 DNS
在 Windows 上安裝
從產品頁下載 Turnout-<版本>-x64.msi 打開。這個安裝程式還沒有 Windows 的程式碼簽署憑證,所以 SmartScreen 可能會顯示「Windows 已保護您的電腦」,選「其他資訊」再選「仍要執行」,接著 Windows 會要求管理者核准。Turnout 會裝到 C:\Program Files\Turnout,背景服務隨即啟動,歡迎導覽會告訴你圖示在哪裡。
開啟了「智慧型應用程式控制」的電腦,則完全不讓沒有程式碼簽署憑證的安裝程式執行。之後的更新不依賴這張憑證:每一次更新都帶有 Turnout 自己的簽章,背景服務會先檢查大小、檢查碼和簽章,才交給 Windows Installer 安裝。
1.1.1 到 1.1.4 的其他改進
- 1.1.1:背景服務的記錄檔不再夾帶終端機的顏色碼,在「主控台」或任何文字編輯器裡都讀得清楚;服務的程式也重新整理過,讓它能在 Mac 以外共用。
- 1.1.3:Mac 和 Windows 版都改經由 turnout.ctsite.cc 上的網址讀取更新,之後版本放在哪裡可以換,不必為此再出新版;Windows 通知區域的面板也變寬了。
- 1.1.4:Turnout 關著的時候錯過了排程的開始或結束,下次打開時不會再推翻你在那之後手動做的連線或中斷;Windows 版更新完也會打開視窗,不會像是沒回來。
一份授權,Mac 和 Windows 一起用
US$19 一次買斷,可以用在三台電腦上,Mac 或 Windows 都算,Turnout 1 的每一次更新都包含在內。上市優惠價是 US$10,到 2026 年 11 月 25 日為止。付款和稅務由 Polar 處理,付款完成後頁面會直接顯示授權金鑰;14 天內可以退款,不問原因。
登入同一個 iCloud 帳號的 Mac 會找到這份授權,按一下就能使用;Windows 沒有 iCloud 可以帶過去,要在每台電腦的「授權」裡各自貼上金鑰,金鑰存在 Windows 認證管理員中。
還沒有的
- 還沒有 kill switch。通道中斷時,電腦會走原本的網路;在 Mac 上,通道連線時 Turnout 也不會阻擋通道以外的流量。
- 排程和 Wi-Fi 規則只在 Turnout 開著時運作,所以它提供「在登入時打開」;Wi-Fi 規則還需要定位權限,因為 macOS 和 Windows 都把 Wi-Fi 網路名稱視為位置資訊。
SaveConfig = true讀得懂,但還不會把執行中的狀態寫回設定檔。
Turnout 怎麼照 wg-quick 的順序套用設定、怎麼把權限切成兩半、當機之後怎麼復原,上一篇開發筆記有比較完整的說明。
相關連結
- 產品頁(繁體中文版):turnout.ctsite.cc
- Windows 版說明:Windows 版 Turnout
- 下載:Mac 版與 Windows 版
- 版本說明:GitHub Releases
- 回報問題:GitHub issues
- 我的其他專案:www.ctsite.cc
Turnout 可以免費試用 7 天,用得順手再買一份授權就好。
Mac 與 macOS 是 Apple Inc. 的商標。Windows 是 Microsoft 集團旗下公司的商標。WireGuard 是 Jason A. Donenfeld 的註冊商標。Turnout 是獨立開發的專案,與 WireGuard 專案沒有關聯,也未獲其背書。Phantun 是 Datong Sun 的開源專案。

留言
張貼留言