1818
1919### 获取当前配置
2020
21- ** GET** ` /config `
21+ ** GET** ` /api/ config `
2222
2323获取当前运行的完整配置信息。
2424
2929
3030### 更新配置
3131
32- ** POST** ` /config `
32+ ** POST** ` /api/ config `
3333
3434更新并重启服务使用新的配置。
3535
3636请求体:
3737
3838``` json
3939{
40- "type" : " 配置类型" ,
41- "content" : " 配置内容"
40+ "path" : " 配置文件路径" ,
41+ "poll" : {
42+ "url" : " 配置URL" ,
43+ "interval" : 更新间隔(可选)
44+ },
45+ "storage" : {
46+ "folder" : " 存储文件夹" ,
47+ "key" : " 存储键名"
48+ },
49+ "text" : " 配置文本内容"
4250}
4351```
4452
53+ 注意:请求体中的字段是可选的,根据配置来源选择相应的字段。
54+
4555响应: ` null `
4656
4757## 系统信息
4858
4959### 获取注册表信息
5060
51- ** GET** ` /registry `
61+ ** GET** ` /api/ registry `
5262
53- 获取所有已注册的网络类型和代理类型 。
63+ 获取所有已注册的网络类型和服务器类型 。
5464
5565响应:
5666
6373 }
6474 // ... 其他网络类型
6575 },
66- "proxy " : {
67- "<代理类型名称 >" : {
76+ "server " : {
77+ "<服务器类型名称 >" : {
6878 "schema" : " <JSON Schema>" ,
69- "description" : " 代理类型描述 "
79+ "description" : " 服务器类型描述 "
7080 }
71- // ... 其他代理类型
81+ // ... 其他服务器类型
7282 }
7383}
7484```
7585
7686### 获取系统状态
7787
78- ** GET** ` /state `
88+ ** GET** ` /api/ state `
7989
8090获取系统当前运行状态。
8191
8595
8696### 获取所有连接
8797
88- ** GET** ` /connections `
98+ ** GET** ` /api/connection `
8999
90100获取当前所有活动连接的信息。
91101
92102响应:
93103
94104``` json
95105{
96- "connections" : [
97- {
98- "id" : " <连接UUID>" ,
99- "local_addr" : " <本地地址>" ,
100- "remote_addr" : " <远程地址>" ,
101- "net" : " <使用的网络名称>" ,
102- "upload" : " <上传字节数>" ,
103- "download" : " <下载字节数>" ,
104- "start_time" : " <开始时间>" ,
105- "chains" : [" <经过的代理链>" ]
106+ "connections" : {
107+ "<连接UUID>" : {
108+ "protocol" : " <协议>" ,
109+ "addr" : " <地址>" ,
110+ "upload" : <上传字节数>,
111+ "download" : <下载字节数>,
112+ "start_time" : <开始时间戳>,
113+ "ctx" : {
114+ "src_socket_addr" : " <源地址>" ,
115+ "dest_domain" : " <目标域名>" ,
116+ "net_list" : [" <经过的网络列表>" ]
117+ }
106118 }
107- ] ,
108- "upload " : " <总上传字节数>" ,
109- "download " : " <总下载字节数>"
119+ } ,
120+ "total_upload " : <总上传字节数>,
121+ "total_download " : <总下载字节数>
110122}
111123```
112124
113125### 关闭所有连接
114126
115- ** DELETE** ` /connections `
127+ ** DELETE** ` /api/connection `
116128
117129关闭所有活动的连接。
118130
119- 响应:返回已停止的连接信息,格式与 GET ` /connections ` 相同。
131+ 响应:返回已停止的连接信息,格式与 GET ` /api/connection ` 相同。
120132
121133### 关闭指定连接
122134
123- ** DELETE** ` /connection/{uuid} `
135+ ** DELETE** ` /api/ connection/{uuid} `
124136
125137关闭特定 UUID 的连接。
126138
@@ -137,7 +149,7 @@ false // 操作失败
137149
138150### WebSocket 连接监控
139151
140- ** WebSocket** ` /connection?patch=<boolean>&without_connections=<boolean> `
152+ ** WebSocket** ` /api/stream/ connection?patch=<boolean>&without_connections=<boolean> `
141153
142154通过 WebSocket 实时监控连接状态。
143155
@@ -152,22 +164,23 @@ false // 操作失败
152164
153165``` json
154166{
155- "type" : " full" ,
156- "value" : {
157- "connections" : [
158- {
159- "id" : " <连接UUID>" ,
160- "local_addr" : " <本地地址>" ,
161- "remote_addr" : " <远程地址>" ,
162- "net" : " <使用的网络名称>" ,
163- "upload" : " <上传字节数>" ,
164- "download" : " <下载字节数>" ,
165- "start_time" : " <开始时间>" ,
166- "chains" : [" <经过的代理链>" ]
167+ "full" : {
168+ "connections" : {
169+ "<连接UUID>" : {
170+ "protocol" : " <协议>" ,
171+ "addr" : " <地址>" ,
172+ "upload" : <上传字节数>,
173+ "download" : <下载字节数>,
174+ "start_time" : <开始时间戳>,
175+ "ctx" : {
176+ "src_socket_addr" : " <源地址>" ,
177+ "dest_domain" : " <目标域名>" ,
178+ "net_list" : [" <经过的网络列表>" ]
179+ }
167180 }
168- ] ,
169- "upload " : " <总上传字节数>" ,
170- "download " : " <总下载字节数>"
181+ } ,
182+ "total_upload " : <总上传字节数>,
183+ "total_download " : <总下载字节数>
171184 }
172185}
173186```
@@ -176,12 +189,11 @@ false // 操作失败
176189
177190``` json
178191{
179- "type" : " patch" ,
180- "value" : [
181- { "op" : " replace" , "path" : " /upload" , "value" : " <新的上传字节数>" },
192+ "patch" : [
193+ { "op" : " replace" , "path" : " /total_upload" , "value" : <新的上传字节数> },
182194 {
183195 "op" : " add" ,
184- "path" : " /connections/- " ,
196+ "path" : " /connections/<uuid> " ,
185197 "value" : {
186198 /* 新增的连接信息 */
187199 }
@@ -195,7 +207,7 @@ false // 操作失败
195207
196208### 更新代理选择
197209
198- ** POST** ` /select /{net_name} `
210+ ** POST** ` /api/net /{net_name} `
199211
200212更新 Select 类型代理的选择。
201213
@@ -215,7 +227,7 @@ false // 操作失败
215227
216228### 测试延迟
217229
218- ** GET** ` /delay/ {net_name}?url={url}&timeout={timeout} `
230+ ** GET** ` /api/net/ {net_name}/delay ?url={url}&timeout={timeout} `
219231
220232测试指定代理节点的网络延迟。
221233
@@ -247,17 +259,17 @@ null
247259
248260### 获取用户数据
249261
250- ** GET** ` /userdata/{key } `
262+ ** GET** ` /api/ userdata/{path } `
251263
252- 获取指定键的用户数据 。
264+ 获取指定路径的用户数据 。
253265
254266响应:存储的用户数据对象,格式取决于存储时的数据类型
255267
256268### 设置用户数据
257269
258- ** PUT** ` /userdata/{key } `
270+ ** PUT** ` /api/ userdata/{path } `
259271
260- 设置指定键的用户数据 。
272+ 设置指定路径的用户数据 。
261273
262274响应:
263275
269281
270282### 删除用户数据
271283
272- ** DELETE** ` /userdata/{key } `
284+ ** DELETE** ` /api/ userdata/{path } `
273285
274- 删除指定键的用户数据 。
286+ 删除指定路径的用户数据 。
275287
276288响应:
277289
283295
284296### 列出所有用户数据
285297
286- ** GET** ` /userdata `
298+ ** GET** ` /api/ userdata `
287299
288300获取所有用户数据的键列表。
289301
@@ -303,8 +315,39 @@ null
303315
304316### WebSocket 日志流
305317
306- ** WebSocket** ` /log `
318+ ** WebSocket** ` /api/stream/logs `
307319
308320通过 WebSocket 实时接收系统日志。
309321
310- 响应:每个 WebSocket 消息包含一条日志文本字符串。
322+ 响应:每个 WebSocket 消息包含一条日志记录的 JSON 对象,格式如下:
323+
324+ ``` json
325+ {
326+ "timestamp" : " 2023-01-01T12:00:00Z" ,
327+ "level" : " INFO" ,
328+ "message" : " 日志消息" ,
329+ "target" : " 目标模块" ,
330+ "fields" : {
331+ "message" : " 详细信息" ,
332+ "ctx" : " 上下文JSON字符串" ,
333+ "parsedCtx" : {
334+ "dest_socket_addr" : " 目标地址" ,
335+ "src_socket_addr" : " 源地址" ,
336+ "dest_domain" : " 目标域名" ,
337+ "net_list" : [" 经过的网络列表" ]
338+ },
339+ "span" : {
340+ "addr" : " 地址" ,
341+ "name" : " 名称" ,
342+ "self" : " 自身标识"
343+ },
344+ "spans" : [
345+ {
346+ "addr" : " 地址" ,
347+ "name" : " 名称" ,
348+ "self" : " 自身标识"
349+ }
350+ ]
351+ }
352+ }
353+ ```
0 commit comments