外部控制器是什麼:先了解 Clash Verge Rev 的管理方式

Clash Verge Rev 裡,外部控制器(External Controller)是一組提供給瀏覽器、管理工具或其他本機程式使用的 HTTP API。它不是代理節點,也不是用來取代訂閱連結的功能,而是讓你透過一個管理入口讀取目前的代理狀態、查看連線、切換策略群組,或確認核心是否正常運作。對 Windows 使用者來說,當你想快速判斷「目前到底有沒有流量經過 Clash」「某個網域被分到哪個策略」「設定檔是否已成功載入」時,外部控制器會比只看主視窗上的開關更直接。

Clash Verge Rev 通常會使用 Mihomo/Clash.Meta 核心執行代理服務。圖形介面負責管理設定檔、訂閱與系統 Proxy,而外部控制器則由核心提供 API 服務。兩者的角色不同:你在介面中按下「啟用系統代理」,主要是改變 Windows 應用程式採用的代理路徑;你在瀏覽器開啟外部控制器網址,則是在查詢或管理核心目前的運作狀態。因此,即使系統代理已開啟,外部控制器仍可能尚未設定;反過來,API 可以正常開啟,也不代表所有 Windows 程式都一定會使用 Clash。

本篇以 Windows 10/11 的常見介面為基礎,說明如何找出外部控制器位址、設定 API 密碼、透過瀏覽器測試連線,並處理最常見的連接埠衝突與安全問題。不同版本的選單名稱可能略有差異,可能顯示為「外部控制器」「External Controller」「API」或「External Controller Secret」,但判斷方式是一樣的:確認 API 監聽位址、確認連接埠、確認密碼,最後再用實際請求驗證。

開始設定前:先確認核心、埠號與使用範圍

不要一開始就直接在瀏覽器輸入網址。先在 Clash Verge Rev 裡確認目前使用的核心與設定檔,能避免你修改了尚未啟用的檔案。開啟程式後,先查看目前選取的設定檔是否已經載入,再確認核心狀態不是停止、錯誤或正在重新啟動。若訂閱更新剛好失敗,介面裡可能保留舊設定;此時外部控制器即使能連線,顯示的也可能不是你以為的最新規則。

檢查項目 建議確認內容 常見誤判
核心狀態 確認 Mihomo/Clash.Meta 核心正在執行,且沒有反覆重啟 只看到客戶端視窗,就以為 API 一定已啟動
設定檔 確認修改的是目前啟用中的設定,而非下載後的草稿副本 改了 YAML,重新載入後卻發現畫面完全沒有變化
API 連接埠 記下 external-controller 使用的連接埠,例如 9090 或其他自訂值 把 mixed-port、控管 API 與 SOCKS 埠號混為一談
監聽位址 單機使用優先選 127.0.0.1 或 localhost 為了方便測試而直接開放給整個區域網路
管理密碼 使用獨立、足夠長且不重複於 Windows 帳號的密碼 留空密碼,或直接沿用訂閱服務的登入密碼

如果你的目標只是管理這台 Windows 電腦上的 Clash,通常不需要把 API 綁定到 0.0.0.0127.0.0.1:9090 代表只有本機能連線,安全邊界相對清楚;0.0.0.0:9090 則可能讓區域網路上的其他裝置也能嘗試存取。只有在你清楚知道要用另一台電腦管理,並且已經配置防火牆、網段限制與強密碼時,才應考慮區網監聽。

小提示:教學文章中的 9090 只是示例,請以你在 Clash Verge Rev 實際看到的 API 埠號為準。mixed-port 常見為 7890,但它與外部控制器不是同一項服務。

第一步:在 Clash Verge Rev 設定外部控制器

開啟 Clash Verge Rev 的設定頁面,尋找與「核心」「Mihomo」「外部控制器」或「External Controller」相關的區塊。若目前使用的是圖形介面提供的核心設定,可能可以直接在設定畫面填寫;若版本把核心參數放在 YAML 編輯器內,則要在正在使用的設定檔中檢查相應欄位。常見寫法如下:

external-controller: 127.0.0.1:9090
secret: "請替換成你的管理密碼"

external-controller 由監聽位址與連接埠組成,中間以冒號分隔。Windows 單機使用時,建議從 127.0.0.1 開始;如果只寫連接埠而沒有確認實際監聽介面,日後排錯時很容易忽略防火牆或網卡環境造成的差異。secret 是 API 驗證密碼,若設定後,瀏覽器前端或其他管理工具必須在請求中帶上相同密碼,否則通常會得到未授權或連線被拒絕的結果。

填妥後,按下儲存、套用或重新載入核心。部分版本需要完整重啟核心,甚至需要關閉並重新開啟 Clash Verge Rev 才會重新監聽新的埠號。不要只看設定檔文字已經改變,就假設服務已經套用;稍後還要用 Windows 的實際連線測試確認。若你使用遠端訂閱,訂閱更新可能覆蓋部分欄位,因此建議在更新後再次檢查 external-controller 與 secret 是否仍然存在。

設定檔中也可能同時出現 allow-lanbind-address 或 DNS 相關欄位。它們分別影響代理服務是否接受區網連線、服務綁定的網卡,以及網域解析方式,不應在沒有需求時一起修改。外部控制器的排錯重點是先讓 API 在本機穩定工作,再視需要處理區網共享或其他進階功能。

第二步:用瀏覽器與 PowerShell 測試 API

設定完成後,先在同一台 Windows 電腦開啟瀏覽器,輸入 http://127.0.0.1:9090/version。如果埠號不是 9090,請換成實際數值。成功時通常會看到一段 JSON,內容包含核心版本或相關資訊;這代表瀏覽器至少能連到控制器服務。若頁面顯示無法連線,先不要急著更換節點,因為此時問題多半發生在核心沒有啟動、位址錯誤、埠號被占用,或新設定尚未套用。

若已設定 secret,直接開啟版本端點可能會收到未授權訊息,這不一定代表 API 壞掉,而是代表驗證機制正在生效。瀏覽器網址列不適合直接放入密碼,因為網址可能被歷史紀錄、同步功能或截圖保留。比較穩妥的方式是使用支援 Clash API 的管理前端,或在 PowerShell 中以標頭傳送密碼。

$headers = @{ Authorization = "Bearer YOUR_SECRET" }
Invoke-RestMethod `
  -Uri "http://127.0.0.1:9090/version" `
  -Headers $headers

YOUR_SECRET 替換成實際密碼後,如果回傳版本資訊,就表示位址、埠號、核心與密碼四項已經對齊。你也可以測試目前設定或連線端點,但請先使用唯讀查詢,避免剛開始排錯時誤切換策略或中斷現有連線。若 PowerShell 顯示拒絕連線,請在 Clash Verge Rev 的日誌或核心狀態頁確認服務是否真的已啟動;若顯示 401 或 403,則優先檢查 Bearer 格式、密碼是否有多餘空白,以及是否把訂閱密碼誤當成 API secret。

測試成功後,建議記錄三項資訊:實際 API 位址、使用中的核心版本,以及最後一次成功查詢時間。日後遇到「代理還能上網,但外部控制器打不開」的情況,你可以快速比較是哪一項發生變化,而不必重新猜測整套設定。

第三步:處理連接埠衝突與外部控制器安全

遇到埠號衝突時的判斷順序

Windows 上最常見的錯誤之一,是 9090 已被其他 Clash 實例、開發工具、Docker 服務或本機管理程式占用。此時 Clash 核心可能無法啟動控制器,甚至在介面裡只顯示模糊的啟動錯誤。你可以用 PowerShell 查詢埠號:

Get-NetTCPConnection -LocalPort 9090 -ErrorAction SilentlyContinue
netstat -ano | findstr :9090

如果看到正在監聽的程序,可以再用 Get-Process -Id 程序ID 查出程序名稱。不要為了讓 Clash 立即啟動就直接結束未知程序;先確認它是否屬於另一套代理、公司安全軟體或你正在使用的開發服務。較安全的處理方式是關閉不需要的 Clash 實例,或把 Clash Verge Rev 的控制器改成另一個未被占用的本機埠號,例如 9091,然後重新載入核心並更新管理工具中的連線位址。

請分清楚「埠號被占用」和「防火牆阻擋」:前者通常在核心啟動時就報錯,後者則可能在本機可連線、其他裝置無法連線。如果 127.0.0.1 測試成功,但你從另一台電腦測試失敗,應回頭檢查監聽位址、Windows Defender 防火牆規則與網路設定檔,而不是反覆修改密碼。

不要把控制器當成普通網頁服務

外部控制器具備查詢狀態與操作代理的權限,洩漏後可能讓他人查看你的連線資訊、切換策略,甚至影響整個代理服務。因此,單機使用時應優先綁定 127.0.0.1,設定不容易猜測的 secret,並避免將含有密碼的設定檔上傳到公開儲存庫、論壇或聊天群組。若你曾把 secret 貼到公開位置,不能只刪除訊息了事,應立即更換新的密碼並重新啟動核心。

若確實需要從區域網路管理,請先確認網路是家中可信任的私人網路,而不是機場、飯店或校園公共 Wi‑Fi;接著限制允許來源的 IP 或子網,並在 Windows 防火牆中建立最小範圍的入站規則。不要為了省事直接允許所有來源,也不要把控制器埠號映射到路由器的公網端口。外部控制器本身通常不是為了直接暴露在網際網路上設計,遠端管理應使用受控的 VPN 或其他具備身分驗證與加密的管理通道。

日常使用與排錯清單:從現象找到真正原因

完成設定後,外部控制器最實用的用途不是一直開著管理頁面,而是在問題出現時提供可驗證的證據。當某個 Windows 程式無法連線,先確認 Clash Verge Rev 的核心狀態,再查看連線列表是否出現該程序或目的地。若完全沒有紀錄,可能是程式沒有使用系統 Proxy、流量被其他 VPN 接管,或需要 TUN 才能捕捉;若有紀錄但策略顯示 DIRECT,則應檢查規則順序、網域匹配與設定檔是否為當前啟用版本。

  • API 無法連線:確認核心是否運作、位址是否為 127.0.0.1、埠號是否輸入正確,並檢查是否有其他程序占用該埠。
  • API 回傳未授權:確認 Authorization 標頭格式為 Bearer 密碼,不要把引號、空格或訂閱 Token 一起誤貼。
  • 瀏覽器能用、桌面程式不能用:檢查 Windows 系統 Proxy 是否啟用,並確認該程式是否自行設定了直連或獨立代理。
  • 連線列表沒有目標請求:暫時關閉其他 VPN 或網路攔截工具,再用系統 Proxy 與 TUN 分別做對照測試。
  • 切換節點後仍然無效:查看實際命中的策略群組與 DNS 解析結果,不要只依賴節點延遲數字判斷可用性。
  • 重開機後設定失效:確認 Clash Verge Rev 是否隨 Windows 啟動、核心是否成功載入,以及設定檔是否由訂閱更新流程重新生成。

排錯時最好一次只改一個變數。例如先固定節點,只測試 API;再固定 API,測試系統 Proxy;最後才比較規則模式與 TUN 模式。若同時更換訂閱、核心、埠號與防火牆規則,即使問題消失,也很難知道真正有效的是哪個改動。對需要長期維護的電腦,建議保留一份不含 secret 的設定備份,並在每次更新後記下版本與變更內容。

與只提供簡單開關的部分代理工具相比,Clash Verge Rev 的外部控制器雖然需要多設定一個 API 位址與密碼,卻能把「是否啟動」「實際連線」「規則命中」「策略切換」分開觀察;遇到 Windows 程式忽然連不上時,不必只靠猜測或反覆重開。相較於介面簡化但缺少連線細節的工具,Clash Verge Rev 在設定檔管理、Mihomo 核心相容性與本機診斷上更容易建立可重現的排錯流程;如果你正在尋找一個能在 Windows 上細緻管理代理狀態、又保留本機安全控制權的用戶端,可以先從官方下載頁取得適合的平台版本。

立即免費下載 Clash,開啟流暢上網新體驗 →