Skip to content

Clash API 与外部控制完全指南:RESTful 接口、状态监控与动态切线实战 ​

直接答案:Clash 的 external-controller(外部控制接口)是一个遵循标准 RESTful 规范的本地 HTTP/WebSocket 服务。所有图形化客户端(Clash Verge、Yacd、MetaCubeX 面板)本质上都是通过该 API 与内核通信。通过直接调用该 API,开发者可以实现编程级节点切换、实时流量与连接审计、动态重载配置以及自定义系统监控大屏。


一、Clash 核心 RESTful API 路由清单 ​

HTTP 方法API 路由端点功能说明核心返回数据
GET/version查询当前运行的内核版本{"version": "Mihomo Meta v1.18.0"}
GET/traffic实时流量下发 (WebSocket / SSE){"up": 1024, "down": 40960}
GET/proxies获取所有策略组与节点状态及延迟全量 Proxies 状态树
PUT/proxies/:group手动切换某个策略组的当前活动节点{"name": "🇭🇰 香港专线"}
GET/connections查询当前所有活跃的 TCP/UDP 连接源IP、目标Host、已传字节、耗时
DELETE/connections强制关闭所有正在活动的连接 (切断网络)状态响应 204 No Content
PUT/configs动态热重载新配置文件{"path": "/path/to/config.yaml"}

二、配置与鉴权基础 YAML ​

yaml
# 开启外部控制与 Web 仪表盘
external-controller: 127.0.0.1:9090
secret: "MyStrongApiSecret"
external-ui: ui  # 本地解压的 Yacd 或 yacd-meta 路径

三、延伸阅读与相关方案 ​