Clash 核心自帶一套 RESTful API(預設監聽 127.0.0.1:9090),Clash for Windows 的圖形介面本質上也是這套 API 的一個用戶端。理解它之後,你可以使用第三方網頁面板,甚至寫指令碼自動化控制 Clash。

確認 API 可用

curl http://127.0.0.1:9090/version

返回類似 {"premium":true,"version":"2023.08.17"} 即為正常。

合作推薦 訂閱連結從哪來? 本站合作機場註冊即送 1GB 香港高速體驗流量,可直接一鍵匯入。 取得高速節點

常用端點一覽

端點作用
GET /proxies列出所有代理組與節點及其目前選擇。
PUT /proxies/:name切換某個 select 組的選中節點。
GET /connections獲取即時連線列表(Connections 頁面的資料來源)。
PATCH /configs執行時修改模式、連接埠等,如 {"mode":"Global"}
GET /traffic即時上下行速率流(長連線)。

使用網頁面板

常見的開源面板(如 yacd、clash-dashboard)都是純靜態頁面,開啟後填入 API 位址 http://127.0.0.1:9090 即可使用,功能與用戶端介面大同小異,但適合遠端管理另一臺機器上的 Clash(把 API 位址換成那臺機器的區域網 IP)。

為 API 加金鑰

如果把 API 暴露給區域網(external-controller: 0.0.0.0:9090),務必設定金鑰。透過 Mixin 注入:

mixin:
  external-controller: 0.0.0.0:9090
  secret: "a-long-random-string"

之後所有請求需攜帶 Authorization: Bearer a-long-random-string 頭。

安全提醒:不設金鑰就把 9090 連接埠暴露到區域網/公網,等於任何人都能改你的代理設定、看你的連線記錄。僅本機使用時保持預設 127.0.0.1 監聽即可。

用 API 做定時任務、自動切換節點的完整例子見外部控制 API 自動化實戰