2012-04-27 30 views
1

我需要转储某些传入数据包,然后阻止它们上传到堆栈,以便应用程序不会处理它们。在链路层丢弃选定的数据包

现在,tcpdump在第2层工作,对吗?所以理想情况下,我应该在tcpdump之后找到一些我会使用的工具,它会丢弃选定的数据包。我在tcpdump中应用的过滤器以及丢弃数据包的过滤器将会相同。

任何已经这样做?

回答

1

现在,tcpdump在第2层工作,对吗?所以理想情况下,我应该在tcpdump之后找到一些我会使用的工具,它会丢弃选定的数据包。

Tcpdump从链路层的网络捕获,是的。然而,在这种情况下,“捕获”意味着“被动地接入网络,获取所有接收和发送的数据包的副本”。它以而不是以允许它阻止网络堆栈处理这些数据包的方式进入网络。可以认为它类似于窃听电话线 - 谁在窃听线路可以听到对话,但是他们无法阻止对话一方的人听到对方说的话。

任何已经做到了这一点?

可能有,但它用来这样做的机制可能会非常依赖它所运行的操作系统。您需要在哪些操作系统上捕获运行的数据包。

+0

好的,谢谢你的回复。我会在Linux上做所有事情。 – 2012-05-02 08:17:16

+1

然后你可能想看看你是否可以使用[iptables](http://www.netfilter.org/)。 – 2012-05-02 17:48:19