在Linux环境下进行网络抓包是网络管理、故障排查和安全分析的重要技能,Wireshark作为最流行的网络协议分析工具,结合Linux强大的命令行工具,可以高效完成抓包任务,本文将介绍在Linux中使用Wireshark进行抓包的完整流程,包括环境准备、抓包操作、过滤技巧及数据分析方法。

环境准备与安装
在使用Wireshark前,需确保系统已安装必要的软件包,以Ubuntu/Debian为例,可通过以下命令安装:
sudo apt update sudo apt install wireshark tshark tcpdump -y
安装过程中会提示将用户加入wireshark组,以避免使用sudo抓包时的权限问题,安装完成后,在终端输入wireshark命令即可启动图形界面,或使用tshark进行命令行抓包。
权限配置是关键步骤,若未将用户加入wireshark组,抓包时可能提示“权限不足”,可通过以下命令解决:
sudo usermod -a -G wireshark $USER
执行后需重新登录使配置生效。
Wireshark图形界面抓包
Wireshark的图形界面操作直观,适合初学者,启动后,主界面分为三个部分:接口列表、数据包列表和协议详情。
选择网络接口
在主界面顶部的接口列表中,选择要抓取的网络接口(如eth0、wlan0或lo回环接口),若不确定接口名称,可使用ip a命令查看。
开始抓包
点击接口旁的蓝色鲨鱼鳍图标开始抓包,此时系统会记录经过该接口的所有数据包,抓包过程中,可随时点击红色方块按钮暂停,或点击“文件”→“保存”保存抓包结果。

基本过滤
为避免数据包过多导致分析困难,可在显示过滤器栏输入表达式。
tcp:仅显示TCP协议数据包;host 192.168.1.100:仅显示与IP地址168.1.100相关的数据包;port 80:仅显示目标或源端口为80(HTTP)的数据包。
命令行抓包(tshark与tcpdump)
对于服务器环境或自动化任务,命令行工具更高效。
tshark使用
tshark是Wireshark的命令行版本,基本语法为:
tshark -i eth0 -f "tcp port 80" -w capture.pcap
参数说明:
-i:指定接口;-f:抓包过滤表达式(BPF语法);-w:将结果保存为capture.pcap文件。
分析已保存文件时,使用-r参数:
tshark -r capture.pcap -Y "http"
tcpdump使用
tcpdump是更轻量级的抓包工具,适合快速诊断:
tcpdump -i eth0 -nn -tcp port 80 -w capture.pcap
参数说明:

-nn:不解析域名和端口,提高速度;-tcp:仅抓TCP包(可替换为udp、icmp等)。
数据分析与常见场景
抓包完成后,Wireshark的协议详情面板可逐层解析数据包(以太网帧、IP头、TCP/UDP头及应用层协议)。
故障排查示例
若网页无法访问,可抓包分析HTTP请求:
- 过滤
http,检查是否有SYN包发送(TCP三次握手); - 查看HTTP响应状态码(如
404、500); - 若出现
RST包,可能存在连接中断问题。
安全分析示例
检测异常流量时,可关注:
ping flood:大量ICMP包;port scan:同一IP对多个端口的SYN包;DNS tunneling:异常DNS查询流量。
注意事项
- 合法合规:抓包需获得网络所有者授权,避免侵犯隐私;
- 性能影响:抓包会消耗系统资源,建议在非高峰期进行;
- 存储管理:长时间抓包会产生大文件,可设置
-c参数限制抓包数量(如-c 1000仅抓1000个包)。
通过合理运用Wireshark和命令行工具,Linux环境下的网络抓包可高效解决网络问题,为系统运维和安全分析提供有力支持。














