本文详细讲解Clash RESTful API的核心调用方法,包括代理组配置策略、TUN模式与系统代理的技术差异、分流规则优先级逻辑,并提供常见问题的解决方案,帮助开发者实现自动化节点管理和流量控制。
Clash RESTful API基础调用
Clash核心服务启动后,默认监听9090端口提供RESTful API,通过HTTP请求可实时获取和修改配置,无需手动编辑YAML文件。
1 接口认证与基础请求
API调用需设置Authorization头,密钥为配置文件中的secret字段,常用接口包括:
GET /configs获取当前配置PUT /configs实时更新配置GET /proxies列出所有代理节点GET /traffic获取实时流量数据
# 获取节点列表
curl -X GET http://127.0.0.1:9090/proxies -H "Authorization: Bearer your-secret-key"
# 切换代理组出口
curl -X PUT http://127.0.0.1:9090/proxies/my-proxy-group \
-H "Authorization: Bearer your-secret-key" \
-d '{"name": "香港-01"}'
2 自动化配置场景
通过API可实现定时切换节点、负载均衡、健康检测等自动化功能,例如结合cron任务定期检测节点延迟,自动切换到最优出口:
import requests
import time
API_URL = "http://127.0.0.1:9090"
SECRET = "your-secret-key"
HEADERS = {"Authorization": f"Bearer {SECRET}"}
def switch_node():
proxies = requests.get(f"{API_URL}/proxies", headers=HEADERS).json()
# 筛选延迟最低的节点并切换
pass
代理组类型与配置策略
代理组是Clash流量分发的核心机制,三种类型适用于不同场景:
1 select(手动选择)
适用于需要人工指定出口的场景,如特定业务需要走固定节点,配置示例:
proxy-groups:
- name: 手动出口
type: select
proxies:
- 香港-01
- 香港-02
- 日本-01
2 url-test(自动测速)
根据URL测速结果自动选择延迟最低节点,适合日常上网场景,系统每10分钟自动测速一次:
proxy-groups:
- name: 自动测速
type: url-test
proxies:
- 香港-01
- 香港-02
url: "http://www.gstatic.com/generate_204"
interval: 600
3 fallback(故障转移)
当主节点不可用时自动切换到备用节点,保障连接稳定性:
proxy-groups:
- name: 备用出口
type: fallback
proxies:
- 香港-专线
- 香港-中转
- 日本-01
url: "http://www.gstatic.com/generate_204"
interval: 300
TUN模式与系统代理的区别
1 系统代理模式
仅处理HTTP/HTTPS/SOCKS5协议的流量,通过本地代理端口(如7890)转发,适用于浏览器、应用可手动设置代理的场景。
2 TUN模式
TUN接口会接管设备所有流量(包括UDP、游戏数据包),实现透明代理,配置时需在clash.yaml中启用:
tun:
enable: true
stack: system
dns-hijack:
- 8.8.8.8
- 8.8.4.4
场景选择建议:玩外服游戏、传输UDP数据时必须开启TUN;普通网页浏览系统代理足够且资源占用更低。
分流规则优先级与写法
Clash规则按从上到下顺序匹配,命中后立即执行,常用规则类型:
| 规则类型 | 写法示例 | 适用场景 |
|---|---|---|
| DOMAIN | DOMAIN,google.com |
精确域名 |
| DOMAIN-SUFFIX | DOMAIN-SUFFIX,facebook.com |
域名后缀匹配 |
| IP-CIDR | IP-CIDR,10.0.0.0/8,no-resolve |
内网IP段 |
| GEOIP | GEOIP,CN,DIRECT |
国家/地区分流 |
优先级原则:精确规则在前,泛用规则在后,建议将国内流量直连规则置于最上方,减少代理延迟。
常见问题FAQ
1 API返回403错误
现象:调用接口提示{"error":"authorization required"}
原因:未正确设置Authorization头或密钥错误
解决方法:检查配置文件中secret字段,确保请求时使用正确的Bearer Token
2 代理组切换不生效
现象:调用API切换节点后,实际流量仍走原节点
原因:可能存在规则优先匹配导致未使用代理组
解决方法:检查规则列表,确保流量走代理组而非直连规则
3 TUN模式启动失败
现象:Clash日志显示TUN device open failed
原因:权限不足或系统不支持TUN
解决方法:以管理员/root权限运行,或检查系统是否支持TUN堆栈
节点选择建议
根据使用场景选择合适的节点类型:4K视频需要高带宽专线,竞技游戏需要低延迟节点,日常办公需要稳定可靠的连接,建议选择支持全协议入站的机场服务,兼容性更好。
通过RESTful API可实现配置管理的完全自动化,提升跨境访问效率,结合代理组策略和分流规则,构建稳定高效的网络访问体系。