我正在使用packet_mmap来捕获系统中的所有数据包,但似乎没有任何方法可以干扰其他操作系统获取它们。我希望能够对进入用户空间的数据包进行独占控制,并决定是否可以进入系统中的其他应用程序,或者是否被丢弃,因此我可以根据标准过滤数据包。
有没有这样做的方法?我似乎无法找到关于这个特定主题的任何文档。我想我想要的是能够从IP堆栈中删除所有传入的数据包,因此没有其他程序获取它们,然后能够逐个数据包地重新插入数据包。
答案 0 :(得分:0)
您无法使用PACKET
套接字执行所需操作 - 它们不是为此目的而设计的。
您需要使用的是libnetfilter_queue,以及将所有传入数据包定向到您的队列的iptables规则。