Wireshark 如何查看 iptables 丢弃的数据包?

Ale*_*lex 3 networking kernel iptables wireshark

我最近在一台新计算机上安装了我的硬盘,经过一番摆弄之后,我注意到我的 iptables 规则出于某种原因丢弃了 DNS 响应,结果它们被配置为允许 eth0 上的东西,但是这台计算机中使用了 eth8,一切都在丢弃(不仅仅是 DNS 查询)。无论如何,我同时使用 Wireshark 来查看 DNS 服务器是否响应查询并发现它们响应了。但我刚刚注意到 iptables 正在丢弃上述数据包。如果数据包被丢弃,Wireshark 怎么能看到这些数据包?

在此处输入图片说明

用于生成规则集的脚本:

# Flush all rules
iptables -F
iptables -X

# Allow unlimited traffic on loopback
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# Allow incomming traffic from estabilished and related connections
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Policy: Allow outgoing, deny incoming and forwarding
iptables -P OUTPUT ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
Run Code Online (Sandbox Code Playgroud)

Ban*_*uin 5

在操作系统处理数据之前,Wireshark 使用libpcap从 NIC 获取数据。有关libpcap的介绍,请参阅libpcap 教程