0

我正在尝试使用原始套接字将数据包注入网络,但似乎无法让接收器捕获此数据包。如何检查数据包是否被 linux 网络堆栈丢弃?有人可以指出一些这样做的工具吗?

4

3 回答 3

1

我不知道直接访问网络堆栈(不是说不可能,只是如果可以的话我不知道该怎么做),但是您可能可以使用 Wireshark 或类似的东西来查看接收端的 NIC端正在接收数据包。您还可以在发送端使用它来检查数据包是否正确发送(或者实际上是否首先发送,如果这是问题的话),因为它允许您检查字段/等。单个数据包。非常有用的工具,真的。

http://www.wireshark.org/

请注意,该网站没有 Linux 版本的直接下载,但列出了各种 Linux 发行版的第三方软件包。

于 2012-06-06T19:06:11.790 回答
1

选项包括wireshark 和tcpdump,或tcpdump 到pcap 文件,然后使用wireshark 分析。一种选择可能也是使用 strace 或类似工具来跟踪执行发送的系统调用。

于 2012-06-06T19:15:37.323 回答
0

另一种选择是使用BPF来检测内核中的 TCP 堆栈。您可以查看一些已经存在的 TCP 脚本,例如 tcplife:

于 2020-02-28T10:48:54.083 回答