Wireshark使用
过滤规则
显示过滤器
-
根据协议来进行包过滤:eth, ip, tcp, http, telnet等
-
根据包格式中的域值来进行包过滤
- 例:显示以太网地址为 00:d0:f8:00:00:03 的设备的所有帧 eth.addr==00.d0.f8.00.00.03
- 例:显示 IP地址为 192.168.10.1 的主机的所有报文
ip.addr==192.168.10.1 - 例:显示所有 Web 浏览的报文
tcp.port==80
-
运算符
- 关系运算符:==, >, <=, != 等
- 逻辑连接符:&&, ||, ! 等
- 还可以用 ( ) 来指定运算顺序
- 例:显示192.168.10.1除了http外的所有报文
ip.addr==192.168.10.1 && tcp.port!=80
wireshark支持的全部协议及协议字段可查看https://www.wireshark.org/docs/dfref/
捕获过滤器
-
过滤规则共有两种形式:
-
一个原语(Primitive);
-
用 ”and”, “or”, “not” 关系运算符,以及括号”()”将原语组合起来而构成的表达式;
-
ether [src|dst] host <mac_addr>
- 捕获所有源或目的MAC地址是 ”08:00:1B:D3:D3:61”的以太网帧
ether host 08:00:1B:D3:D3:61
- 捕获所有源MAC地址是 ”08:00:1B:D3:D3:61”的以太网帧
ether src host 08:00:1B:D3:D3:61
[src|dst] host <ip_addr>
- 捕获所有源或目的IP地址是 ”210.30.97.53”的报文
host 210.30.97.53
- 捕获所有目的IP地址是 ”210.30.97.53”的报文
dst host 210.30.97.53
[tcp|udp] [src|dst] port <number>
捕获所有源或目的端口号是80的TCP协议的包
tcp port 80
捕获所有目的端口号是53的UDP协议的包
udp dst port 53
arp | ip | icmp | udp | tcp 等
捕获所有ICMP协议的包
icmp
捕获所有ARP协议的包
arp
例1:捕获主机 192.168.0.10 发出或收到的,除HTTP协议之外的所有网络包
host 192.168.0.10 and not tcp port 80
注:HTTP协议通常使用TCP 端口号 80。
例2:记主机 192.168.0.10为 A,捕获 A 与主机 192.168.0.20 或 A 与主机 192.168.0.30 之间的网络包
host 192.168.0.10 and (host 192.168.0.20 or host
192.168.0.30 )
区别
- 显示过滤器是将全部报文不过根据对应过滤规则筛选 , 捕获过滤器是在捕获时 , 只捕获符合过滤规则的报文
- 显示过滤器优点是无需甄别 , 但是占用存储
- 捕获过滤器长时间捕获 , 占用存储容量小 , 但是甄别时有性能开销 , 可能会导致丢包 , 两个过滤器语法不通用
Q.E.D.