温馨提示×

如何用linux dumpcap抓包

小樊
45
2026-10-05 03:25:04
栏目: 智能运维

dumpcap 是 Wireshark 套件中的命令行抓包工具,通常随 Wireshark / tshark 一起安装。下面从安装、基本用法、常见场景、权限与常见问题几个方面说明。


一、安装 dumpcap

Debian / Ubuntu

sudo apt update
sudo apt install wireshark-common

安装后 dumpcap 一般在:

/usr/bin/dumpcap

CentOS / RHEL

sudo yum install wireshark

或

sudo dnf install wireshark

验证

dumpcap -v

二、基本抓包命令

1️⃣ 查看网卡

dumpcap -D

或

ip link

示例输出:

1. eth0
2. lo

2️⃣ 抓取指定网卡数据包

sudo dumpcap -i eth0 -w capture.pcap
  • -i eth0:指定网卡
  • -w capture.pcap:保存到文件

3️⃣ 限制抓包数量

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

抓 100 个包后自动停止。


4️⃣ 限制抓包时间

sudo dumpcap -i eth0 -a duration:60 -w test.pcap

抓 60 秒后停止。


三、常用实用参数

参数 作用
-i 指定网卡
-w 保存文件
-c 抓包数量
-a 自动停止条件
-b 文件轮转
-f 抓包过滤(BPF)
-s 截断包长度
-B 缓冲大小(MB)

四、常见实战场景

✅ 1. 抓取 HTTP 流量(端口 80)

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

✅ 2. 抓取某 IP 的通信

sudo dumpcap -i eth0 -f "host 192.168.1.100" -w ip.pcap

✅ 3. 文件自动轮转(防止过大)

sudo dumpcap -i eth0 -w log.pcap \
  -b filesize:100000 \
  -b files:10
  • 每个文件 100MB
  • 最多保留 10 个

✅ 4. 后台长期抓包

nohup sudo dumpcap -i eth0 -w long.pcap -b duration:3600 &

五、权限问题(很重要)

方式一:使用 root

sudo dumpcap ...

方式二:赋予 dumpcap 抓包权限(推荐)

sudo groupadd wireshark
sudo usermod -aG wireshark $USER
sudo chgrp wireshark /usr/bin/dumpcap
sudo chmod 750 /usr/bin/dumpcap
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap

然后重新登录即可非 root 使用。


六、查看抓包文件

tshark -r capture.pcap

或

wireshark capture.pcap

七、常见问题

❌ 没有权限

Couldn't open interface eth0

→ 用 sudo 或配置 capabilities

❌ 抓不到包

  • 确认网卡名正确
  • 确认流量确实经过该网卡
  • 虚拟环境注意桥接 / NAT

如果你愿意,可以告诉我:

  • 你的 Linux 发行版
  • 抓包目的(排错 / 安全 / 性能)
  • 是否容器 / 云服务器

我可以给你更精确的命令。

0 踩