Mihomo Party 外部控制器怎麼設定?Windows 安全開啟教學

本教學專門處理 Mihomo Party Windows 版的外部控制器設定。跟著步驟完成 API 端點與驗證密鑰配置,再用 Web 面板確認連線,適合第一次接觸 Clash 控制介面的使用者。

外部控制器是什麼:先分清代理埠與 API 埠

Mihomo Party 的「外部控制器」不是給瀏覽器或其他應用程式使用的代理埠,而是 mihomo 核心提供的管理 API。它讓 Web 面板、桌面前端或其他管理工具讀取目前的節點、策略組、連線記錄與流量統計,也能透過 API 切換代理組、更新設定檔與中斷連線。

Windows 上最容易混淆的是 mixed-portexternal-controller。前者通常是 78907897,給瀏覽器、命令列工具和支援 HTTP/SOCKS 的應用程式轉發流量;後者通常使用 9090 或其他管理埠,只處理控制請求。把代理埠填進 Web 面板,或把 API 埠填進瀏覽器代理設定,都會出現「看似已開啟,實際無法使用」的錯誤。

項目用途常見值是否需要對外開放
mixed-portHTTP 與 SOCKS 代理流量7890 / 7897不需要
external-controller控制 API 與 Web 面板連線127.0.0.1:9090通常不需要
secretAPI 驗證密鑰自訂長字串不可公開
external-ui指定內建 Web 面板檔案位置ui僅本機使用即可

先記住安全預設

Windows 單機使用時,外部控制器優先綁定 127.0.0.1,不要直接填 0.0.0.0。前者只允許本機存取,後者會讓區域網路甚至其他可達網路上的裝置嘗試連線,一旦密鑰外洩,對方可能讀取或修改代理狀態。

設定前檢查:版本、核心與目前設定

不同版本的 Mihomo Party 介面名稱可能略有差異,例如「外部控制器」「External Controller」「核心設定」或「API 設定」,但真正生效的是 mihomo 設定檔中的 external-controllersecret 欄位。先確認用戶端使用的是 mihomo 核心,再進行設定會比較容易。

  • 確認 Windows 版本。建議使用 Windows 10 或以上,並把 Mihomo Party 更新到仍在使用的版本。舊版介面可能沒有內建 Web 面板,但仍可提供 API。
  • 確認核心狀態。在「設定」或「核心」頁面查看目前核心名稱,應顯示 mihomo 或 Clash Meta 類型。原版 Clash 對部分新欄位的支援不完整。
  • 確認設定檔可載入。先讓訂閱或本地設定檔正常啟用,避免把 API 問題和 YAML 語法錯誤混在一起排查。
  • 保留未使用的管理埠。9090 已被其他程式使用,可改成 909119090,但 Web 面板和測試網址必須同步修改。

外部控制器只負責「控制核心」,不會自動建立節點,也不會取代訂閱設定。即使 API 已成功開啟,沒有有效設定檔、代理組或可用節點時,面板仍可能只顯示空清單,這不代表控制器設定失敗。

在 Mihomo Party 開啟 API:端點與密鑰設定

打開 Mihomo Party,進入「設定」頁面,尋找與核心、進階或外部控制器相關的區塊。若介面提供表單欄位,建議依下表填寫。位址欄位只填監聽位址與埠,不要把 http:// 一併填入。

欄位建議填法注意事項
外部控制器位址127.0.0.1:9090只允許本機 Web 面板連線
驗證密鑰MP-Win-Api-Key-2026-Example-9x7Q請自行改成更長且不重複的字串
外部 UIui 或程式提供的 UI 路徑未附帶面板時可留空,改用獨立面板
CORS 跨來源僅允許本機來源不要為了省事放行所有來源

如果 Mihomo Party 允許直接編輯 YAML,可參考以下最小設定。這是示意配置,不要整段覆蓋現有訂閱設定,只需把對應欄位合併到目前設定檔中:

external-controller: 127.0.0.1:9090
secret: "MP-Win-Api-Key-2026-Example-9x7Q"
external-ui: ui
external-controller-cors:
  allow-origins:
    - http://127.0.0.1
    - http://localhost

secret 會以 Bearer Token 形式送往控制 API。範例中的密鑰只是明顯的假值,實際使用時請改成至少 24 個字元的隨機字串,並避免使用訂閱連結、Windows 登入密碼或其他服務共用的密碼。編輯完成後按「儲存」或「套用」,必要時重新啟動核心。

不要把控制器綁到公用位址

external-controller: 0.0.0.0:9090 會在所有網卡監聽。除非明確需要讓區域網路內其他裝置管理這台 Windows 電腦,否則不要這樣設定。即使設定了密鑰,管理 API 仍可能因弱密鑰、錯誤的 CORS 或防火牆規則而增加暴露面。

動手測試:用 Web 面板確認連線

設定套用後,不要只看 Mihomo Party 的狀態圖示,應該用 API 回應和 Web 面板各驗證一次。以下步驟全部在 Windows 本機執行,不需要把控制器公開到網際網路。

  1. 確認 Mihomo Party 已啟動,目前設定檔已成功載入,並記下外部控制器埠,例如 9090
  2. 在瀏覽器網址列輸入 http://127.0.0.1:9090/version。若 API 正常,通常會回傳包含版本資訊的 JSON;若顯示拒絕連線,先檢查核心是否真的啟動。
  3. 打開 Mihomo Party 內建的 Web 面板入口,或在面板設定中填入 API 位址 http://127.0.0.1:9090。位址結尾不要重複加上 /ui,除非該面板明確要求完整 UI 路徑。
  4. 在驗證欄位填入同一組 secret,儲存後重新連線。密鑰前後不要多空格,也不要把引號一起複製進輸入框。
  5. 進入「代理」或「策略組」頁面,切換一次測試用策略,再回到 Mihomo Party 觀察目前選擇是否同步。這能確認不只是 API 可讀,也具備寫入控制能力。
  6. 最後查看「連線」或「流量」頁面,開啟一個明顯使用代理的測試請求,確認面板能看到連線項目與流量變化。

也可以使用 PowerShell 檢查端口是否正在監聽:

Test-NetConnection 127.0.0.1 -Port 9090

$headers = @{ Authorization = "Bearer MP-Win-Api-Key-2026-Example-9x7Q" }
Invoke-RestMethod `
  -Uri "http://127.0.0.1:9090/version" `
  -Headers $headers

部分 mihomo 版本對 /version 的驗證要求可能不同:有的端點允許直接讀取版本資訊,有的環境則要求帶上 Authorization 標頭。若瀏覽器能開啟網址,但面板提示未授權,通常不是端口問題,而是面板沒有送出正確的密鑰。

Windows 安全加固:防火牆、權限與備份

本機綁定 127.0.0.1 時,Windows 防火牆通常不需要為外部控制器新增入站放行規則。若曾經為 9090 建立「允許所有連線」規則,建議在 Windows Defender 防火牆的進階設定中檢查並移除不再需要的規則。

  • 不要公開 API 埠。外部控制器不是一般代理入口,不應透過路由器埠轉發,也不要把網址貼到群組或公開貼文。
  • 限制 CORS 來源。只保留 http://127.0.0.1http://localhost 等實際使用的來源。不要長期使用萬用來源。
  • 保護設定檔。包含 secret 的 YAML 檔案不要放進共用資料夾,也不要上傳到公開儲存空間。訂閱連結和 API 密鑰都屬於控制憑證。
  • 使用一般權限操作。平時不需要用系統管理員身分啟動 Mihomo Party。只有安裝服務模式、啟用 TUN 或修改需要提升權限的元件時,才依 Windows 提示授權。
  • 更換密鑰後重新連線。只要懷疑密鑰曾經外流,立即修改 secret,重新載入核心,並在所有 Web 面板中刪除舊的 API 設定。

如果確實需要讓同一區域網路內的另一台電腦管理 Mihomo Party,不要直接照抄 0.0.0.0 的公開設定。應先確認區域網路可信,設定長密鑰,在防火牆中只允許指定內網位址,並測試完成後恢復 127.0.0.1。多數 Windows 單機情境不需要這項功能。

連不上控制器時的排查順序

API 連線錯誤通常可依「核心、埠、密鑰、面板」四層快速定位。不要一開始就反覆更換代理節點,因為外部控制器使用的是本機 HTTP 連線,與目前節點是否可用是兩件事。

現象可能原因處理方法
127.0.0.1:9090 拒絕連線核心未啟動、設定未套用或埠被改動查看核心日誌,確認實際 external-controller 值
顯示 401 Unauthorized密鑰錯誤或面板未送出 Bearer Token重新複製 secret,檢查面板驗證欄位與空格
顯示 404 Not Found把 API 路徑當成 UI 路徑,或面板路徑不完整先測試 /version,再依面板說明填 UI 位址
面板能開但資料不更新WebSocket 位址、CORS 或核心重載異常重新連線,檢查瀏覽器開發者工具與核心日誌
埠已被使用其他程式佔用 9090改用 9091 等未使用埠,並同步修改面板設定

在 PowerShell 中可用以下指令查看 9090 是否被其他程序佔用:

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

若核心日誌回報 YAML 解析錯誤,先撤銷最近加入的欄位,確保縮排使用空格而非 Tab,字串密鑰放在引號內。若設定檔由訂閱自動產生,手動修改可能在更新訂閱時被覆蓋,此時應優先使用 Mihomo Party 的全域核心設定或覆寫功能,並在每次更新後重新確認外部控制器值。

常見問題

外部控制器開啟後,代理速度會變慢嗎?

正常不會。控制器只提供管理 API,不會替每一筆代理流量額外繞路。只有開啟連線記錄、流量統計或高頻率自動輪詢時,才可能增加少量本機 CPU 與記憶體使用量,一般 Windows 使用情境幾乎感覺不到。

可以把 external-controller 填成 mixed-port 嗎?

不建議,也通常無法正常使用。mixed-port 處理 HTTP/SOCKS 代理請求,external-controller 處理 REST API 與 WebSocket 控制請求。兩者職責不同,應使用兩個未衝突的埠。

Web 面板一直要求輸入密鑰,該怎麼辦?

先確認面板 API 位址是 http://127.0.0.1:9090,再確認密鑰與 Mihomo Party 中的 secret 完全一致。若位址與密鑰都正確,重新載入核心並清除面板儲存的舊連線資料,再重新建立連線。

同一個區域網路的手機可以管理 Windows 上的 Mihomo Party 嗎?

技術上可以,但需要把監聽位址改成可被區域網路存取的位址,並設定防火牆白名單與強密鑰。這會增加暴露面,不建議為了測試長期開啟。單機使用時維持 127.0.0.1 最安全。

完成設定後的下一步

外部控制器確認可用後,再進一步檢查規則模式、DNS 接管與 TUN 權限。先用本機 Web 面板驗證核心狀態,再逐項調整代理設定,問題會比一次開啟所有增強功能更容易定位。

下載 Clash 用戶端

規則分流的前提是用戶端先接管流量。前往下載中心依平台選擇用戶端,再回到教學文章完成系統代理或 TUN 接管設定。

下載Clash