ℹ️NOTE排查原则:日志是排查一切代理网络故障的最直接依据。遇到故障时盲目截图发问不如学会看懂关键的报错关键字。
几乎所有主流代理软件(如 Sing-box, Clash Meta, v2rayN, Shadowrocket)都内置了日志输出面板。当遇到节点连接超时、网页频繁报 504 错误或节点测速正常但打不开网页时,查阅日志是定位问题核心的关键步骤。
1. 开启与配置客户端日志等级
默认情况下,客户端为了节省资源,日志等级往往设置为 error 或 warning,可能会屏蔽掉一些细节过程。
在调试故障时,建议在客户端设置中将日志等级设为 info 或 debug:
# Sing-box / Clash 示例配置
log:
level: debug # 可选: trace, debug, info, warn, error
output: stdout
2. 常见连接超时日志条目与故障根源
下面梳理了最常见的日志报错关键词及其技术含义:
[日志条目 1]: i/o timeout / context deadline exceeded
──> 含义: 客户端在规定时间内未收到服务端的 TCP 回包。
──> 根源: 节点服务器 IP 被阻断、中转节点宕机,或本地网络严重掉包。
[日志条目 2]: TLS handshake failed / EOF
──> 含义: TLS 加密握手过程被中途切断。
──> 根源: 服务端 SNI 被防火墙关键字 SNI 阻断,或节点 TLS 证书域名不匹配。
[日志条目 3]: dial tcp: lookup xxx: no such host
──> 含义: DNS 解析无法找到目标域名。
──> 根源: 本地 DNS 服务器超时或配置的加密 DNS 无法连接。
[日志条目 4]: connect: connection refused
──> 含义: 目标 IP 明确拒绝了连接请求。
──> 根源: 本地代理端口号配置错误,或代理核心进程未正常启动。
3. 典型错误日志案例实战分析
案例一:TCP 连接超时 (i/o timeout)
2026-10-08 20:15:32 [WARN] [Proxy] dial HK-Node-01 (103.xxx.xxx.xxx:443) error: dial tcp 103.xxx.xxx.xxx:443: i/o timeout
- 解读:客户端试图连接目标 IP
103.xxx.xxx.xxx的 443 端口,但在等待超时窗口内完全没有收到回应。 - 处置方案:使用 ping 或
tcping命令行直接测试该 IP。如果 tcping 掉包率 100%,说明该节点 IP 已经被封锁或节点服务已经宕机。
案例二:TLS 证书域名不匹配
2026-10-08 20:18:10 [ERROR] tls: failed to verify certificate: x509: certificate is valid for domain.com, not target.net
- 解读:客户端连接节点时传入的 SNI(Server Name Indication)与服务端返回的 TLS 证书配置不一致。
- 处置方案:检查节点配置中的
ServerName/SNI字段是否填错,或者机场服务端更新了节点证书但本地未更新订阅。
4. 故障定位决策流程图
graph TD
A[发生连接超时/页面打不开] --> B[切换日志等级至 debug 并重新加载页面]
B --> C{检查日志出现的关键字}
C -- "i/o timeout" --> D[测试节点 IP 是否被阻断/服务器宕机]
C -- "TLS handshake" --> E[核对 SNI 与节点证书域名]
C -- "no such host" --> F[检查客户端 DNS 设置与 DoH 连通性]
C -- "connection refused" --> G[检查本地代理端口 7890/10808 是否被占用]
* 点击复制包含绝对主地址的分享链接