Wireshark是一个网络封包分析软件,用于撷取网络封包,并尽可能显示出最为详细的网络封包资料。
Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。
用途广泛:
网络管理员使用之用来检查网络问题;
测试工程师使用之来分析软件的网络行为;
开发者使用之来为新的通信协议除错;
普通用户使用之来学习网络协议相关知识。
Wireshark使用默认设置时,会得到大量冗余信息,过滤器可帮忙解决此问题:
捕捉过滤器(Capture Filters):用于过滤捕获的封包,以免捕获太多的记录,需在开始捕捉前设置。
语法:Protocol Direction Host Value LogicalOperation OtherExpression
Protocol(协议):可能的值有ether、fddi、ip、arp、rarp、decnet、lat、sca、moprc、mopdl、tcp、udp,若没特别指出默认使用所有支持的协议。
Direction(方向):可能的值有src、dst、src and dst、src or dst,若没指明来源或目的地默认使用“src or dst”作为关键字。
Host:可能的值有net、port、host、portrange,若没指明默认使用“host”关键字。
Logical Operation(逻辑运算):可能的值not、and、or,not优先级最高,and和or优先级相同,运算时从左向右进行。
例:tcp dst port 3128 —— 显示目的TCP端口为3128的封包
ip src host 10.1.1.1 —— 显示来源IP地址为10.1.1.1的封包
host 10.1.2.3 —— 显示目的或来源IP地址为10.1.2.3的封包
src portrange 2000-2500 —— 显示来源为UDP或TCP且端口号在2000至2500范围内的封包
not imcp —— 显示除icmp以外的所有封包
src host 10.7.2.12 and not dst net 10.200.0.0/16 —— 显示来源IP地址为10.7.2.12但目的地不是10.200.0.0/16的封包
显示过滤器(Display Filters):用于在捕获的记录中找到所需的记录,可在得到捕捉结果后随意修改。
语法:Protocol.String1.String2 ComparisonOperator Value LogicalOperation OtherExpression
Protocol(协议):可使用大量位于OSI模型第二至七层的协议。
String1,String2:协议的子类。
ComparisonOperator(比较运算符):==、!=、>、<、>=、<=
LogicalOperation(逻辑运算符):and、or、xor、not
例:snmp || dns || icmp —— 显示SNMP或DNS或ICMP封包
ip.addr == 10.1.1.1 —— 显示来源或目的IP地址为10.1.1.1的封包
ip.src != 10.1.2.3 and ip.dst != 10.4.5.6 —— 显示来源不是10.1.2.3并且目的不是10.4.5.6的封包
tcp.dst.port == 25 —— 显示目的TCP端口号为25的封包
tcp.flags —— 显示包含TCP标志的封包
Wireshark封包详细信息:
Frame:物理层的数据帧概况
Ethernet II:数据链路层以太网帧头部信息
Internet Protocol Versin 4:互联网层IP包头部信息
Transmission Control Protocol:传输层的数据段头部信息
Hypertext Transfer Protocol:应用层的信息