外部控制器是什麼?先理解它能做什麼
Clash Verge Rev 的「外部控制器」(External Controller)是一個提供給管理面板、腳本或其他本機工具使用的控制介面。它通常透過本機 HTTP API 接收指令,讓你查詢目前的代理、切換策略組、查看連線紀錄,或交給相容的 Web 管理面板操作。這個功能和「系統代理」不是同一件事:系統代理決定 Windows 應用程式把流量送到哪裡,外部控制器則負責讓其他工具管理正在運作的 Clash 核心。
很多 Windows 新手第一次設定時,會在錯誤的頁面尋找「外部控制器」欄位,或只填入一個連接埠卻沒有設定密鑰,最後在瀏覽器看到 401 Unauthorized、Failed to fetch 或完全無法連線。另一個常見誤解是把外部控制器的連接埠當成代理連接埠使用。假設你的 mixed-port 是 7890,外部控制器則可能使用 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 客戶端、除錯工具或開發伺服器,都可能預先使用 9090、9097 等連接埠。如果你在設定頁保存後看到 bind、address already in use 或 port occupied 類似訊息,通常不是密鑰格式錯誤,而是該連接埠已經被其他程序攔截。可以先關閉其他代理客戶端,再重新啟動 Clash Verge Rev;需要進一步確認時,可在 PowerShell 執行下列指令查看占用者:
netstat -ano | findstr :9090
若輸出結果包含正在監聽的 PID,再用工作管理員的「詳細資料」分頁對照程序。不要為了排除衝突而直接終止不熟悉的系統服務;如果該連接埠由公司安全軟體、VPN 或群組原則管理,應先確認環境規範。外部控制器通常只需要讓本機管理工具存取,因此位址優先使用 127.0.0.1 或 localhost,不要在沒有防火牆與權限規劃的情況下綁定到所有網路介面。
密鑰方面,請使用一組不容易被猜到的隨機字串,避免使用 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,仍然建議保留密鑰,不要因為「只在自己電腦使用」就留空。空密鑰有時可以讓面板快速連線,卻同時降低保護門檻;惡意瀏覽器擴充功能、被入侵的本機程式或區域網路掃描,都可能利用沒有驗證的管理介面。對一般使用者而言,「回環位址加密鑰」是最容易維持、也最合理的安全基線。
三個最常見的設定錯誤
- 把代理埠當成控制器埠:瀏覽器能透過
7890上網,只代表代理入口正常,不代表9090的管理 API 已經啟用。 - 位址填成節點或訂閱網址:外部控制器指向本機核心,不應填入遠端節點的主機名。
- 密鑰前後多出空格:瀏覽器面板會把它視為不同密鑰,結果看起來像 API 失效,實際只是字串不一致。
用瀏覽器管理面板驗證是否成功
設定並重載核心後,開啟支援 Mihomo API 的管理面板。若 Clash Verge Rev 本身提供「Dashboard」「管理面板」或「外部控制」入口,可以優先使用內建連結;若使用獨立的 Web 面板,請先確認它是可信來源,再在面板要求的 API 位址欄填入 http://127.0.0.1:9090,於密鑰欄填入剛才設定的 secret。面板有時會把位址稱為「Backend」「控制器」或「API Base URL」,本質上都是讓前端知道要向哪個控制器發送請求。
成功連線後,通常可以看到核心版本、目前模式、代理組與連線列表。先不要急著切換所有策略,建議依序確認三件事:第一,面板能讀到核心狀態;第二,策略組清單可以載入;第三,切換一個非關鍵的策略後,Clash Verge Rev 的主介面與面板顯示一致。這樣能確認你連到的是目前正在執行的核心,而不是另一個舊客戶端或殘留服務。
若瀏覽器顯示 401 或 Unauthorized,先重新輸入密鑰,並檢查是否貼入多餘空格。若顯示 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 入口
- 適合進階規則與日常切換