通过 hping3 建立 TCP 连接

Establishing TCP Connections by hping3

当客户端通过hping3(非欺骗)发送10个TCP SYN包时,服务器响应并发送10个TCP SYN+ACK包。现在客户端应该通过发送 10 个 ACK​​ 数据包来响应服务器并建立连接,但是客户端发送 10 个 RST 并终止半开连接(我猜那是因为 linux 内核响应)。

如何每秒发送 10 个 SYN 数据包(到具有不同源端口的相同目的地)并响应 SYN+ACK,发送 ACK 并建立连接? 非常感谢

hping3 发送原始数据包,而不打开与内核的面向连接的套接字——因此是 RST。为了让内核建立连接,您必须在您的应用程序端保持一个套接字打开。这意味着应用程序必须保持 运行,如果它关闭,内核将重置所有打开的套接字。

您的选项有限,您可以尝试 'nc' (netcat),并为您想要打开的每个连接启动一个新进程。或者编写一个打开多个连接的程序,每个连接使用不同的套接字以确保每个连接的源端口不同。请记住,在单个程序中以及在整个系统中可以打开的套接字数量是有限制的。

您可能需要使用其他工具,例如 tcpgoon ,它会为您完成握手,在执行测试时保持打开的连接