一、基础准备
1. 安装 Wireshark
- 下载地址:Wireshark 官网,支持 Windows、macOS、Linux 系统。
- 安装注意事项
- Windows 系统需安装WinPcap/Npcap(抓包驱动),安装时勾选 “自动启动 Npcap 服务”。
2. 启动与界面概览
启动 Wireshark 后,主界面分为 4 个核心区域:
区域名称 | 功能描述 |
捕获接口区 | 显示当前主机的所有网络接口(如以太网、Wi-Fi、虚拟网卡),选择接口即可开始抓包 |
数据包列表区 | 显示捕获到的所有数据包,每行一条,包含编号、时间戳、源地址、目的地址、协议、长度、信息 |
数据包详情区 | 选中某数据包后,展示其分层协议结构(如物理层→数据链路层→网络层→传输层→应用层) |
数据包字节区 | 以十六进制和 ASCII 码形式显示数据包的原始字节内容,与详情区一一对应 |
二、捕获与过滤
1. 开始 / 停止抓包
- 选择接口:在捕获接口区,选择需要监控的网络接口(如连接互联网的 Wi-Fi 或以太网),双击即可开始抓包。
- 控制抓包
- 暂停抓包:点击工具栏暂停按钮(快捷键Ctrl+P)。
- 停止抓包:点击工具栏停止按钮(快捷键Ctrl+E)。
- 保存抓包结果:点击文件→保存,格式为.pcap或.pcapng(推荐后者,支持更多特性)。
2. 过滤规则
Wireshark 的过滤分为捕获过滤和显示过滤,两者语法不同,用途不同。
(1)捕获过滤:抓包前筛选(减少无用数据)
捕获过滤在抓包时生效,只捕获符合规则的数据包,语法基于 BPF(Berkeley Packet Filter),适合需要过滤大量流量的场景。
- 配置位置:点击工具栏捕获选项(快捷键Ctrl+K)→ 在 “捕获过滤器” 输入框中填写规则。
- 常用语法
规则示例 | 含义 |
host 192.168.1.1 | 只捕获源或目的地址为 192.168.1.1 的数据包 |
src host 192.168.1.1 | 只捕获源地址为 192.168.1.1 的数据包 |
dst host 192.168.1.1 | 只捕获目的地址为 192.168.1.1 的数据包 |
port 80 | 只捕获端口为 80 的 TCP/UDP 数据包 |
tcp port 80 | 只捕获 TCP 协议的 80 端口数据包(HTTP 协议) |
udp port 53 | 只捕获 UDP 协议的 53 端口数据包(DNS 协议) |
not arp | 排除 ARP 协议的数据包 |
tcp and port 443 | 捕获 TCP 协议且端口为 443 的数据包(HTTPS 协议) |
(2)显示过滤:抓包后筛选
显示过滤在抓包后生效,不影响原始数据,仅隐藏不符合规则的数据包,语法基于 Wireshark 自定义规则,功能更强大。
- 配置位置:主界面顶部的 “显示过滤器” 输入框,支持自动补全(按Tab键)。
- 常用语法
规则示例 | 含义 |
ip.addr == 192.168.1.1 | 显示源或目的 IP 为 192.168.1.1 的数据包 |
ip.src == 192.168.1.1 | 显示源 IP 为 192.168.1.1 的数据包 |
ip.dst == 192.168.1.1 | 显示目的 IP 为 192.168.1.1 的数据包 |
tcp.port == 80 | 显示 TCP 源或目的端口为 80 的数据包 |
tcp.srcport == 80 | 显示 TCP 源端口为 80 的数据包 |
http | 显示所有 HTTP 协议的数据包 |
dns | 显示所有 DNS 协议的数据包 |
tcp.flags.syn == 1 | 显示 TCP 握手的 SYN 包(连接建立第一步) |
tcp.flags.fin == 1 | 显示 TCP 挥手的 FIN 包(连接关闭第一步) |
frame.len > 1000 | 显示数据包长度大于 1000 字节的帧 |
- 逻辑运算符:支持&&(与)、||(或)、!(非),例如:
ip.addr == 192.168.1.1 && tcp.port == 80 # 显示192.168.1.1的HTTP数据包 http || dns # 显示HTTP或DNS数据包 !arp # 排除ARP数据包 |
四、常见问题与注意事项
1.抓不到数据包?
- 确认选择了正确的网络接口。
- Linux/macOS 系统需用 root 权限启动 Wireshark。
- 检查防火墙是否拦截了抓包请求。
2.过滤规则不生效?
- 区分捕获过滤和显示过滤的语法差异,不要混用。
- 显示过滤输入框左侧的指示灯:绿色表示规则合法,红色表示语法错误。
五、应用场景
- 网络故障排查:分析丢包、延迟、连接重置等问题。
- 协议学习:直观理解 TCP/IP 五层模型的数据包结构。
- 安全审计:检测异常流量(如端口扫描、恶意请求)。
- 自动化测试辅助:验证接口请求的协议格式是否符合预期。