DMZ 中的 Windows Server 2016 正在通过 HTTPS 调用公司外部的时间戳提供程序服务。DMZ 服务器的流量并不大,每天向外部提供程序发出大约 2000 次调用。防火墙每天会丢弃大约 100 次连接尝试,导致 Windows 服务器上出现“套接字错误 10060”。事实证明,公司防火墙会丢弃这些包并出现以下错误:
First packet isn't SYN
问题最近几周才开始出现,内部服务器似乎没有任何变化。我不认为这是一个应用程序问题,因为 TCP 通信由 Windows 处理。
这个问题只发生在连接到特定 URL 时,其他一切都正常。更奇怪的是 95% 的调用都正常。
您建议我从哪里开始查找问题?我们的服务器是一台物理机器。可能是硬件问题(电缆、交换机端口等)?
答案1
状态防火墙会在其状态表中跟踪所有连接/会话。为了避免该表因跟踪旧的“过时”会话而耗尽内存,未使用的记录最终会过期并从表中删除。
First packet isn't SYN
听起来很多就像一个非常慢但仍在运行的 TCP 连接在防火墙上过早老化,使得下次重新使用连接的尝试失败并创建该消息。
我会尝试以下方法之一:
- 增加防火墙上的 TCP 老化周期
- 更改服务器的配置以减少空闲连接时间
- 尝试在连接上激活一些 keepalive 选项(你的问题没有详细说明它实际上是什么)