Ubuntu中使用Dumpcap捕获并保存数据的步骤
Dumpcap是Wireshark套件的一部分,需通过安装Wireshark获取。在Ubuntu终端中运行以下命令:
sudo apt update
sudo apt install wireshark
安装完成后,dumpcap命令将自动可用。
捕获数据前需明确要监听的网络接口(如以太网eth0、无线网卡wlan0)。使用以下命令查看所有可用接口:
ip link show
# 或(旧版本Ubuntu)
ifconfig -a
输出中以UP标识的接口即为可用接口(如eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000中的eth0)。
核心命令格式为:
sudo dumpcap -i <interface> -w <output_file>
<interface>:替换为目标接口名称(如eth0);<output_file>:替换为保存路径及文件名(如capture.pcap,默认保存至当前目录)。示例:捕获eth0接口的所有数据包并保存到~/captures/traffic.pcap:
sudo dumpcap -i eth0 -w ~/captures/traffic.pcap
注意:-w选项是保存数据的关键,若省略则数据仅保存在内存中(Ctrl+C停止后不保留)。
-c指定捕获的数据包数量(如捕获100个包后自动停止):sudo dumpcap -i eth0 -c 100 -w capture.pcap
-s限制每个数据包的最大捕获字节数(如仅捕获前65535字节,减少文件大小):sudo dumpcap -i eth0 -s 65535 -w capture.pcap
-f在捕获时过滤数据(如仅捕获TCP流量、特定IP或端口的流量):sudo dumpcap -i eth0 -f "tcp" -w tcp_capture.pcap # 仅TCP
sudo dumpcap -i eth0 -f "host 192.168.1.100" -w ip_capture.pcap # 特定IP
sudo dumpcap -i eth0 -f "tcp port 80" -w http_capture.pcap # HTTP流量
-B将输出缓冲到磁盘(适合长时间捕获,避免内存溢出):sudo dumpcap -i eth0 -w capture.pcap -B
运行dumpcap后,按Ctrl+C组合键即可停止捕获。停止后,数据将自动保存至指定的-w文件中。
使用tcpdump或Wireshark查看保存的.pcap文件,确认数据是否正确捕获:
# 使用tcpdump快速查看(终端显示)
tcpdump -r capture.pcap -c 5 # 显示前5个包
# 使用Wireshark图形界面查看(推荐)
wireshark capture.pcap
若文件能正常打开并显示数据包内容,则说明保存成功。
dumpcap需要root权限访问网络接口,务必使用sudo运行;