-
Notifications
You must be signed in to change notification settings - Fork 113
Diagnostics
Aethersailor edited this page Aug 15, 2026
·
3 revisions
SubConverter-Extended 提供 X-Request-ID、explain=true、/inspect 和结构化日志事件,用于定位请求路径,同时减少敏感信息泄露。
进入应用路由生命周期的 HTTP 响应会包含服务端生成的:
X-Request-ID: ...
同一 ID 会写入该请求同步处理期间的日志。客户端传入的同名请求头不会被信任或复用。
HTTP 解析器在进入应用路由前直接拒绝的畸形或超限请求,不保证具有该 ID。CDN 直接命中缓存时,响应 ID 也不能证明源站处理了一次新请求。
在原 /sub 请求后增加:
&explain=true
示例:
https://api.asailor.org/sub?target=clash&url=...&explain=true
响应改为 JSON 诊断,不再返回目标配置。可用于检查:
-
target=auto最终选择; - Mihomo、兼容解析器(诊断字段可能显示
Legacy)或客户端原生远程资源路径; - 请求参数是否识别、应用、覆盖或忽略;
- Provider、远程资源和直接节点数量;
- 外部配置、规则集和基础模板状态;
- 最终安全档位和出站策略摘要;
- 输出大小和错误原因。
诊断响应不会返回完整订阅 URL、节点正文、原始敏感参数或稳定短哈希。若请求包含上传参数,诊断模式会抑制上传。
访问:
https://api.asailor.org/inspect
自行部署:
http://localhost:25500/inspect
可以粘贴:
- 完整
/sub?...URL; - 只有查询参数的字符串;
- 当前站点下的请求路径。
诊断台自动增加 explain=true,并显示摘要、参数状态、Provider、远程资源和原始脱敏 JSON。它不会改变转换逻辑。
对同一 request_id 按以下顺序检查:
-
AUTO_TARGET_RESOLVED:自动目标和 UA 家族; -
SUB_ROUTE_RESULT:解析器或远程资源路径、调用和失败数量; - 具体错误事件,例如节点解析、外部抓取或未预期异常;
-
HTTP_RESPONSE_PREPARED:最终状态、耗时和可确定的响应大小。
如果首先看到 SUB_REQUEST_COALESCED,当前请求是等待者。使用事件中的 owner_request_id 查找真正执行转换的请求。
| 状态 | 常见含义 | 下一步 |
|---|---|---|
| 200 | 已生成目标内容或诊断报告 | 检查正文语义和客户端加载结果 |
| 400 | 缺少/无效参数、扩展语法不适用、没有有效节点或配置内容校验失败 | 检查双语错误正文和 explain=true
|
| 401 | Dashboard Basic Auth 缺失或失败 | 检查认证配置和锁定状态 |
| 403 | 安全档位拒绝请求方可控访问或上传 | 检查目标 URL、档位和上传策略 |
| 404 | 路由不存在或可选功能未启用 | 检查路径;Dashboard 需要启用统计 |
| 429 | Dashboard 当前客户端的认证失败次数达到锁定阈值 | 等待 Retry-After 指定的时间,并检查客户端地址识别和认证信息 |
| 503 | Dashboard 已启用认证,但用户名或密码为空 | 补全认证配置并重启服务 |
| 5xx | 后端依赖、默认配置、规则转换或未预期错误 | 使用请求 ID 检查源站日志和依赖状态 |
状态码表是分类入口,不替代响应正文中的具体原因。
[advanced]
log_level = "info"
print_debug_info = falseprint_debug_info=true 会覆盖普通级别并启用 verbose。只在受控排障期间使用;不要在生产环境长期保留高详细度日志。
原生进程支持:
-l <path>
--log <path>
日志以追加方式打开,不会清空已有文件。程序不负责进程内日志轮转:
- Docker 使用日志驱动和大小限制;
- systemd 使用 journald;
- 原生文件应由服务管理器或外部轮转工具管理。
进程运行期间重命名日志文件并创建同名新文件,不会让进程自动重新打开日志。SIGHUP 表示优雅停机,不用于重新打开日志。
可以提供:
- 客户端和版本;
-
target; - HTTP 状态码;
-
X-Request-ID; - 脱敏诊断报告;
- 可公开复现的最小输入。
不要提供:
- 真实订阅 URL;
- 节点、密码、token、Cookie;
- 完整未脱敏访问日志;
- 包含秘密的截图或浏览器地址栏。