温馨提示×

Debian中Dumpcap如何抓包

小樊
45
2026-07-23 06:01:30
栏目: 智能运维

在 Debian 系统中使用 dumpcap 抓包,一般步骤如下(包含安装、权限、基本用法和常见示例)。


一、安装 dumpcap

dumpcap 属于 Wireshark 套件,通常这样安装:

sudo apt update
sudo apt install wireshark-common

安装过程中会询问:

Should non-superusers be able to capture packets?

  • 选 Yes:允许普通用户抓包(推荐)
  • 选 No:只能用 root 抓包

安装完成后,dumpcap 一般在:

/usr/bin/dumpcap

二、权限配置(非常重要)

1️⃣ 推荐方式:使用 wireshark 组(免 root)

将当前用户加入 wireshark 组:

sudo usermod -aG wireshark $USER

然后 重新登录或重启,使组生效。

验证:

groups

看到 wireshark 即可。


2️⃣ 临时使用 root(不推荐长期使用)

sudo dumpcap

三、查看可用网络接口

dumpcap -D

输出示例:

1. eth0
2. wlan0
3. lo

四、基本抓包命令

1️⃣ 抓取 eth0 的数据包

dumpcap -i eth0

默认输出到:

/tmp/wireshark_xxx.pcapng

2️⃣ 指定保存文件

dumpcap -i eth0 -w capture.pcapng

3️⃣ 限制抓包数量

抓 100 个包后停止:

dumpcap -i eth0 -c 100 -w test.pcap

4️⃣ 限制文件大小

每个文件最大 10MB:

dumpcap -i eth0 -w test.pcap -b filesize:10240

5️⃣ 循环保存多个文件

最多保存 5 个文件,循环覆盖:

dumpcap -i eth0 -w test.pcap -b files:5

五、常见高级用法

1️⃣ 抓取特定端口(如 80)

dumpcap 本身不支持 BPF 过滤语法,但可以通过 -f 使用 pcap 过滤:

dumpcap -i eth0 -w web.pcap -f "tcp port 80"

2️⃣ 抓取指定主机

dumpcap -i eth0 -w host.pcap -f "host 192.168.1.10"

3️⃣ 使用 promiscuous 模式(混杂模式)

dumpcap -i eth0 -p -w capture.pcap

-p 表示 关闭 混杂模式(默认是开启的)


六、dumpcap 与 tcpdump / tshark 的区别

工具 用途
dumpcap 高性能抓包(Wireshark 底层)
tcpdump 命令行抓包 + 显示
tshark Wireshark 命令行版(可分析)

七、常见问题

❌ 权限不足

Couldn't run /usr/bin/dumpcap in child process: Permission denied

✅ 解决:

sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap

或加入 wireshark 组(推荐)


❌ 没有网络接口

  • 确认接口存在:ip a
  • 确认不是 Docker / 容器环境(容器抓包受限)

八、示例总结

# 抓 eth0,保存 100 个包
dumpcap -i eth0 -c 100 -w eth0.pcap

# 抓 HTTP 流量
dumpcap -i eth0 -w http.pcap -f "tcp port 80"

# 循环保存 5 个 10MB 文件
dumpcap -i eth0 -w cap.pcap -b filesize:10240 -b files:5

如果你需要:

  • 远程抓包
  • Docker / Kubernetes 环境
  • 只抓某个 VLAN / IPv6
  • dumpcap + Wireshark 分析

可以继续问我。

0