dumpcap是Wireshark套件的命令行数据包捕获工具,需通过包管理器安装。在CentOS中,推荐使用以下命令安装:
# 更新系统包列表
sudo yum update -y
# 安装EPEL仓库(若未安装)
sudo yum install epel-release -y
# 安装Wireshark(包含dumpcap)
sudo yum install wireshark wireshark-cli -y
安装完成后,可通过dumpcap --version验证是否成功。
dumpcap捕获网络数据包需高权限,有两种常用配置方式:
sudo usermod -aG wireshark $USER
# 注销并重新登录以使更改生效
sudo setcap 'cap_net_raw,cap_net_admin=eip' /usr/sbin/dumpcap
两种方式均可让当前用户无需root即可运行dumpcap。
dumpcap的主配置文件为/etc/dumpcap.conf,用户级配置文件为~/.dumpcap。常见配置项包括:
interface=any(捕获所有接口)或interface=eth0(指定接口);filter=port 80(仅捕获80端口的TCP流量);output=file:/var/log/dumpcap/capture.pcap(指定保存路径);loglevel=INFO(设置日志详细程度)。/etc/dumpcap.conf):interface=any
filter=port 80
output=file:/var/log/dumpcap/http_capture.pcap
loglevel=INFO
修改配置文件后,dumpcap会自动应用新设置。
dumpcap的配置也可通过命令行参数实现,常用参数如下:
-i eth0(捕获eth0接口流量);-w capture.pcap(保存到capture.pcap文件);-f "tcp port 80"(BPF语法,过滤80端口TCP流量);-c 100(捕获100个数据包后停止);-G 10 -W 10(10秒后停止,生成10个文件);-l(行缓冲输出,配合tshark -r -实时查看)。# 捕获所有接口流量,保存到/var/log/dumpcap/all.pcap
sudo dumpcap -i any -w /var/log/dumpcap/all.pcap
# 捕获eth0接口的HTTP流量,限制100个数据包
sudo dumpcap -i eth0 -f "tcp port 80" -c 100 -w http_capture.pcap
为提升dumpcap捕获效率,可采取以下优化措施:
-B参数增大捕获缓冲区(如-B 1048576,1MB),减少磁盘I/O;dumpcap -i eth0 -w file1.pcap & dumpcap -i eth0 -w file2.pcap &);-q参数降低I/O等待,提高捕获速度;rm -f /var/log/dumpcap/*.pcap),避免占用过多空间;