wireshark常用过滤命令

wireshark常用过滤命令

wireshark抓包介绍

有99%的网络故障都是可以通过通用故障排除流程来解决的。

只有当常规手段无法查明网络故障时才抓包进行分析。

抓包分析也不是万能的,无法看出网络拓扑是怎样的,路由是怎样走的,哪根网线断了。

单机单点:

只抓本机网络数据包

单机多点:

必须有一台可管理交换机,在交换机上配置端口镜像功能,将其他端口上的流量都复制到抓包主机所连端口,这样就能在一台主机上抓去其他主机甚至全部网络流量的网络数据包

双机并行:

是在特定网络设备,比如防火墙的前 后端 各部署一个抓包主机同时抓包,然后进行比对分析,看数据包在经过特定的网络设备时,是否存在异常

wireshark界面认识

默认布局

调整布局(常用)

https://blog.csdn.net/qq_27071221/article/details/122979427
编辑---》首选项---》外观---》布局

显示FCS错误

wireshark默认不显示FCS错误,需要自己开启配置

shell 复制代码
# 过滤所有错包
eth.fcs_bad

在数据包列表中,所有的错包都会带上这个小尾巴

出现FCS值不匹配,很大概率是网络硬件故障
0x00000000这个0值错包,虽然Google认为是Wireshark误判,但实际上很少见,依然大概率是硬件故障

出现错包,对TCP协议并无影响,但会影响UDP协议,因为UDP协议没有纠错机制

shell 复制代码
# 过滤所有错包,并 排除0值错包
eth.fcs_bad and !eth.fcs == 0x00000000

wireshark常见列

Time

Time(时间)列:从第2数据包开始,都是相对于第1数据包的时间

时间是可以切换绝对时间的,但建议用默认设置。

回包

这两个箭头,表示一个发包,一个回包。

数据报对应网络模型

wireshark基本操作

  1. 打开软件
  2. 选择网卡
  3. 即开始抓包,

结束抓包

再次开始抓包

wireshark常用过滤命令

https://cloud.tencent.com/developer/article/1618433

一般比较常用的就几个:

shell 复制代码
# 过滤指定ip地址
ip.addr==xxx.xxx.xxx.xxx

# 过滤指定tcp端口
tcp.port=xxx

# 过滤指定udp端口
udp.port==xxx

我一般会先用具体协议过滤个大概,比如tcp、udp、ssh、ftp、icmp、ssl、http、smtp等

一、过滤协议

  • tcp
  • udp
  • arp
  • icmp
  • http
  • smtp
  • ftp
  • dns
  • ssl
  • ssh

二、过滤IP

shell 复制代码
ip.src eq ${IP} or ip.dst eq ${IP}

# 或
ip.addr eq IP

eq也可以用==代替

"不等于"怎么表达?测试!=不行,得用not xxyy,例如not tcp.port3389 && not ip.addr10.135.71.54 && not tcp.port80(tcp端口不等于3389且tcp端口不等于22且地址不等于10.135.71.54)

再比如

!ssl 或者 not ssl

!(arp.src192.168.1.1) and !(arp.dst.proto_ipv4192.168.1.243)

三、过滤端口

shell 复制代码
# 过滤tcp端口==443
tcp.port eq 443

# 过滤tcp目标端口==80 或 tcp源端口==80
tcp.dstport == 80 or tcp.srcport == 80

# 过滤udp端口==53
udp.port eq 53

四、过滤方向

关键字 解释
src
dst 目的地
src and dst 源 and 目的地
src or dst 源 or 目的地
srcport 源端口
dstport 目的地端口
srcport and dstport 源端口 and 目的地端口
srcport or dstport 源端口 or 目的地端口

五、过滤http

①过滤http模式

shell 复制代码
# 过滤请求方法为HEAD的数据包
http.request.method == "HEAD"

# 过滤请求方法为GET的数据包
http.request.method == "GET"

# 过滤请求方法为POST的数据包
http.request.method == "POST"

②模糊匹配字符串

http字符串过滤,这个字符串可以在Server部分,在URI部分,在域名部分等等

shell 复制代码
# 找到所有请求的路径 uri包含 xxx 的 HTTP 请求
http.request.uri contains "xxx"

# 过滤包含 error 的 HTTP 请求或响应数据包
http contains "xxx"

六、tcp stream过滤

shell 复制代码
tcp.stream eq $streamindex

七、过滤rst

可以用这个条件找异常

shell 复制代码
# 找到所有被主机拒绝的连接请求
rst: tcp.flags.reset == 1 and tcp.ack == 0

例如

shell 复制代码
# 找到符合ip地址条件的,所有被主机拒绝的连接请求
ip.addr==10.1.2.35 && ip.addr==115.159.131.24 && tcp.flags.reset == 1
shell 复制代码
# 捕获多播地址和广播地址
# 捕获MAC地址最低位为1的数据包
## 在以太网协议中,MAC地址的最低位为1时,表示该地址为多播地址或广播地址。
eth[0] & 1

常用示例:

个人实际应用中遇到的一些分析场景。

分析DSCP值

在Wireshark中,您可以使用以下过滤器来筛选包含特定DSCP值的数据包:

shell 复制代码
ip.dsfield.dscp==xx

其中xx是您要筛选的DSCP值

shell 复制代码
# 显示tcp数据包,并且其IP包头的dscp值不为0
!(ip.dsfield.dscp == 0) && tcp
相关推荐
换个昵称都难28 分钟前
webrtc 音频模块FEC模块
网络·音视频·webrtc
youngerwang1 小时前
【从搬运工到协处理器:网卡芯片架构、算法、验证与边缘演进深度剖析】
网络·算法·架构·芯片
lizhihai_992 小时前
股市学习心得-AI 产业链核心标的梳理清单
大数据·服务器·人工智能·科技·学习
黄同学real2 小时前
解决 Visual Studio Web Deploy 远程发布报 401 未授权 (ERROR\_USER\_UNAUTHORIZED)
服务器
天天进步20153 小时前
Tunnelto 源码解析 #9:控制服务器设计:Warp、WebSocket、Ping/Pong 与连接保活
运维·服务器·websocket
智慧光迅AINOPOL4 小时前
校园在线巡课系统方案:督导全覆盖
网络·全光网解决方案·全光网·校园全光网·校园全光网解决方案
Java面试题总结4 小时前
Linux-Ubantu-贴士-apt的地盘
linux·运维·服务器
●VON4 小时前
AtomGit Flutter鸿蒙客户端:数据模型
android·服务器·安全·flutter·harmonyos·鸿蒙
酉鬼女又兒4 小时前
零基础入门计算机网络:网络层核心任务、三大关键问题、两种服务类型与 TCP/IP 网际层协议体系全解析
服务器·网络·网络协议·tcp/ip·计算机网络·php·求职招聘
Urbano4 小时前
工装制作全流程科普:从面料到自动化生产
网络·人工智能