Clash Verge 的界面本质上是个「遥控器」——真正干活的 Mihomo 内核暴露了一套 HTTP API,界面上每一次点击都对应一个 API 调用。这套 API 你自己也能用:写脚本自动切节点、接入 Stream Deck、挂第三方面板,都靠它。
确认 API 已开启
Clash Verge 默认开启外部控制,地址一般是 127.0.0.1:9097。「设置」页面的 Clash 内核区域能看到「外部控制」的端口和密钥(secret)。验证一下:
curl http://127.0.0.1:9097/version -H "Authorization: Bearer 你的密钥"
返回一段带版本号的 JSON 就是通的。
密钥务必保留。空密钥 + 监听 0.0.0.0 的组合等于把内核控制权暴露给局域网甚至公网——恶意网页可以借浏览器发请求改你的代理配置。
最常用的几个接口
| 接口 | 方法 | 用途 |
|---|---|---|
/proxies | GET | 列出全部节点与分组及当前选择 |
/proxies/分组名 | PUT | 切换该分组选中的节点 |
/configs | PATCH | 改运行配置,如切换模式 |
/connections | GET/DELETE | 查看或断开当前连接 |
/proxies/节点名/delay | GET | 对单个节点测延迟 |
示例:一行命令切换节点
curl -X PUT http://127.0.0.1:9097/proxies/PROXY \
-H "Authorization: Bearer 你的密钥" \
-d '{"name":"HK-01"}'
示例:切到全局模式
curl -X PATCH http://127.0.0.1:9097/configs \
-H "Authorization: Bearer 你的密钥" \
-d '{"mode":"global"}'
接第三方 Web 面板
yacd、metacubexd 这类网页面板就是纯 API 客户端。打开面板网址,填入 127.0.0.1:9097 和密钥即可使用——适合喜欢在浏览器标签页里管理连接的人,或者配合 Allow LAN 在手机上遥控电脑的内核。
实用脚本思路
- 定时测速换节点:cron 每 10 分钟调
/delay接口,超阈值就 PUT 切换到备用分组; - 会议模式一键切换:脚本同时把模式改成规则、分组切到低延迟节点,绑个快捷键;
- 监控看板:轮询
/traffic和/connections,把实时流量画进 Grafana。
API 的完整定义在 Mihomo 官方文档。想在命令行里让工具本身走代理(而不是控制内核),那是另一件事,见终端代理设置。