视野之外
[ 返回文章列表 ]
故障排查
发布日期: 2026-10-08
7 分钟阅读

如何从客户端日志定位连接超时

遇到代理打不开网页时如何看懂客户端日志?本文详解 Sing-box、Clash 与 v2rayN 的日志等级设置,教你快速识别 TCP 握手超时、TLS 证书阻断与 DNS 解析异常。

ℹ️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 是否被占用]
* 点击复制包含绝对主地址的分享链接
相关研究日志 RECOMMENDED
回首页