Networking 使用iptables模拟断开的连接

Networking 使用iptables模拟断开的连接,networking,tcp,iptables,tcpdump,Networking,Tcp,Iptables,Tcpdump,我的软件和服务器之间的tcp通信有一些错误。在超时时,路由器以静默方式关闭连接,而不通知客户端(通常使用FIN数据包) 在这种情况下,我的tcpdump日志: Soft尝试在打开的连接中推送消息 09:29:41.438050 IP CLIENTIP.33668>SERVERIP.8101:Flags[p.,seq 163:228,ack 144,win 229,options[nop,nop,TS val 96713087 ecr 4169733508],长度65 在服务器端(实际上是中间),

我的软件和服务器之间的tcp通信有一些错误。在超时时,路由器以静默方式关闭连接,而不通知客户端(通常使用FIN数据包)

在这种情况下,我的tcpdump日志:

Soft尝试在打开的连接中推送消息

09:29:41.438050 IP CLIENTIP.33668>SERVERIP.8101:Flags[p.,seq 163:228,ack 144,win 229,options[nop,nop,TS val 96713087 ecr 4169733508],长度65

在服务器端(实际上是中间),此连接已断开,服务器使用重置包进行应答

09:29:41.447415 IP服务器IP.8101>CLIENTIP.33668:Flags[R],seq 3072817047,win 0,length 0

我正试图调试这个案例,但这种情况是在相当长的时间后才发生的

我的想法是使用iptables模拟这种情况。例如,更改我的客户端的目标端口:

sudo iptables-t nat-D OUTPUT-p tcp-目标端口8101-j DNAT-到目标服务器ip:8102


但这个规则只适用于新的tcp连接,但我需要更改已经建立的连接上的数据包内容。有人知道如何将tcpdump规则写入所有包的目标端口吗?

您是否考虑过使用类似于添加延迟或丢弃包的方法?我认为它可能比iptables更适合您,谢谢它看起来很有趣,但我还没有发现生成此RST数据包的可能性(模拟静默丢弃连接)。实际上,对于libpcap应用程序来说,这是一项相当简单的任务