c - 如何在netfilter返回NF_DROP后停止后续数据包?

标签 c linux-kernel packet-capture packet-sniffers netfilter

要阻止某些 URL,请使用 netfilterNF_INET_LOCAL_OUT链条,当我返回时NF_DROP对于某些数据包,我收到同一请求的多个数据包。我想停止后续数据包,以避免不必要的过程阻止相同的 URL。

是否有像 NF_DROP 这样的值,我可以返回来停止此过程,以便请求者 - 即在我的例子中,网络浏览器显示一些错误页面而不是重复请求相同的 URL?

我可以替换数据包中请求的 URL,然后返回 NF_ACCEPT这样请求者就会得到一个页面并停止请求?

最佳答案

客户端(在你的例子中是浏览器)不知道为什么他发送的内容没有被服务器接受。客户端期望得到确认,但没有得到。于是他继续重新发送请求。 您应该向客户端(带有服务器的 IP 地址)发送重置数据包以停止请求。 要显示错误页面,它更复杂,但也是可能的。

关于c - 如何在netfilter返回NF_DROP后停止后续数据包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42418250/

相关文章:

c - 可变参数在多次转发时如何在堆栈上表示?

linux - 什么是设备树?优点和缺点?

linux-kernel - 将设备树中断标志映射到 devm_request_irq

packet-capture - IEEE 1394/火线嗅探器?

c - pcap 仅接收新连接

c - C中使用char*和char[]表示常量char数组的区别

c - 运行时错误 - C 编程,IDE 上没有错误

c - 为什么这段C代码会陷入无限循环?

android - 模拟器 : Error while connecting to socket '127.0.0.1:1970' : 111 -> Connection refused

c - 什么是 HTTP 的 BPF?