Ubuntu Dumpcap能捕獲的數據包類型及說明
Dumpcap是Wireshark的命令行數據包捕獲工具,支持捕獲多種網絡協議和層級的原始數據包。其捕獲能力主要基于Berkeley Packet Filter (BPF) 語法,可通過過濾器靈活指定捕獲條件。以下是常見的捕獲類型及示例:
1. 鏈路層協議
- Ethernet(以太網):捕獲以太網幀,包含源/目的MAC地址、以太網類型等信息,是網絡層以下的基礎數據鏈路層協議。
示例命令:sudo dumpcap -i eth0 -f "ether"
2. 網絡層協議
- IP(Internet協議):捕獲IPv4/IPv6數據包,包含源/目的IP地址、協議類型(如TCP/UDP)、TTL等字段,是互聯網通信的核心網絡層協議。
示例命令:sudo dumpcap -i eth0 -f "ip"
- ICMP(Internet控制消息協議):捕獲ICMP數據包(如ping請求/回復、錯誤報告),用于網絡診斷和錯誤通知。
示例命令:sudo dumpcap -i eth0 -f "icmp"
- ARP(地址解析協議):捕獲ARP請求/回復數據包,用于將IP地址解析為MAC地址(僅適用于IPv4網絡)。
示例命令:sudo dumpcap -i eth0 -f "arp"
- RARP(反向地址解析協議):捕獲RARP數據包(較少使用),用于將MAC地址解析為IP地址(適用于無盤工作站)。
示例命令:sudo dumpcap -i eth0 -f "rarp"
3. 傳輸層協議
- TCP(傳輸控制協議):捕獲面向連接的、可靠的TCP數據包,包含源/目的端口、序列號、確認號、標志位(如SYN/ACK)等信息,適用于Web、郵件等可靠傳輸場景。
示例命令:sudo dumpcap -i eth0 -f "tcp"
- UDP(用戶數據報協議):捕獲無連接的、不可靠的UDP數據包,包含源/目的端口、長度等信息,適用于DNS、視頻流等實時傳輸場景。
示例命令:sudo dumpcap -i eth0 -f "udp"
4. 應用層協議
- HTTP/HTTPS(超文本傳輸協議/安全超文本傳輸協議):捕獲HTTP請求/響應數據包(如網頁訪問)或加密的HTTPS流量(需解密配置)。
示例命令:sudo dumpcap -i eth0 -f "tcp port 80"(HTTP)、sudo dumpcap -i eth0 -f "tcp port 443"(HTTPS)
- FTP(文件傳輸協議):捕獲FTP控制連接(端口21)或數據連接(端口20)的數據包,用于文件上傳/下載。
示例命令:sudo dumpcap -i eth0 -f "tcp port 21"
- SMTP/POP3/IMAP(簡單郵件傳輸協議/郵局協議第3版/Internet消息訪問協議):捕獲郵件發送(SMTP,端口25)、接收(POP3,端口110;IMAP,端口143)的數據包。
示例命令:sudo dumpcap -i eth0 -f "tcp port 25"(SMTP)、sudo dumpcap -i eth0 -f "tcp port 110"(POP3)
- SSL/TLS(安全套接層/傳輸層安全協議):捕獲加密的SSL/TLS流量(如HTTPS、SSH),需配合解密工具(如Wireshark的SSL密鑰日志)查看明文內容。
示例命令:sudo dumpcap -i eth0 -f "tcp port 443"(TLS)
5. 自定義協議
通過BPF語法的組合(如and、or、not),可以捕獲滿足特定條件的自定義數據包。例如:
- 捕獲源IP為
192.168.1.100的TCP流量:sudo dumpcap -i eth0 -f "src host 192.168.1.100 and tcp"
- 捕獲目標端口為
80或443的流量:sudo dumpcap -i eth0 -f "tcp port 80 or tcp port 443"
- 捕獲以太網類型為
0x0800(IPv4)的流量:sudo dumpcap -i eth0 -f "ether proto 0x0800"
注意事項
- Dumpcap捕獲的是原始數據包,不會自動解析或解碼內容(如HTTP頭部、HTTPS明文),需使用Wireshark等工具進行后續分析。
- 捕獲特定協議或端口時,需使用正確的BPF語法,避免無效過濾(如
tcp port 80而非port 80,后者會捕獲所有端口的流量)。
- 需要root權限才能捕獲網絡數據包(如
sudo dumpcap)。