我有一个使用 tcprewrite 修改的 pcap 文件,以设置源 IP 和目标 IP = 127.0.0.1,而端口号不同。我还将两个 MAC 地址都设置为 00:00:00:00:00:00,因为我知道 localhost 上的通信会忽略 MAC。我确保校验和是固定的。
当我tcpreplay -i lo test-lo.pcap
在一个 shell 和tcpdump -i lo -p udp port 50001
另一个 shell 中运行时,我看到了流量。然而,当我尝试使用 来查看流量时netcat -l -u 50001
,它什么也看不到。Wireshark 正在正确捕获流量。
旁注:在本地主机上运行 tcpreplay 时,我看到以下警告:
Warning: Unsupported physical layer type 0x0304 on lo. Maybe it works, maybe it won't. See tickets #123/318
这似乎令人担忧。
我问是因为我自己的 UDP 侦听器代码也有与 netcat 相同的问题,并认为我可能遗漏了一些东西。为什么 tcpdump 和 wireshark 会看到流量,而 netcat 看不到流量?