如何防止Linux内核响应传入的TCP数据包?
对于我的应用程序,我需要截获某些TCP/IP数据包,并通过自定义通信链路(而不是以太网)将它们路由到不同的设备。我需要所有的TCP控制包和完整的报头。我已经找到了如何通过如何防止Linux内核响应传入的TCP数据包?,linux,sockets,tcp,Linux,Sockets,Tcp,对于我的应用程序,我需要截获某些TCP/IP数据包,并通过自定义通信链路(而不是以太网)将它们路由到不同的设备。我需要所有的TCP控制包和完整的报头。我已经找到了如何通过socket(PF_-PACKET,SOCK_-raw,htons(ETH_-P_-IP))使用原始套接字获取这些信息的方法这工作得很好,允许我附加过滤器,以便只查看我感兴趣的TCP端口 然而,Linux也可以看到这些数据包。默认情况下,当它收到一个数据包到它不知道的TCP端口号时,它会发送一个RST。这不好,因为我计划稍后亲自
socket(PF_-PACKET,SOCK_-raw,htons(ETH_-P_-IP))使用原始套接字获取这些信息的方法代码>这工作得很好,允许我附加过滤器,以便只查看我感兴趣的TCP端口
然而,Linux也可以看到这些数据包。默认情况下,当它收到一个数据包到它不知道的TCP端口号时,它会发送一个RST。这不好,因为我计划稍后亲自回复。如果我使用socket(PF_INET,SOCK_STREAM,0)在同一端口上打开第二个“正常”套接字然后,Linux向传入的TCP数据包发送ACK。这两种选择都不是我想要的。我希望它与这些包无关,这样我就可以自己处理一切。我怎样才能做到这一点呢?我也想做同样的事情。我的理由是从安全的角度来看……我想构造一个Tarpit应用程序。我打算将TCP流量从某些源IP转发到Tarpit。柏油坑必须接收ACK。它将使用自己的SYN/ACK进行回复。我不希望内核响应。因此,原始套接字将无法工作(因为提供的TCP数据包是T形的),我还需要实现一个转移套接字。到目前为止,我所知道的就这些了……还没有实现 不是回答,应该是评论