我们有一个监听端口 X 的服务器。该服务器有大量客户端,有时进程会挂起,我在日志中看到 SYN 泛洪消息。我一直在尝试调整相关的 tcp 配置参数。
我想要一种方法来使用 tcpdump 或其他命令来计算该特定端口的传入连接数。
答案1
Iptables 可以记录连接,或者如果您愿意,您可以使用选项--tcp-flags SYN
来匹配 syn 数据包。
iptables -A INPUT -p tcp -m tcp --dport <listenPort> \
-m state --state NEW -j LOG --log-prefix 'PORTMON'
grep 'PORTMON' /var/log/messages
netstat
可以显示活动连接(管道用于wc -l
计数):
netstat -punta | grep <yourPort>
或者仅使用 tcpdump 来检查流量。
man tcpdump
答案2
您是否考虑过使用网络监控解决方案?
它不只是获取该端口的连接数,如果值太高,还会执行某些操作:例如设置 iptables 规则来禁止 IP,或者向手机发送警报。如这个问题,您可以使用 IPTraf 插件潘多拉FMS获取该指标,然后使用 Pandora FMS 的警报和报告功能来采取措施。