Answers:
要使现有连接超时,可以使用iptables
。只需DROP
在要禁用的端口上启用规则即可。因此,要在活动连接建立时模拟Samaba服务器的超时,请在服务器上执行以下操作:
sudo iptables -A INPUT -p tcp --dport 445 -j DROP
该DROP
目标将不会回复RST
包或ICMP
错误数据包的发送者。客户端将停止从服务器接收数据包并最终超时。
根据您是否iptables
配置/如何配置,您可能希望将规则插入规则INPUT
集的上方。
ncat -v
以查看其确切ncat
功能。在香草Ubuntu 12.04上安装时,我花了2m7.291s超时
第一个答案是正确的,但是我发现了这些超时的工作原理,因此您可以观察和测试它们(不要忘记阻塞端口!)。
有4个最有趣的内核参数可以处理TCP超时:
/proc/sys/net/ipv4/tcp_keepalive_time
/proc/sys/net/ipv4/tcp_keepalive_intvl
/proc/sys/net/ipv4/tcp_keepalive_probes
/proc/sys/net/ipv4/tcp_retries2
现在有两种情况:
套接字已打开并尝试传输-然后(如果另一端没有响应),系统重试tcp_retries2
时间。如果使用默认值retires,则需要2分钟以上的时间,并且套接字超时。
套接字已打开并处于空闲状态-保持活动限制很有趣。套接字处于空闲状态时,系统将等待tcp_keepalive_time
几秒钟,然后尝试tcp_keepalive_probes
时间以tcp_keepalive_intvl
秒为间隔发送TCP KEEPALIVE 。并且只有在这一切之后,套接字才会超时。
netstat -o
/proc/sys/net/ipv4/tcp_keepalive_time
至更改为一个非常小的数字