Ubuntu下dumpcap与Wireshark的配合使用指南
在Ubuntu系统中,dumpcap是Wireshark套件的核心命令行工具,通常随Wireshark一起安装。若未安装,可通过以下命令同步安装两者:
sudo apt update
sudo apt install wireshark
安装完成后,需解决dumpcap的权限问题(详见下文“权限配置”部分)。
dumpcap捕获网络流量需要访问底层网络接口的权限,默认需root权限运行。为避免每次使用sudo,推荐以下两种方法:
wireshark组(推荐)wireshark组,然后重新登录使权限生效:sudo adduser $USER wireshark
setcap命令赋予dumpcap捕获权限:sudo setcap cap_net_raw,cap_net_admin=eip /usr/sbin/dumpcap
此方法无需root即可运行dumpcap,但需谨慎使用。dumpcap的基本命令格式为:
dumpcap -i <接口> [选项] -w <输出文件>
常用参数说明:
-i <接口>:指定捕获接口(如eth0、wlan0或any监听所有接口);-w <文件>:将捕获数据保存为.pcap(默认)或.pcapng格式(如-P参数);-c <数量>:捕获指定数量的数据包后停止(如-c 1000捕获1000个包);-s <大小>:设置每个数据包的捕获大小(-s 0表示捕获完整数据包,避免截断)。示例命令:
捕获eth0接口的所有流量,保存为capture.pcap:
sudo dumpcap -i eth0 -w capture.pcap
捕获wlan0接口的HTTP流量(过滤tcp port 80),保存为http.pcap并限制1000个包:
sudo dumpcap -i wlan0 -f "tcp port 80" -c 1000 -w http.pcap
注意:捕获过滤器语法与Wireshark的显示过滤器不同(如tcp port 80是捕获过滤器,http是显示过滤器)。
捕获完成后,可通过Wireshark的图形界面进行详细分析:
.pcap或.pcapng文件;http过滤HTTP流量、ip.addr == 192.168.1.100过滤特定IP的流量),按回车键应用;若需实时查看捕获的流量,可通过管道将dumpcap的输出传递给Wireshark:
sudo dumpcap -i eth0 -w - | wireshark -k -i -
-w -:将捕获的数据包输出到标准输出(stdout);wireshark -k -i -:-k表示立即开始捕获,-i -表示从标准输入读取数据。eth0的流量到file1.pcap和file2.pcap):dumpcap -i eth0 -nn -s 0 -w file1.pcap &
dumpcap -i eth0 -nn -s 0 -w file2.pcap &
-b参数按大小或时间分割捕获文件(如每100MB保存为一个文件):dumpcap -i eth0 -w output.pcap -b filesize:100
分割后的文件会自动命名为output.pcap1、output.pcap2等。通过以上步骤,可实现dumpcap与Wireshark的高效配合:dumpcap负责快速捕获网络流量(节省系统资源),Wireshark负责图形化分析与深度排查,满足不同场景下的网络监控需求。