Quarkus 2.8.1.Final中大量生成setHandshakeSuccess调试日志是否为正常行为?
问题解答:Quarkus空闲服务大量生成SSL握手日志是否正常?
针对你遇到的这个情况,我可以明确告诉你:这种在服务空闲、无实际业务流量时,每5分钟产生2600条SSL握手成功日志的现象绝对不属于正常行为。下面详细拆解原因和解决思路:
日志背后的本质
这条日志来自io.netty.handler.ssl.SslHandler——这是Netty负责处理TLS/SSL握手的核心组件,正常逻辑下,只有当真实的客户端发起连接请求并完成TLS握手流程时,才会输出这条日志。你的服务处于空闲状态却频繁生成这类日志,说明有重复的连接请求在触发握手流程,只是这些连接没有产生业务流量(可能握手后立刻断开了)。
关于“检查所有可用端口流量”的猜测
这个猜测不成立:Quarkus默认不会主动扫描端口或发起连接探测,这些日志对应的是入站的外部连接请求,而不是服务自身主动发起的检查。
可能的触发原因
- 外部扫描/探测:最常见的情况是你的服务端口(8181)被网络扫描器、恶意爬虫或者自动化工具盯上了——它们会持续发起连接尝试,完成TLS握手后立刻断开,导致大量握手日志被记录,却没有实际业务流量。
- 版本潜在bug:你使用的Quarkus 2.8.1.Final是2022年的老版本,虽然整体稳定,但不排除Netty或Quarkus HTTP服务器组件存在连接处理的小bug,导致虚假的握手事件被触发(不过这种概率相对较低)。
解决建议
- 排查连接来源:提取日志里的客户端IP(
R:/XX.XXX.X.XXX:49892中的IP部分),确认是否是固定的某段/某个IP。如果是扫描器,可以通过防火墙、安全组直接限制这些IP的访问,从源头切断请求。 - 调整日志级别:既然DEBUG级别会输出过多这类细节,而你不需要在生产环境保留这么细的日志,可以单独降低
SslHandler的日志级别。在application.properties中添加配置:
这样就不会再输出DEBUG级别的握手成功日志了。quarkus.log.category."io.netty.handler.ssl.SslHandler".level=INFO - 升级Quarkus版本:考虑升级到较新的稳定版本(比如3.x系列),新版本通常会修复老版本的已知bug,也会更新依赖的Netty组件,可能解决这类异常连接处理问题。
- 检查连接配置:查看Quarkus的HTTP服务器配置(比如连接超时、空闲连接回收等),确认是否有不合理的设置导致连接被频繁创建又断开。
内容的提问来源于stack exchange,提问作者malachi54
相关产品推荐
相关产品推荐

