跳转至

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

  • 获取具体的策略组信息

请求方法:DELETE

  • 清除自动策略组 fixed 选择

/group/group_name/delay

请求方法:GET

  • 对指定策略组内的节点/策略组进行测试,返回新的延迟信息,,并清除自动策略组的 fixed 选择
  • 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 提交你遇到的问题。