Clash RESTful API配置指南,实现远程控制与自动化管理

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结合自动化脚本,可实现定时切换节点、故障自动转移等高级功能,大幅提升跨境访问体验。

您可以还会对下面的文章感兴趣: