外部控制器是什麼?先理解它能做什麼

Clash Verge Rev 的「外部控制器」(External Controller)是一個提供給管理面板、腳本或其他本機工具使用的控制介面。它通常透過本機 HTTP API 接收指令,讓你查詢目前的代理、切換策略組、查看連線紀錄,或交給相容的 Web 管理面板操作。這個功能和「系統代理」不是同一件事:系統代理決定 Windows 應用程式把流量送到哪裡,外部控制器則負責讓其他工具管理正在運作的 Clash 核心。

很多 Windows 新手第一次設定時,會在錯誤的頁面尋找「外部控制器」欄位,或只填入一個連接埠卻沒有設定密鑰,最後在瀏覽器看到 401 UnauthorizedFailed to fetch 或完全無法連線。另一個常見誤解是把外部控制器的連接埠當成代理連接埠使用。假設你的 mixed-port7890,外部控制器則可能使用 9090;兩者用途不同,不能因為其中一個可用,就推論另一個也已經設定完成。

本文以 Windows 10/Windows 11 上的 Clash Verge Rev 為主,說明如何找到正確的設定入口、配置控制器位址與密鑰,再用瀏覽器面板驗證登入。不同版本的介面文字可能略有差異,例如「外部控制器」「External Controller」「API 位址」或「控制器位址」可能出現在不同分組,但判斷原則不變:你要設定的是 Mihomo 核心使用的管理 API,而不是訂閱網址、代理伺服器位址或本機混合連接埠。

先記住三個概念:mixed-port 是給應用程式使用的代理入口;外部控制器連接埠是給管理工具使用的 API 入口;密鑰則是防止其他本機程式任意控制 Clash 的驗證憑證。

設定前的 Windows 準備與安全檢查

開始之前,先確認 Clash Verge Rev 已經正常啟動,而且目前確實有一個正在運作的設定檔。打開主視窗或系統匣圖示,檢查核心狀態是否顯示為執行中,並確認配置檔沒有 YAML 解析錯誤。若核心根本沒有啟動,控制器設定即使填寫正確,也不會有程式在指定連接埠上監聽。建議先完成訂閱匯入與基本連線,再處理外部控制器,這樣發生問題時比較容易區分是核心故障還是 API 設定錯誤。

接著檢查連接埠是否被其他程式占用。Windows 上常見的代理程式、舊版 Clash 客戶端、除錯工具或開發伺服器,都可能預先使用 90909097 等連接埠。如果你在設定頁保存後看到 bind、address already in use 或 port occupied 類似訊息,通常不是密鑰格式錯誤,而是該連接埠已經被其他程序攔截。可以先關閉其他代理客戶端,再重新啟動 Clash Verge Rev;需要進一步確認時,可在 PowerShell 執行下列指令查看占用者:

netstat -ano | findstr :9090

若輸出結果包含正在監聽的 PID,再用工作管理員的「詳細資料」分頁對照程序。不要為了排除衝突而直接終止不熟悉的系統服務;如果該連接埠由公司安全軟體、VPN 或群組原則管理,應先確認環境規範。外部控制器通常只需要讓本機管理工具存取,因此位址優先使用 127.0.0.1localhost,不要在沒有防火牆與權限規劃的情況下綁定到所有網路介面。

密鑰方面,請使用一組不容易被猜到的隨機字串,避免使用 Windows 使用者名稱、生日、裝置名稱或簡單的 123456。這個密鑰雖然常在本機使用,但一旦管理 API 被暴露到區域網路,持有密鑰的人可能可以切換代理、查看連線資料,甚至改變核心行為。請把密鑰當作敏感設定保存,不要貼到公開截圖、論壇文章或未加密的工作群組。

安全提醒:除非你清楚了解防火牆、區域網路與驗證風險,否則不要把外部控制器位址改成 0.0.0.0 或區域網路 IP。Windows 防火牆放行管理 API 後,風險不只來自本機,也可能來自同一個 Wi-Fi 或公司網段的其他裝置。

在 Clash Verge Rev 找到正確設定頁面

啟動 Clash Verge Rev 後,先進入左側的設定區域。不同發行版本與語言包可能把入口放在「設定」「Settings」「核心設定」或「系統設定」之下;你要找的是與 Mihomo 核心、API、控制器或外部管理相關的欄位,而不是僅控制 Windows 系統代理的開關。若畫面同時有「代理連接埠」「混合連接埠」「Socks 連接埠」與「外部控制器」,請依欄位名稱逐一辨識。

在較新的 Verge Rev 介面中,外部控制器可能會被放在核心設定或進階設定區域。先查看是否有「External Controller」或「External Controller Secret」兩個欄位;前者通常接受 127.0.0.1:9090 這類位址,後者則是控制器密鑰。有些版本會把位址與連接埠分開,這時位址填入 127.0.0.1,連接埠填入 9090,不要把整串 URL 貼進只接受數字的欄位。

設定時建議使用一組容易核對、但不與代理連接埠重複的值。例如代理仍使用 7890,外部控制器使用 9090,密鑰則填入自訂的長字串。若介面提供「啟用外部控制器」勾選項,必須先啟用再保存;如果只有文字欄位,保存後仍應重新查看核心日誌,確認它已開始監聽。不要只看設定頁出現「已保存」,因為有些殼層能保存文字,卻會在核心重載時才顯示真正的解析錯誤。

設定項目 建議值或格式 用途與注意事項
控制器位址 127.0.0.1 限制為本機存取,適合一般 Windows 桌面使用
控制器連接埠 9090 可自訂,但不能與其他程式或代理連接埠衝突
外部控制器密鑰 長度足夠的隨機字串 用於管理面板驗證,不應公開或與其他帳戶共用
代理混合連接埠 例如 7890 提供瀏覽器與應用程式代理流量,不是管理 API

保存後若程式要求重新載入核心,請允許它完成重載,再觀察日誌。理想狀態會看到類似「external controller listening」或「RESTful API listening」的訊息;實際文字依核心版本而異。若出現 YAML 格式錯誤、密鑰欄位不被接受或核心啟動失敗,先恢復到上一份可用配置,再逐項加入設定。一次修改太多欄位,會讓你難以知道真正造成問題的地方。

密鑰、位址與連接埠的正確填法

外部控制器常見的完整形式是「位址加連接埠」,例如 127.0.0.1:9090。這並不是代理伺服器地址,也不是訂閱 URL,因此不要填入機場網域、節點地址或帶有 https:// 的遠端連結。控制器 API 是否使用 HTTPS,取決於核心與前端的支援方式;一般本機安裝先採用 HTTP 回環位址即可,重點是不要讓它無意間對外暴露。

密鑰必須在 Clash Verge Rev 核心設定與管理面板中保持完全一致,包含大小寫、數字、連字號與前後是否多出空格。從記事本複製密鑰時,特別留意不要把換行一併貼入。若面板輸入框使用密碼遮罩,可先在安全的文字編輯器中確認內容,再貼到欄位。修改密鑰後,已經開啟的管理面板可能會立即失去授權,這是正常現象;關閉舊分頁並用新密鑰重新登入即可。

如果你只想讓某個本機工具讀取 API,仍然建議保留密鑰,不要因為「只在自己電腦使用」就留空。空密鑰有時可以讓面板快速連線,卻同時降低保護門檻;惡意瀏覽器擴充功能、被入侵的本機程式或區域網路掃描,都可能利用沒有驗證的管理介面。對一般使用者而言,「回環位址加密鑰」是最容易維持、也最合理的安全基線。

三個最常見的設定錯誤

用瀏覽器管理面板驗證是否成功

設定並重載核心後,開啟支援 Mihomo API 的管理面板。若 Clash Verge Rev 本身提供「Dashboard」「管理面板」或「外部控制」入口,可以優先使用內建連結;若使用獨立的 Web 面板,請先確認它是可信來源,再在面板要求的 API 位址欄填入 http://127.0.0.1:9090,於密鑰欄填入剛才設定的 secret。面板有時會把位址稱為「Backend」「控制器」或「API Base URL」,本質上都是讓前端知道要向哪個控制器發送請求。

成功連線後,通常可以看到核心版本、目前模式、代理組與連線列表。先不要急著切換所有策略,建議依序確認三件事:第一,面板能讀到核心狀態;第二,策略組清單可以載入;第三,切換一個非關鍵的策略後,Clash Verge Rev 的主介面與面板顯示一致。這樣能確認你連到的是目前正在執行的核心,而不是另一個舊客戶端或殘留服務。

若瀏覽器顯示 401Unauthorized,先重新輸入密鑰,並檢查是否貼入多餘空格。若顯示 ERR_CONNECTION_REFUSED,代表指定位址沒有程式監聽,應回到核心狀態、連接埠與日誌檢查。若顯示跨來源請求被拒絕,則可能是面板來源不在核心允許的外部控制器設定中;這時不要直接關閉所有安全限制,應改用內建面板或依該面板文件設定允許來源。

瀏覽器現象 較可能的原因 排查順序
401 Unauthorized 密鑰不一致或欄位有空格 重新複製密鑰、保存核心、重新登入
Connection refused 核心未啟動、埠號錯誤或埠被占用 檢查核心日誌、監聽狀態與 Windows 埠占用
只載入空白頁 面板版本不相容或 API 位址填寫錯誤 改用相容面板並核對 API Base URL
切換後狀態不一致 連到另一個核心或設定尚未重載 關閉其他 Clash 客戶端,再重啟 Verge Rev

外部控制器無法連線時的完整排查流程

排查時不要一開始就更換大量設定。先確認 Clash Verge Rev 是否仍在執行,接著確認目前配置檔是否為啟用中的那一份,再核對控制器位址與連接埠。若你曾安裝 Clash for Windows、Mihomo Party 或其他代理客戶端,請暫時關閉它們,避免不同核心使用同一組連接埠。Windows 系統匣內可能同時存在多個圖示,僅關閉主視窗不一定代表背景核心已經停止。

第二步是查看核心日誌與 Windows 工作管理員。若日誌明確顯示無法 bind,先換一個未被占用的控制器連接埠,例如從 9090 改成 9097,保存後完整重載核心,再同步修改瀏覽器面板位址。若日誌顯示認證失敗,則集中檢查密鑰,不要反覆修改代理模式。外部控制器和規則模式、節點延遲、DNS 分流是不同層次的問題,混在一起調整只會增加變數。

第三步是從本機測試 API 是否有回應。你可以在瀏覽器開啟控制器的基本路徑,或使用 PowerShell 發送帶有驗證標頭的請求;實際 API 路徑會因核心與面板而不同,請以相容面板文件為準。測試時先確定 TCP 連線可達,再處理 HTTP 狀態碼,最後才判斷面板是否支援目前 API。這個順序很重要:如果連接埠本身沒有回應,換面板不會解決問題;如果 API 能回應但面板空白,才需要考慮版本相容性或跨來源設定。

最後,確認 Clash Verge Rev、Mihomo 核心與管理面板的版本彼此相容。部分舊面板依賴已變更的 API 欄位,可能出現「能連線但資料不完整」的情況;反過來,過舊核心也可能不支援新面板所使用的端點。更新前先備份設定檔與密鑰,並一次只更新一個元件,方便在行為改變時回溯。若問題只在公司網路或特定安全軟體環境發生,還要檢查防火牆、端點防護與群組原則是否攔截本機 WebSocket 或回環連線。

相較於只提供基本系統代理開關的輕量客戶端,Clash for Windows 的舊版本在外部控制器與核心相容性上較容易遇到停止維護、介面不再更新或 API 支援落差;單純的瀏覽器代理擴充功能則通常無法查看完整連線、切換 Mihomo 策略組。Clash V.CORE 更適合需要在 Windows 上集中管理代理、保留控制器密鑰、檢查核心狀態與使用管理面板的情境;如果你希望把本篇的設定流程延伸到穩定的日常使用,現在就可以前往下載並選擇合適的 Windows 版本。

// 編輯推薦

Clash V.CORE — 更清楚地管理 Windows 代理

從外部控制器、核心狀態到策略切換,將常用的 Clash 管理工作集中在穩定而清晰的桌面流程中。

  • 支援 Windows 桌面代理管理
  • 方便核對核心與連接埠狀態
  • 可搭配外部控制器與管理面板
  • 清楚區分代理入口與 API 入口
  • 適合進階規則與日常切換
取得 Clash V.CORE →