Scapy 和 TCP 堆栈:避免我系统的 TCP 堆栈发送 RST

Scapy and TCP stack: avoid the TCP stack of my system to send an RST

我有以下scapy scipt

a=IP(dst="192.168.10.71")/TCP(sport=13998, dport=14010, flags="S", window=1400)
sr1(a)
a=IP(dst="192.168.10.71")/TCP(sport=13998, dport=14010, flags="A", window=1400)
sr1(a)

第一个数据包发送到目标tcp服务器

然后我从TCP服务器收到了一个SYN+ACK:

然后查看我系统的TCP堆栈发送了一个RST TCP数据包,然后我的脚本发送了第二个TCP数据包(ACK),如上面的脚本所示

如何避免我的系统的TCP栈在收到服务器的SYN+ACK后发送RST TCP数据包?并按照脚本中的指示发送我的第二个 TCP 数据包?

顺便说一句,我的 TCP 服务器是:

<?php
$socket = stream_socket_server("tcp://0.0.0.0:14010", $errno, $errstr);
if (!$socket) {
  echo "$errstr ($errno)<br />\n";
} else {
  echo "SERVER TCP (port 14010) started!";
  while ($conn = stream_socket_accept($socket)) {
    fwrite($conn, 'The local time is ' . date('n/j/Y g:i a') . "\n");
    fclose($conn);
  }
  fclose($socket);
}
?>

问题的答案如下topic:

应该添加这个 ip table 命令

iptables -A OUTPUT -p tcp --tcp-flags RST RST -s 192.168.2.68 -j DROP