1. 安装Dumpcap
在Debian系统中,Dumpcap通常作为Wireshark的一部分提供。首先更新软件包列表,然后安装wireshark和dumpcap(wireshark-common包含Dumpcap):
sudo apt update
sudo apt install wireshark dumpcap -y
安装过程中,系统会提示是否允许非超级用户捕获数据包,选择“是”以便后续配置权限。
2. 配置网络接口
使用以下命令列出系统中所有网络接口(如以太网eth0、无线wlan0等),确认需要捕获的接口名称:
sudo dumpcap -D
# 或使用ip命令(较新Debian版本推荐)
ip a
输出示例:
1. eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
2. wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
记下目标接口名称(如eth0)。
若需要固定默认接口,可编辑/etc/dumpcap.conf配置文件(若文件不存在,可手动创建):
sudo nano /etc/dumpcap.conf
添加或修改以下行(将eth0替换为目标接口):
interface: eth0
保存并退出(Ctrl+O→Enter→Ctrl+X)。
3. 权限配置(避免频繁使用sudo)
Dumpcap捕获数据包需要访问网络接口的权限,可通过以下两种方式配置:
wireshark组(推荐)sudo groupadd wireshark # 若组不存在则创建
sudo usermod -aG wireshark $USER # 将当前用户加入wireshark组
添加后重新登录(或运行newgrp wireshark立即生效),此后普通用户即可运行Dumpcap。
setcap赋予权限若不想修改用户组,可直接为Dumpcap赋予网络权限:
sudo setcap 'CAP_NET_RAW+ep CAP_NET_ADMIN+ep' /usr/bin/dumpcap
此命令允许普通用户运行Dumpcap捕获数据包。
4. 运行Dumpcap捕获流量
使用配置的默认接口捕获流量,并保存到output.pcap文件:
dumpcap -i eth0 -w output.pcap
若未配置默认接口,需通过-i参数指定:
sudo dumpcap -i eth0 -w output.pcap # 若未加入wireshark组,需用sudo
-i后添加-f参数(捕获过滤器,作用于网卡层):dumpcap -i eth0 -f "tcp port 80" -w http.pcap # 只捕获HTTP流量
-c:捕获指定数量的数据包(如100个):dumpcap -i eth0 -c 100 -w limited.pcap
-C:按文件大小分割(如10MB/个),-W:限制文件数量(如5个):dumpcap -i eth0 -w /tmp/output -C 10 -W 5 # 每10MB生成一个文件,最多5个
tcpdump实时查看(无需保存到文件):dumpcap -i eth0 -w - 'port 80' | tcpdump -r -
注意事项
df -h检查);wlan0),可能需要额外配置(如监控模式)以捕获所有流量。