最近网络很差,机场节点随时可能爆炸。这在电脑重启后很致命,因为像YACD这样的DashBoard需要联网后才能使用,我又懒得搞个本地的Dashboard。我的解决方案是利用curl
与Clash的RESTful API。
首先,阅读Clash的API的文档
GET
获取所有代理
/proxies
PUT
切换 Selector 中选中的代理
/proxies/:name
(这边的:name
可以为节点名称,也可以为Selector。只要在proxies/
后直接加上字符串就可以,不需要引号或者:
)
当前接口只支持切换 Selector 中的代理
Path Parameters | Body Parameters |
---|---|
name |
name |
string |
string |
代理Selector名称(大小写敏感) | 要切换的代理名字 |
接着,curl
使用指南
最后,使用curl
切换节点
使用/proxies
获取所有可用代理,然后curl
发送PUT请求解决战斗。
Example
1 | curl -X PUT -H "Content-Type: application/json" -d '{"name":"节点名"}' http://localhost:port/proxies/:Selector |
-H
添加 HTTP 请求的标头Content-Type: application/json
,根据链接2,不设置标头为application/json
可能会有问题。
-d
参数用于发送 POST 请求的数据体。
最后的网址为clash的external-controller
的网址端口,最后Selector为要选择的proxy-groups
的名称。
实际指令类似下面这条:
1 | curl -X PUT -H "Content-Type: application/json" -d '{"name":"HongKong"}' http://127.0.0.1:9090/proxies/Proxy |