为什么需要设置过滤器
在家用Wi-Fi看高清视频时突然卡顿,你可能会怀疑是路由器问题。但其实更可能是某个设备在后台偷偷下载更新。这时候打开网络分析工具,满屏都是数据包,根本找不到重点。设置过滤器就能帮你从海量流量中快速定位目标,比如只看某台手机的通信记录,或者只抓取视频流相关的协议。
常见工具中的过滤语法
Wireshark是最常用的抓包工具,它的过滤器分两种:捕获过滤器和显示过滤器。捕获过滤器在开始抓包前设定,减少存储压力;显示过滤器则是在抓完后用来筛选查看。
比如你想抓取所有来自IP为192.168.1.100的流量,可以在捕获过滤器中写:
host 192.168.1.100如果只想看访问HTTP服务的数据包,可以写:
port 80结合多个条件更精准
家里孩子玩游戏占用带宽,想查是哪台设备连的游戏服务器。假设游戏服务器IP是203.0.113.50,你可以这样写:
src host 203.0.113.50 && tcp这条规则表示“只显示TCP协议中源地址为该服务器的数据包”,反向追踪就能找到内网中的客户端。
显示过滤器的灵活用法
抓完包后,使用显示过滤器进一步缩小范围。比如只看DNS查询请求:
dns.flags.request == 1或者找出所有图片资源的传输记录:
http.request.uri contains ".jpg" || http.request.uri contains ".png"这种写法适合排查网页加载慢是不是因为图片太多太大会拖累速度。
实用场景举例
某天发现网络变慢,怀疑有未知设备连入。先在路由器后台查出陌生MAC地址,比如a4:50:12:ff:3b:cd,然后在Wireshark里设捕获过滤器:
ether host a4:50:12:ff:3b:cd几分钟内就能看到这台设备在和哪些外部地址通信,判断它是智能灯泡还是蹭网邻居的手机。
再比如调试智能家居联动时,想确认语音指令是否成功发送到网关,可以过滤特定局域网段:
net 192.168.1.0/24 && udp这样只看本地子网内的UDP通信,更容易发现控制命令有没有发出。