我正在运行一个在端口59380上运行服务的服务器。有超过1000台机器连接到该服务。 一旦我需要重新启动服务,所有这些机器都在同一时间连接。
这在我看到kern.log中的日志条目时遇到了一些麻烦
TCP: Possible SYN flooding on port 59380. *Sending cookies*. Check SNMP counters.
所以我将sysctl net.ipv4.tcp_syncookies更改为0,因为端点不能正确处理tcp syn cookie。 最后,我重新启动了我的networking以获得生产中的更改
下一次,我不得不重新启动服务,下面的消息被logging下来
TCP: Possible SYN flooding on port 59380. *Dropping request*. Check SNMP counters.
我怎样才能防止系统做这样的行动? 所有必要的反措施都由iptables完成…
不要禁用SYN cookie,这是非常不利的反作用,正如你所看到的,而不是主机回落到cookie'd套接字,它只是放弃它。
正确的做法是调整net.ipv4.tcp_max_syn_backlog到一个足够高的值,它不会再触发这个警告。
你可能也想调整一般的TCP堆栈以获得更多的内存 – 粗略的谷歌“Linux TCP Tuning”应该提供你所需要的。