Clash API 全接口梳理:自动化脚本的进阶用法
2024年11月20日
约16分钟
API 梳理
外部控制器 API 是自动化一切的基础:切节点、查连接、看流量、改配置都能用 HTTP 完成。 这篇按接口分类完整梳理一遍,附 curl 示例与两个能直接用的进阶脚本。
认证方式
# 请求头里带 Bearer token,token 即配置中的 secret
curl -H "Authorization: Bearer your-secret" http://127.0.0.1:9090/version
接口全景
| 接口 | 方法 | 用途 |
|---|---|---|
| /version | GET | 版本与认证验证 |
| /configs | GET / PATCH | 读配置 / 运行时改模式、端口 |
| /proxies | GET | 代理组与节点列表 |
| /proxies/{name} | GET / PUT | 单节点详情 / 切换选中 |
| /proxies/{name}/delay | GET | 节点延迟测试 |
| /connections | GET / DELETE | 活跃连接列表 / 断开全部 |
| /rules | GET | 当前生效的规则列表 |
| /dns/query | GET | 用内核 DNS 解析域名 |
| /traffic / /logs | GET | 实时流量 / 日志流(SSE) |
进阶脚本 1:运行时切换全局模式
# 临时切到全局模式(用于验证节点是否可用)
curl -X PATCH -H "Authorization: Bearer secret" \
-d '{"mode":"global"}' http://127.0.0.1:9090/configs
进阶脚本 2:按域名查命中规则
# 用内核 DNS 解析,确认域名走了哪条规则
curl -H "Authorization: Bearer secret" \
"http://127.0.0.1:9090/dns/query?name=example.com&type=A" | jq .
自动化组合拳
进阶用法是组合多个接口:定时轮询 /proxies/{组}/delay 选出最优节点,通过 PUT 切换; 同时监听 /connections 统计每个进程的流量,超过阈值自动断开;配合 /logs 流 把内核日志推送到告警系统。整套脚本可以挂在同一台机器上,不依赖客户端 GUI。
安全注意事项
API 默认监听回环地址,自动化脚本在同机跑没问题;如果跨设备调用,务必用 external-controller 绑定内网 IP + 强 secret,并避免把 secret 写进会同步到 Git 的脚本里(用环境变量代替)。