先理解外部控制器:它不是一般代理連接埠

在 Windows 版 Clash Verge Rev 裡,外部控制器(External Controller)是一個供管理工具、Web 面板或自動化腳本呼叫的本機 API 入口。它和 mixed-port、http-port、socks-port 的用途完全不同:代理連接埠負責承接瀏覽器、遊戲或其他應用程式的網路流量;外部控制器則負責讀取執行狀態、切換代理模式、變更策略組、查看連線,甚至重新載入設定檔。很多人看到「控制器連接埠」就直接填入代理連接埠,結果 Web 面板始終顯示無法連線,根本原因就是把兩種服務混在一起。

外部控制器通常由 Mihomo 核心提供 HTTP API。Clash Verge Rev 只是負責把核心、設定檔與桌面介面整合起來,因此不同版本的選單名稱可能略有差異,但設定邏輯大致相同:先確認核心正在執行,再指定一個本機控制器位址與連接埠,最後設定密鑰(Secret)保護 API。只要其中一項沒有生效,面板就可能出現「連接被拒絕」「401 Unauthorized」「載入節點逾時」或頁面空白等不同症狀。

對一般只想切換節點的使用者而言,外部控制器不是每天都必須手動操作的功能;但當你使用 Web 面板、手機同網路管理電腦上的核心,或需要透過腳本檢查策略組狀態時,它就會變成很實用的管理入口。更重要的是,控制器 API 具有操作權限,不應像公開測速頁一樣直接暴露在網際網路上。本文預設你在自己的 Windows 電腦上設定,並以「先本機驗證、再視需要擴大範圍」為安全原則。

ℹ 先記住三個概念:mixed-port 是給應用程式使用的代理入口;external-controller 是給管理面板使用的 API 入口;secret 是控制 API 的驗證密鑰。三者可以使用不同連接埠,也應該分開理解。

在 Clash Verge Rev 找到外部控制器設定

開啟 Clash Verge Rev 後,先確認目前使用的核心不是停止狀態。你可以從主視窗的核心狀態、系統匣圖示或日誌區域觀察 Mihomo 是否已正常啟動。若核心尚未運行,先處理設定檔解析錯誤或核心啟動問題,否則即使填好了控制器位址,Windows 也不會有程式在對應連接埠上監聽。

接著進入應用程式的設定頁,尋找與核心設定、外部控制器、API或控制器位址相關的區塊。Clash Verge Rev 的版本與語言包可能使選單名稱不同,有些版本把它放在一般設定,有些版本則將其放在核心或進階設定內。如果你在圖形介面找不到完全相同的欄位,不要立刻修改陌生的 YAML;先確認目前選用的核心類型、版本號,以及是否有「編輯核心設定」或「開啟設定檔目錄」之類的入口。

常見的控制器位址格式是 127.0.0.1:9090、127.0.0.1:9097或其他未被占用的本機連接埠。這裡的 127.0.0.1 代表只允許同一台電腦連線,對第一次設定最合適。若欄位只接受連接埠,請把位址與連接埠分開填入;若欄位要求完整格式,則必須按照介面提示輸入。不要在同一欄位裡重複加上 http://,除非該欄位明確要求 URL。

如果你是直接在設定檔中確認值,概念上會看到類似以下內容。實際欄位名稱與設定檔格式仍應以目前 Mihomo 版本為準,修改前請先備份原檔,並避免把範例中的連接埠、密鑰或其他名稱不加判斷地複製到正式環境。

external-controller: 127.0.0.1:9097
secret: change-this-to-a-long-random-secret

儲存後,可能需要按下重新載入核心、重啟核心或重新啟動 Clash Verge Rev。若設定頁顯示已儲存,但控制器仍無法連線,請先完全退出程式,再從系統匣確認沒有殘留的舊程序,之後重新啟動。Windows 上同時開啟兩個 Clash 客戶端時,舊核心可能仍占用同一連接埠,造成新設定看似正確卻沒有實際生效。

選擇連接埠與設定安全密鑰

控制器連接埠不需要使用常見的代理連接埠。將 API 與代理服務分開,可以讓日誌判讀更清楚,也能減少其他程式誤把控制器當成 SOCKS 或 HTTP 代理的機會。下面的數值只是規劃範例,並不是固定標準;真正重要的是該連接埠未被其他服務使用,且你能在日後排障時記住它的用途。

用途 範例位址 主要作用 是否建議對外開放
HTTP 代理 127.0.0.1:7890 供支援 HTTP 代理的應用程式使用 不建議
SOCKS 代理 127.0.0.1:7891 供支援 SOCKS5 的應用程式使用 不建議
外部控制器 127.0.0.1:9097 供 Web 面板與管理工具呼叫 API 預設不應開放

密鑰不要使用 123456、電腦名稱、電子郵件、出生日期或與訂閱帳戶相同的字串。較好的做法是使用一段足夠長、不可從個人資訊猜出的隨機字串,並且只儲存在本機密碼管理器或受保護的筆記中。控制器密鑰不是代理伺服器密碼,但一旦洩漏,別人可能透過 API 切換你的節點、讀取連線資訊,甚至改變核心行為,因此應視為敏感設定。

如果你要將控制器交給 Web 面板使用,面板通常會要求填入兩項資料:API 位址和 Secret。API 位址只要寫控制器服務的主機與連接埠,例如 127.0.0.1:9097;Secret 則填入 Clash Verge Rev 中完全相同的密鑰。常見錯誤是把 http://127.0.0.1:9097填入只接受「主機:連接埠」的欄位,或在密鑰前後多貼了空格。遇到 401 錯誤時,應先重新輸入密鑰,而不是先關閉防火牆或改用更高權限啟動程式。

⚠ 安全提醒:除非你非常清楚防火牆、驗證與網路隔離的影響,否則不要把外部控制器綁定到 0.0.0.0,也不要將控制器連接埠直接轉發到路由器或公網。控制器 API 不是公開展示頁,錯誤暴露可能讓陌生人取得本機代理管理權。

使用 Web 面板連線與驗證功能

完成設定後,開啟你信任的 Clash 管理 Web 面板。面板可能要求輸入控制器位址、Secret,或先在瀏覽器中設定 API Host。請優先使用本機面板與本機控制器測試,因為這樣能把問題限制在同一台 Windows 電腦,不會同時牽涉路由器隔離、區域網路防火牆與跨裝置 DNS。

連線成功後,正常的面板通常可以顯示目前模式、代理群組、節點列表與即時連線。你可以先做低風險測試:查看目前模式是否為 Rule、Global 或 Direct,確認策略組名稱與 Clash Verge Rev 主介面一致,再觀察面板是否能顯示流量統計。不要一開始就批量切換所有策略組,也不要在沒有備份的情況下使用面板裡的覆寫或重載功能。

  1. 確認位址:面板中的 API Host 必須對應控制器,而不是 mixed-port或 SOCKS 連接埠。
  2. 確認密鑰:Secret 必須與核心設定完全一致,大小寫、符號與空格都不能不同。
  3. 確認核心:Clash Verge Rev 的 Mihomo 核心必須持續執行,不能只開著殼層介面。
  4. 確認功能:先讀取狀態,再測試切換一個代理組,最後回到主介面確認變更是否同步。

若面板載入成功但節點列表為空,這不一定代表控制器故障。可能是目前沒有載入有效設定檔、代理提供者尚未更新,或面板使用的 API 路徑與核心版本不完全相容。此時先回到 Clash Verge Rev 的 Profiles 或設定檔頁面,確認當前設定檔確實包含代理與策略組,再查看核心日誌是否出現 YAML 解析錯誤。控制器只會呈現核心已載入的資料,不會替你修復失效的訂閱。

連線失敗、401 與連接埠衝突的排查順序

「無法連線」是一個結果,不是單一原因。建議按照由近到遠、由簡單到複雜的順序排查,不要一看到面板失敗就同時更換核心、清空設定檔、停用防火牆。先確認 Clash Verge Rev 是否仍在執行,再確認控制器設定是否已套用,最後才檢查 Windows 連接埠和安全軟體。

顯示 Connection refused 或無法建立連線

這通常表示指定的位址上沒有服務監聽。先檢查核心是否已啟動,以及控制器設定是否因為設定檔切換而被還原。若你剛修改了設定,重新載入核心後再測一次。也可以在 Windows PowerShell 中查看指定連接埠是否有監聽者,使用下列指令時請將數字換成你的控制器連接埠。

Get-NetTCPConnection -LocalPort 9097 -ErrorAction SilentlyContinue

如果查不到任何結果,代表目前沒有程序在該連接埠提供服務,問題多半在核心沒有啟動、欄位名稱或格式不正確、設定檔尚未套用,或連接埠被其他程式占用後核心啟動失敗。若查到監聽者但面板仍失敗,請確認面板填的是相同主機與連接埠,並留意是否把 localhost、127.0.0.1與 IPv6 位址混用。

顯示 401 Unauthorized

401 通常表示服務已經找到,但驗證沒有通過。重新複製 Secret 時,請避免從含有格式化字元的文件中貼上,因為開頭或結尾的空格、換行與不可見字元都可能造成比對失敗。若你曾經換過密鑰,瀏覽器或面板可能仍保留舊值,請清除面板中的 API 設定後重新輸入。不要為了繞過 401 而刪除 Secret;沒有驗證的控制器即使只綁定區網,也不適合長期使用。

出現 bind、address already in use 或連接埠占用

Windows 上同時執行 Clash Verge Rev、其他 Clash 客戶端、開發伺服器或本機監控工具時,最容易發生連接埠衝突。你可以先關閉其他代理客戶端,再重啟 Clash Verge Rev;若仍有問題,換一個未使用的控制器連接埠,並同步更新 Web 面板設定。不要只改面板裡的連接埠,核心端與面板端必須使用同一組數值。

若控制器偶爾能連線、重啟後卻失敗,請檢查是否有自動啟動的舊程序或 Windows 工作排程。部分工具退出視窗後仍會留在系統匣,使用工作管理員確認是否存在多個相同核心程序。企業電腦還可能有端點防護軟體監控本機監聽服務;這時應查看安全軟體事件紀錄,按照公司政策建立最小範圍的允許規則,而不是長期停用防護功能。

建議的判斷方式:面板顯示 401,先查 Secret;顯示 refused,先查核心與位址;顯示 timeout,先查防火牆、面板來源與網路隔離;核心報 bind 失敗,先查連接埠占用。把不同症狀分開處理,通常比反覆重裝更快。

需要區網管理時的安全做法

有些使用者希望從同一個區域網路的另一台筆電或手機管理 Windows 上的 Clash Verge Rev。這種需求可以實現,但風險會比單機本機面板高。你需要先確認兩台裝置確實位於可信任的私人網路,並了解 Windows 網路設定檔、路由器訪客網路與防火牆規則的差異。公共 Wi-Fi、旅館網路、共享辦公室或沒有隔離的校園網路,都不適合直接暴露控制器。

若確實需要區網連線,請先使用強密鑰,再將監聽位址限制在可控範圍,並只允許指定區網來源存取控制器連接埠。Windows 防火牆規則也應限制遠端 IP 範圍與網路設定檔,不要建立「所有來源、所有網路、所有連接埠」的寬鬆規則。完成測試後,可從非管理裝置確認只有預期的 API 能力可用,並在不需要遠端控制時恢復為 127.0.0.1。

更安全的長期方案是使用具備存取控制的遠端通道,例如受信任的 VPN 或安全的 SSH 隧道,而不是直接將控制器埠映射到公網。無論採用哪一種方式,都應避免把 Secret 放進公開貼文、螢幕截圖、同步到不受控的雲端筆記,或寫入會被提交到 Git 儲存庫的腳本。API 管理紀錄與核心日誌也可能包含節點名稱、網域與連線資訊,分享前要先遮蔽敏感內容。

完成外部控制器設定後,建議做一份簡短紀錄:使用哪個控制器連接埠、目前是否只綁定本機、Secret 放在哪裡、哪些面板曾獲得授權,以及更換設定檔後是否需要重新載入。這份紀錄能讓你日後遇到「主介面正常、面板失效」時快速定位差異,也能避免為了記憶連接埠而重新使用不安全的預設值。

相較於只提供簡單節點切換的部分舊版客戶端,Clash Verge Rev 搭配 Mihomo 外部控制器能提供較完整的 API 管理、策略組同步與連線觀察;而某些輕量工具雖然介面簡單,卻可能缺少密鑰驗證、核心狀態檢視或細緻的埠設定,排錯時只能反覆重啟。若你需要在 Windows 上同時兼顧 Web 面板管理、本機安全綁定與清楚的核心日誌,Clash V.CORE 會是更容易延續本文流程的選擇,建議前往下載頁取得適合的版本。

// 編輯推薦

Clash V.CORE:更安心的控制器管理

從本機 API 到策略組操作,讓 Windows 上的代理核心更容易檢查、管理與排錯。

  • 支援本機控制器安全綁定
  • 清楚區分代理與管理連接埠
  • 方便觀察核心與連線狀態
  • 協助排查密鑰與埠衝突
  • 適合搭配 Web 面板管理
取得 Clash V.CORE →