使用 -i 参数指定网卡是 tcpdump 抓包的前提,可通过 tcpdump -D 查看可用接口(如 ens33、eth0、lo、any);务必显式指定以避免默认误抓;推荐结合过滤选项提升效率,如 -nn、-s 0、-c、-w 等。

直接用 -i 参数指定网卡名称即可,这是最基础也最关键的一步。
确认可用网卡列表
执行 tcpdump -D 可列出系统所有可抓包的网络接口,例如:
-
ens33(常见于虚拟机) -
eth0(传统命名) -
lo(本地回环,用于本机进程通信) -
any(监听所有接口,含 lo)
常用指定网卡抓包命令
确保有 root 权限(通常加 sudo),再运行:
Linux系统管理专家,覆盖12大模块:用户权限、SSH、存储、网络、systemd、防火墙、日志监控、备份恢复、TLS证书、Ansible、容器、IaC。提供配置、验证、加固、监控、备份、自动化、故障排查、回滚闭环。关键词:useradd、sudo、sshd_config、chmod、SEL...
-
sudo tcpdump -i ens33:只抓ens33上的全部流量 -
sudo tcpdump -i lo:仅捕获本机内部通信(如 curl http://localhost) -
sudo tcpdump -i any port 22:在所有接口上抓 SSH 流量
避免默认误抓
不加 -i 时,tcpdump 默认选择第一个非回环网卡(如 eth0),但该接口可能不是你关心的。生产环境务必显式指定,防止漏掉关键路径或误抓内网/公网混杂流量。
配合过滤提升实用性
单独抓全量包容易淹没信息,建议组合使用:
-
sudo tcpdump -i eth0 -nn -s 0 port 80:只看 eth0 上的完整 HTTP 流量,不解析域名和端口名 -
sudo tcpdump -i ens33 -c 50 -w web.pcap:抓 50 个包并保存为文件,便于后续用 Wireshark 分析

















