在承载我所工作的应用程序的 Linux 机器上,我们开始看到一个问题,即针对远程主机端口的连接尝试有时需要更长时间才能返回。
为了进行测试,我们设置了一个简单的脚本,该脚本只是尝试在无限循环中对不存在的远程端口进行 telnet。
在大多数连接尝试中,我们几乎会立即收到如下返回信息:
telnet remoteHost 12345
Trying 192.168.1.1...
telnet: connect to address 192.168.1.1: Connection refused
但是,在相当规律的时间间隔内,连接似乎会挂起几秒钟,然后继续进行下一次连接尝试,并将恢复到几乎即时的连接状态。它只是停留在“尝试”阶段:
telnet remoteHost 12345
Trying 192.168.1.1...
通常情况下,这不是什么大问题,但对于每秒在大约 100 台服务器之间执行数千项操作的应用程序来说,这些随机的减速开始成为一个问题。有人知道是什么导致了这个长度或时间,或者为什么它可能不一致吗?
如果重要的话,这里有一些系统信息:
uname -r -> 2.6.16.60-0.39.3-smp
uname -m -> x86_64
cat /etc/*-release -> SUSE Linux Enterprise Server 10 (x86_64)
VERSION = 10
PATCHLEVEL = 2
答案1
听起来你的扫描技术类似于端口扫描,那么服务器是否可能被配置为在检测到端口扫描时丢弃 SYN 数据包?服务器上是否有任何防火墙设置类似于 #8 中的设置10 条 iptables 规则助您保护 Linux 系统?