Skip to main content

API 接口文档

请求示例​

curl 示例 curl -H 'Authorization: Bearer ${secret}' http://${controller-api}/configs?force=true -d '{"path": "", "payload": ""}' -X PUT

此请求附带 'Authorization: Bearer ${secret}' 请求头,其中:

  • ${secret} 为配置文件设置的api密钥
  • ${controller-api} 为配置文件中设置的api监听地址
  • ?force=true 为携带参数,部分请求需携带
  • '{"path": "", "payload": ""}' 为要更新的资源的数据

大多数情况传入的数据都为'{"path": "", "payload": ""}',可以附带新的配置文件路径

日志​

/logs​

请求方法:GET

  • 获取实时日志

流量信息​

/traffic​

请求方法:GET

  • 获取实时流量,单位 kbps

内存信息​

/memory​

请求方法:GET

  • 获取实时内存占用,单位 kb

版本信息​

/version​

请求方法:GET

  • 获取 Clash 版本

缓存​

/cache/fakeip/flush​

请求方法:POST

  • 清除 fakeip 缓存

运行配置​

/configs​

请求方法:GET

  • 获取基本配置

请求方法:PUT

  • 重新加载基本配置,必须发送数据,URL 需携带 ?force=true 强制执行

请求方法:PATCH

  • 更新基本配置,必须发送数据,格式为'{"mixed-port": 7890}',按需修改为需要更新的配置项

/configs/geo​

请求方法:POST

  • 更新 GEO 数据库,必须发送数据

/restart​

请求方法:POST

  • 重启内核,必须发送数据

更新​

/upgrade​

请求方法:POST

  • 更新内核,必须发送数据

/upgrade/ui​

请求方法:POST

/upgrade/geo​

请求方法:POST

  • 更新 GEO 数据库,必须发送数据

策略组​

/group​

请求方法:GET

  • 获取策略组信息

/group/group_name​

请求方法:GET

  • 获取具体的策略组信息

/group/group_name/delay​

请求方法:GET

  • 对指定策略组内的节点/策略组进行测试,并返回新的延迟信息,URL 需携带?url=xxx&timeout=5000,按需修改

代理​

/proxies​

请求方法:GET

  • 获取代理信息

/proxies/proxies_name​

请求方法:GET

  • 获取具体的代理信息

请求方法:PUT

  • 选择特定的代理,需携带数据,格式为'{"name":"日本"}'

/proxies/proxies_name/delay​

请求方法:GET

  • 对指定代理进行测试,并返回新的延迟信息,URL 需携带?url=xxx&timeout=5000,按需修改

代理集合​

/providers/proxies​

请求方法:GET

  • 获取所有代理集合的所有信息

/providers/proxies/providers_name​

请求方法:GET

  • 获取特定代理集合的信息

请求方法:PUT

  • 更新代理集合

/providers/proxies/providers_name/healthcheck​

请求方法:GET

  • 触发特定代理集合的健康检查

/providers/proxies/providers_name/proxies_name/healthcheck​

  • 对代理集合内的指定代理进行测试,并返回新的延迟信息,URL 需携带?url=xxx&timeout=5000,按需修改

规则​

/rules​

请求方法:GET

  • 获取规则信息

规则集合​

/providers/rules​

请求方法:GET

  • 获取所有规则集合的所有信息

/providers/rules/providers_name​

请求方法:PUT

  • 更新规则集合

连接​

/connections​

请求方法:GET

  • 获取连接信息

请求方法:DELETE

  • 关闭所有连接

/connections/:id​

请求方法:DELETE

  • 关闭特定连接

域名查询​

/dns/query​

请求方法:GET

  • 获取指定名称和类型的 DNS 查询数据,URL 需携带?name=example.com&type=A,按需修改

DEBUG​

/debug 需要内核启动时 日志级别 为 debug

/debug/gc​

请求方法:PUT

  • 进行主动 GC

/debug/pprof​

浏览器打开 http://${controller-api}/debug/pprof 可查看原始 DEBUG 信息,其中:

  • allocs 表示每个函数调用的内存分配情况,包括在堆栈上和堆上分配的内存大小以及内存分配次数。这个报告主要是为了帮助我们找到代码中存在的内存泄漏、内存频繁申请等问题。
  • heap 报告则给出了程序在堆上使用的内存的详细信息,其中包括被分配的内存块的大小、数量和地址,并且按照大小排序。这个报告主要是为了搜寻内存使用过高的地方,我们可以在 heap 报告中查看对象的大小,从而找到内存使用过高的地方。

安装 Graphviz,可查看图形化的 debug 信息​

查看图形化 Heap 报告​
go tool pprof -http=:8080 http://127.0.0.1:xxxx/debug/pprof/heap

Full image

查看图形化 Allocs 报告​
go tool pprof -http=:8080 http://127.0.0.1:xxxx/debug/pprof/allocs

示例输出

提交输出报告​

浏览器访问 http://${controller-api}/debug/pprof/heap?raw=true 即可下载这个文件,通过上传到 issues 提交你遇到的问题。