无法在 Mac 上使用 tcpdump 的 -Q
Cannot use tcpdump's -Q on Mac
DEVs-iMac:dev$ sudo tcpdump -Qout -nnSX -c 1 -w packet.pcap port 9656
Password:
tcpdump: cannot parse term at:
tcpdump: invalid expression "out"
我正在尝试转储所有传出的 IP 数据包。它适用于 Linux 但不适用于 Mac。有人知道为什么吗?
我发现它唯一给我带来问题的 -Qout 我试图重新排列它,但无论我把它放在哪里,它都不起作用。
Linux 对比 Macos tcpdump
您不能在 Macos 内置 tcpdump 上使用 -Q
选项,因为它有来自 Apple 的附加功能。您可以通过查看它们的版本信息来了解它们是不同的软件:
Mac 版
macos-10.14$ sudo tcpdump --version
tcpdump version tcpdump version 4.9.2 -- Apple version 83.200.2
libpcap version 1.8.1 -- Apple version 79.250.1
LibreSSL 2.2.7
Linux版本
ubuntu-18.04$ sudo tcpdump --version
tcpdump version 4.9.2
libpcap version 1.8.1
OpenSSL 1.1.1 11 Sep 2018
手册页
令人困惑的是,man tcpdump
在 Macos 终端上显示 -Q,这是不可用的。比较:
- Linux的tcpdump manpage
- Macos 的 tcpdump manpage(由 SS64 提供)
备选方案
您可以根据您的架构构建 from source if direction is important to you. This may or may not 成为可能。
DEVs-iMac:dev$ sudo tcpdump -Qout -nnSX -c 1 -w packet.pcap port 9656
Password:
tcpdump: cannot parse term at:
tcpdump: invalid expression "out"
我正在尝试转储所有传出的 IP 数据包。它适用于 Linux 但不适用于 Mac。有人知道为什么吗?
我发现它唯一给我带来问题的 -Qout 我试图重新排列它,但无论我把它放在哪里,它都不起作用。
Linux 对比 Macos tcpdump
您不能在 Macos 内置 tcpdump 上使用 -Q
选项,因为它有来自 Apple 的附加功能。您可以通过查看它们的版本信息来了解它们是不同的软件:
Mac 版
macos-10.14$ sudo tcpdump --version
tcpdump version tcpdump version 4.9.2 -- Apple version 83.200.2
libpcap version 1.8.1 -- Apple version 79.250.1
LibreSSL 2.2.7
Linux版本
ubuntu-18.04$ sudo tcpdump --version
tcpdump version 4.9.2
libpcap version 1.8.1
OpenSSL 1.1.1 11 Sep 2018
手册页
令人困惑的是,man tcpdump
在 Macos 终端上显示 -Q,这是不可用的。比较:
- Linux的tcpdump manpage
- Macos 的 tcpdump manpage(由 SS64 提供)
备选方案
您可以根据您的架构构建 from source if direction is important to you. This may or may not 成为可能。