TL;DR: 本文档旨在指导用户通过Clash客户端的RESTful API和内置Dashboard进行高级配置与管理,涵盖节点切换、配置热重载及连接诊断。目标是SRE团队成员能快速理解并运用这些工具进行日常维护与故障排查。
1. 前提条件
- 已安装并首次成功运行Clash客户端(Windows/macOS/Linux)。
- Clash核心版本:
Clash Premium 2024.07.25或更高版本。 - 操作系统:Windows 10+, macOS 12+, Linux (主流发行版)。
- 确保Clash的外部控制器(External Controller)已启用并配置端口,通常为
9090。
2. Clash RESTful API基础操作
Clash客户端提供了一套RESTful API用于程序化管理。这是实现自动化配置和状态监控的基础。
2.1 获取当前配置与状态
此操作用于验证API服务是否正常,并查看Clash的基本运行状态和当前代理配置。了解 Clash怎么用API 是日常维护的关键。
- 验证API端口可达性:
- 获取所有代理节点列表:
curl -s http://127.0.0.1:9090/configs/
预期输出 (部分):
{
"port": 7890,
"socks-port": 7891,
"mode": "rule",
"log-level": "info",
"allow-lan": false,
...
}
curl -s http://127.0.0.1:9090/proxies/
预期输出 (部分):
{
"proxies": {
"节点分流": {
"type": "Selector",
"now": "可用节点A",
"all": ["可用节点A", "可用节点B", "失效节点X"]
},
"可用节点A": {
"type": "ss",
...
}
...
}
}
Note: 默认API端口为 9090。如果已修改,请替换上述指令中的端口号。
2.2 配置热重载与节点切换
在不重启Clash客户端的情况下更新配置或切换节点,对于维持连接稳定性至关重要。这解决了 Clash配置更新 不便的问题。
- 热重载配置文件(例如,当订阅链接更新后):
- 切换特定代理组的节点(例如,将“节点分流”组切换到“可用节点B”):
curl -X PUT -H "Content-Type: application/json" -d '{"path": "/path/to/your/new_config.yaml"}' http://127.0.0.1:9090/configs?force=true
或通过URL热重载(适用于机场订阅链接):
curl -X PUT -H "Content-Type: application/json" -d '{"url": "https://your_airport_subscription.com/clash.yaml"}' http://127.0.0.1:9090/configs?force=true
预期输出:
{}
表示操作成功。
curl -X PUT -H "Content-Type: application/json" -d '{"name": "可用节点B"}' http://127.0.0.1:9090/proxies/节点分流
预期输出:
{}
Warning: 确保目标节点名称与配置文件中的名称完全匹配,否则切换将失败。
3. Dashboard进阶使用技巧
Clash Dashboard提供了一个直观的Web界面,简化了上述API操作。大多数Clash客户端(如Clash for Windows)都内置了Dashboard入口。
3.1 访问Dashboard
默认情况下,在浏览器访问 http://clash.razord.top 或 http://your_clash_ip:9090/ui 即可进入Dashboard。
Note: clash.razord.top 是一个公益Dashboard,它通过前端代码直接与你的本地Clash核心通信,数据不会上传到第三方服务器。这对于 Clash客户端教程 中快速上手非常有帮助。
3.2 流量监控与连接会话管理
Dashboard的“Connections”选项卡可以实时显示所有通过Clash的连接。这对于诊断特定应用程序的代理问题、查找流量异常来源非常有用。
- 定位特定连接:在“Connections”界面,可根据源IP、目标域名或协议类型筛选连接。
- 关闭连接:对于僵尸连接或不期望的连接,点击对应的“Close”按钮即可终止。这有助于节约带宽,尤其是在进行故障排查时。
3.3 节点延迟测试与排序
在Dashboard的“Proxies”选项卡,可以对所有代理节点进行延迟测试(点击闪电图标)。测试结果将显示为毫秒 (ms)。
根据测试结果,SRE可以快速识别低延迟、高可用的节点,并手动切换到更优的节点,优化用户体验。
4. 常见问题与排查
如果API或Dashboard无法访问,请检查以下项:
- Clash客户端是否正在运行。
- 防火墙是否阻止了
9090端口的入站/出站连接。 - Clash配置文件中的
external-controller配置是否正确,例如:
# ~/.config/clash/config.yaml
external-controller: 127.0.0.1:9090
allow-lan 必须设置为 true。References
文档版本: v2024.08.01