dumpcap
是 Wireshark 的命令行版本,用于捕獲網絡流量。在使用 dumpcap
時,可以使用 -Y
或 --filter
選項來指定一個 BPF (Berkeley Packet Filter) 表達式,以便只捕獲符合特定條件的數據包。
BPF 表達式是一種強大的工具,可以讓你根據各種標準(如源地址、目的地址、端口號、協議類型等)來過濾數據包。以下是一些基本的 BPF 表達式示例:
捕獲所有進入或離開特定 IP 地址的數據包:
dumpcap -i eth0 host 192.168.1.1
捕獲特定網絡接口上的所有 TCP 數據包:
dumpcap -i eth0 tcp
捕獲特定網絡接口上源端口為 80 的所有數據包:
dumpcap -i eth0 tcp port 80
捕獲特定網絡接口上目的端口為 443 的所有數據包:
dumpcap -i eth0 tcp port 443
捕獲特定網絡接口上源或目的 IP 地址為 192.168.1.1 的所有數據包:
dumpcap -i eth0 host 192.168.1.1
捕獲特定網絡接口上源或目的 IP 地址為 192.168.1.1 且 TCP 協議的數據包:
dumpcap -i eth0 tcp and host 192.168.1.1
捕獲特定網絡接口上源或目的 IP 地址為 192.168.1.1 到 192.168.1.255 范圍內的所有數據包:
dumpcap -i eth0 net 192.168.1.0/24
請注意,BPF 表達式的語法非常靈活,可以根據需要進行組合和擴展。你可以使用邏輯運算符(如 and
、or
、not
)以及比較運算符(如 ==
、!=
、<
、>
、<=
、>=
)來構建更復雜的表達式。
在使用 dumpcap
時,請確保你有足夠的權限來捕獲網絡流量。在某些操作系統上,你可能需要以 root 用戶身份運行 dumpcap
或使用 sudo
命令來獲取所需的權限。