连接日志怎么看:三个错误码定位问题

大多数客户端都有日志,但打开一看满屏英文和时间戳,直接关掉。其实真正有用的字段只有五六个,看懂之后定位问题的速度能快好几倍。

先看这五个字段

字段含义异常表现
时间戳事件发生时刻用来和系统时间对齐
目标地址连的是哪个节点和你选的节点不一致说明配置没生效
协议TCP / UDP / 传输层协议UDP 被限速时会有大量重传
握手耗时建连用了多久超过 1 秒说明链路有问题
错误码失败原因见下

三个最常见的错误码

1. 连接超时(timeout)

包发出去了,没有回应。可能是节点不可达、端口被封、或者本地网络拦了出站。

排查顺序:换节点 → 换网络(手机热点)→ 查本地防火墙。三步能排除八成。

2. 连接被拒(connection refused)

对端明确回了一个拒绝。说明目标主机活着,但那个端口上没有服务在听。

这不是网络不通,是服务端问题——通常是节点配置错误或服务没启动。直接换节点,别在本地折腾。

3. 握手失败(handshake failed)

TCP 通了,但加密协商没完成。常见原因:协议版本不匹配、证书过期、系统时间不对。

系统时间这一条最容易被忽略。时间偏差超过几分钟,TLS 证书校验就会失败,表现就是"昨天还好好的,今天全连不上"。

用时间戳对齐

日志里的时间是客户端本地时间。如果你怀疑是某个操作导致的,比如"改了设置之后就坏了",就把操作时间点和日志时间对齐。

# 看系统当前时间
date
# 看日志最后 20 行
tail -20 client.log

两者差得多,说明日志时间不准(时区或系统时间问题),先校时。

日志级别怎么调

默认级别通常只记录错误,看不到连接过程。排查时要临时调到 debug:

  • 看完整握手过程 → debug
  • 看数据传输细节 → trace(会产生大量日志,排完记得调回来)
  • 日常使用 → info 或 warning

长时间开 trace 会让日志文件迅速膨胀,占满磁盘还会拖慢程序。

日志里不该出现的东西

顺便提醒:连接日志里可能有目标地址、时间、协议,正常情况下不应该有账号密码和订阅链接。

如果你在日志里看到明文凭据,说明客户端的日志处理有问题,建议换版本或关掉详细日志。

💡 最快的一招:把日志里第一个错误前后的 10 行复制出来看,八成问题就写在那几行里。不用从头读。

延伸阅读:四层连通性自检、端口被占用怎么排查、IPv6 开了反而更慢。