服务端频繁 shutdown,ssl_closed

EMQX版本 5.6.1
我们服务端发现,有一个客户端在频繁的MQTT连接和断开,我们从EMQX日志中获取到,这个客户端频繁断开的原因是ssl_closed,想要知道这种问题可能是什么原因导致?有没有可能是服务端这边的问题?有什么排查的方案吗?

在Erlang中收到{ssl_closed, Socket}消息可能有以下原因:

1. 正常连接关闭

当TCP/SSL连接被对端主动关闭时,Erlang的ssl模块会通过该消息通知应用层。这是标准行为,例如客户端或服务器调用ssl:close/1后,对端会收到此消息。

2.网络异常或超时

  • 物理层中断(如Wi-Fi断开)可能导致连接丢失,但依赖TCP层的Keepalive检测可能延迟通知1
  • SSL握手失败:证书验证错误或协议不匹配会直接关闭连接,触发ssl_closed

如果你只是一个特定的客户端连接断开,那可以自己用 tcpdump 下来分析一下(我猜大概率是网络问题,因为其它的客户端都没事)。

我们这抓包看着都挺正常,有没有可能是 LB 将连接断开了

可能。如果有 LB 是 haproxy 的话,就把 LB 的 keepalive 检查一下。