Clash Verge 的界面本质上是个「遥控器」——真正干活的 Mihomo 内核暴露了一套 HTTP API,界面上每一次点击都对应一个 API 调用。这套 API 你自己也能用:写脚本自动切节点、接入 Stream Deck、挂第三方面板,都靠它。

通过 curl 调用 Clash 外部控制 API 查询版本和切换节点
API 就是普通的 HTTP 接口,curl 即可调用

确认 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 的组合等于把内核控制权暴露给局域网甚至公网——恶意网页可以借浏览器发请求改你的代理配置。

最常用的几个接口

接口方法用途
/proxiesGET列出全部节点与分组及当前选择
/proxies/分组名PUT切换该分组选中的节点
/configsPATCH改运行配置,如切换模式
/connectionsGET/DELETE查看或断开当前连接
/proxies/节点名/delayGET对单个节点测延迟

示例:一行命令切换节点

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 官方文档。想在命令行里让工具本身走代理(而不是控制内核),那是另一件事,见终端代理设置