在 Mac 上使用“终端”捕捉数据包踪迹

如果您知道如何读取数据包踪迹,您可能会发现这在诊断网络连接问题时十分有用。

获取网络接口的 BSD 设备名称

  1. 使用管理员帐户登录 Mac。
  2. 按住 Option 键,然后选取苹果菜单 () >“系统信息”(或“系统概述”)。
  3. 从“系统信息”窗口左侧的列表中选择“网络”。 
  4. 从该窗口右侧的活动服务列表中选择网络接口(如 Wi-Fi 或以太网)。
  5. 从该窗口底部的详细信息部分中,找到“BSD 设备名称”。在图示中,Wi-Fi 的 BSD 设备名称为 en0。

“系统信息”窗口

捕捉数据包踪迹

  1. 打开“应用程序”文件夹内“实用工具”文件夹中的“终端”。
  2. 输入以下命令,但要将“BSDname”替换为“系统信息”中的 BSD 设备名称(如 en0、en1 或 ppp0):

    sudo tcpdump -i BSDname -s 0 -B 524288 -w ~/Desktop/DumpFile01.pcap

  3. 按下 Return 键,然后在出现提示时输入您的管理员密码。
  4. “终端”应该会显示“tcpdump: listening on...”,以表明其正在监听该网络接口上的活动。
  5. 在“终端”打开后,执行您想要测试的网络功能。
  6. 在网络功能执行完成后,返回“终端”并按 Control-C,以捕捉数据包踪迹。“终端”会将其存储到桌面上名为“DumpFile01.pcap”的文件中。 
  7. 要查看该文件的内容,请在“终端”中使用以下命令:

    tcpdump -s 0 -n -e -x -vvv -r ~/Desktop/DumpFile01.pcap

  8. 要捕捉其他数据包踪迹,请修改“终端”命令,以增加存储的文件(如 DumpFile02.pcap 和 DumpFile03.pcap)的数量。

了解详情

Apple 开发者网站上提供了有关数据包踪迹的更多信息。对网络连接进行故障诊断时,您应该知晓自己的电脑机型、macOS 版本、IP 地址(和目标 IP 地址),以及媒体访问控制 (MAC) 地址。您还应该了解自己的电脑在网络活动中所扮演的角色,以及与该问题关联的各网络事件的发生时间。

在对 AirPort 基站和宽带调制解调器之间的连接进行故障诊断时,请重新启动基站,并在启动时捕获其与互联网服务提供商之间的交互。您可以使用“AirPort 实用工具”或者简单地通过断开其电源来重新启动基站。测试时,最好将基站、调制解调器以及执行捕获操作的电脑连至以太网集线器(而非交换机)。您还应该手动为执行捕获操作的电脑分配 IP 地址,以免其占用基站所需的 DHCP 租期(使用 169.254.x.x 地址即可)。

数据包踪迹可能会显示 Mac 发送的数据包的 TCP 校验和为“bad”。这是因为数据包踪迹是在网络堆栈的链路层上捕获的,该层就位于生成校验和的物理网络适配器的前面。可以放心地忽略它。

发布日期: