Clash RESTful API为用户提供了远程控制核心功能的能力,通过HTTP请求即可动态切换代理节点、查询流量数据和调整配置,适用于需要自动化管理或远程操控的场景。
什么是Clash RESTful API
RESTful API是Clash内核提供的一套HTTP接口,默认监听在9090端口,通过向http://127.0.0.1:9090发送GET或POST请求,可实现以下操作:
- 获取当前代理节点状态
- 切换代理组选中节点
- 查询流量统计信息
- 重载配置文件
该接口广泛用于第三方面板(如Clash Dashboard、OpenClash面板)的数据交互。
API配置步骤
开启API服务
在Clash配置文件的external-controller字段中指定监听地址:
external-controller: 127.0.0.1:9090
若需开放远程访问(谨慎使用):
external-controller: 0.0.0.0:9090
获取节点列表
curl http://127.0.0.1:9090/proxies
返回JSON格式的代理组及节点信息。
切换代理节点
curl -X PUT http://127.0.0.1:9090/proxies/Proxy -d '{"name": "节点名称"}'
其中Proxy为代理组名称,节点名称为目标节点。
查询流量数据
curl http://127.0.0.1:9090/traffic
代理组类型与适用场景
Clash支持三种代理组策略:
| 类型 | 策略 | 适用场景 |
|---|---|---|
| select | 手动选择 | 需要固定节点 |
| url-test | 自动测速 | 优选低延迟节点 |
| fallback | 故障转移 | 主节点失效时切换 |
url-test适合日常跨境访问需求,系统自动测速选择最优节点;fallback适合对稳定性要求高的办公场景。
TUN模式与系统代理的区别
- TUN模式:虚拟网卡层接管全部流量(包括UDP、游戏数据包),适合游戏或实时通讯
- 系统代理:仅处理HTTP/HTTPS请求,兼容性更好但无法代理游戏流量
在API配合下,可通过脚本动态切换模式以适应不同场景。
分流规则优先级
规则按顺序匹配,常用类型:
DOMAIN:精确域名DOMAIN-SUFFIX:域名后缀IP-CIDR:IP段GEOIP:国家/地区代码
建议将常用规则置顶,通用规则置底。
常见问题
现象:API请求返回连接拒绝
原因:Clash未启动或端口被占用
解决方法:检查Clash运行状态,确认external-controller配置无误
现象:切换节点后未生效
原因:代理组类型为select但未指定具体节点
解决方法:确认API请求中的节点名称与proxies列表中的名称完全一致
现象:远程API无法访问
原因:仅配置了本地回环地址
解决方法:如需远程访问,将0.0.0:9090配合防火墙规则使用
节点选择建议
不同使用场景对节点性能要求不同:4K视频需要高带宽支持,游戏需要低延迟和UDP转发能力,跨境办公则需要稳定性和安全性,选择节点时建议关注服务商提供的线路类型和带宽上限。
通过RESTful API结合自动化脚本,可实现定时切换节点、故障自动转移等高级功能,大幅提升跨境访问体验。
