netstat命令的输出中的"warning, got duplicate tcp line"有什么含义?
解决方法:
在默写特定的情况下,netstat 会产生类似如下的输出。
tcp 0 0 X.X.X.X:80 X.X.X.X:1035 TIME_WAIT tcp 0 0 X.X.X.X:80 X.X.X.X:2028 TIME_WAIT warning, got duplicate tcp line warning, got duplicate tcp line
另一个典型情况是:
tcp 0 0 X.X.X.X:80 X.X.X.X:1035 TIME_WAIT tcp 0 0 X.X.X.X:80 X.X.X.X:2028 TIME_WAIT warning, got BOGUS tcp line warning, got BOGUS tcp line
以上现象可能是由于在sysctl的设置中使能了 tcp_tw_recycle和 tcp_tw_reuse选项。可以通过一下命令检查这些参数是否被设置。
sysctl net.ipv4.tcp_tw_recycle sysctl net.ipv4.tcp_tw_reuse
如果输出是1则表明他们被使能了,可以使用如下命令关闭核心参数
net.ipv4.tcp_tw_reuse = 0 net.ipv4.tcp_tw_recycle = 0
执行 sysctl -p 使这些设置生效。 这些消息本质上说明存在这两个完全一样的TCP连接,这会发生在一个连接被迅速的断开并且重新连接,而且使用的端口和地址相同。他们不应该发生,无论如何,使能上述设置会增加重现机会。 这个提示不会有人和危害,而且也不会降低系统性能,目前正在进行工作,是在将来的红帽企业Linux版本上消除这个错误信息。但这个不是一个高优先级的问题,因为他本质上是一个无害的。