公众号:网络技术联盟站
Wireshark,这款广受欢迎的开源网络协议分析工具,堪称网络管理员、网络安全专家和网络爱好者的“显微镜”!它可以帮助我们捕获网络中的数据包,并提供详细的解码和分析能力。本文将为您全面剖析 Wireshark 的强大功能,从基础到高级,让你快速掌握这个神器!💡
Wireshark 是一款功能强大的网络协议分析器,最早由 Gerald Combs 于 1998 年开发,经过多年发展,已成为网络诊断和分析的首选工具。它支持实时捕获数据包并提供详尽的解码信息,适用于多种操作系统,包括 Windows、macOS 和 Linux。
为什么选择 Wireshark?
全面的协议支持:Wireshark 能够解析数百种协议(HTTP、DNS、SSL/TLS 等)。 实时数据捕获:支持实时数据包捕获和离线分析。 图形化界面:界面直观,易于使用。 强大的过滤功能:提供多种过滤器,帮助用户快速找到目标数据。 跨平台支持:可运行在多种操作系统上。
Wireshark 捕获模式
在 Wireshark 中,数据包捕获是最核心的功能之一。根据需求,可以选择以下捕获模式:
Wireshark 启动后会列出可用的网络接口。选择一个接口并点击“Start”,Wireshark 即开始捕获该接口上的数据包。
💡小提示:
如果不确定选择哪个接口,可以先观察接口旁边的流量图。 无线网络捕获需要支持“监控模式”的网卡。
在捕获数据包之前,可以设置一些参数来优化捕获过程:
文件输出:将捕获的数据保存到文件。 捕获过滤器:在捕获阶段过滤不需要的数据包。 环形缓冲区:限制捕获文件的大小,避免占用过多存储空间。
Wireshark 过滤器解析大全
Wireshark 提供了强大的过滤功能,包括捕获过滤器和显示过滤器。合理使用过滤器可以极大地提高分析效率。
1. 捕获过滤器(Capture Filter)
捕获过滤器在数据包捕获时生效,用于减少捕获的数据量。
示例
捕获所有 TCP 数据包: tcp
捕获来自 192.168.1.1 的数据包: src 192.168.1.1
捕获发往特定端口的数据包: port 80
2. 显示过滤器(Display Filter)
显示过滤器用于分析阶段,仅影响数据包的显示,不会改变捕获的数据。
示例
过滤 IP 地址为 10.10.50.1 的数据包: ip.addr == 10.10.50.1
过滤特定端口的数据包: tcp.port == 25
过滤多个条件: ip.addr == 10.0.0.1 and tcp.port == 80
3. 捕获与显示过滤器的对比
属性 | 捕获过滤器 | 显示过滤器 |
---|---|---|
作用阶段 | 捕获阶段 | 显示阶段 |
过滤范围 | 减少捕获的数据量 | 不影响捕获的数据量 |
语法复杂度 | 相对简单 | 相对复杂 |
典型使用场景 | 捕获特定协议或地址的数据 | 分析捕获数据中特定字段的值 |
Wireshark 快捷键与常用功能
为了提高操作效率,Wireshark 提供了丰富的快捷键和功能模块。
1. 常用快捷键
2. 数据包信息列
默认情况下,Wireshark 会显示以下列信息:
No.:数据包编号 Time:时间戳 Source:源地址 Destination:目的地址 Protocol:协议类型 Length:数据包长度
3. 数据包内容查看
点击任意数据包,可以在下方的“Packet Details”窗口查看详细内容,包括:
帧信息:以太网帧的基本信息。 协议信息:如 IP、TCP 的详细字段。 原始数据:数据包的十六进制和 ASCII 表示。
Wireshark 高级功能
Wireshark 不仅仅是一个简单的网络协议分析工具,它还拥有许多高级功能,能够帮助用户在复杂的网络环境中快速定位问题。
Wireshark 高级显示过滤器
Wireshark 的显示过滤器支持复杂的逻辑条件,可以帮助用户快速定位感兴趣的流量。
以下是一些高级用法:
组合条件
按 IP 和端口过滤:
ip.addr == 192.168.3.1 and tcp.port == 80
排除特定流量:
not (ip.addr == 10.0.0.1 and tcp.port == 22)
时间过滤
过滤特定时间段的流量:
frame.time >= "2024-12-30 17:00:00" and frame.time <= "2024-12-30 17:10:00"
协议层字段
过滤 HTTP 请求方法:
http.request.method == "GET"
过滤 DNS 查询类型:
dns.qry.type == 1
位操作符
Wireshark 的位操作符非常适合用于过滤特定标志位。
例如:
过滤 TCP SYN 数据包:
tcp.flags.syn == 1 and tcp.flags.ack == 0
过滤 ICMP Echo 请求:
icmp.type == 8
网络性能分析
Wireshark 可以帮助分析网络性能瓶颈。
延迟分析
使用 Wireshark 可以测量两个数据包之间的时间差:
通过 TCP 时间戳:查看 tcp.analysis.ack_rtt
字段。通过 ICMP 延迟:计算 frame.time_delta
的值。
丢包检测
标记丢失的 TCP 数据包:
tcp.analysis.lost_segment
检查重传数据包:
tcp.analysis.retransmission
带宽分析
通过统计功能(Statistics
菜单),可以生成网络带宽利用率的图表:
I/O 图表:用于分析网络流量变化趋势。 流量统计:统计每个协议的流量占比。
安全性分析与威胁检测
Wireshark 是网络安全分析的利器,尤其在以下几个方面:
恶意流量检测
检测端口扫描:
tcp.flags.syn == 1 and tcp.flags.ack == 0
观察源 IP 是否同时访问多个端口。
检测 DNS 隧道:
dns.qry.name contains "example.com"
检测可疑通信
未知协议:观察使用非标准端口的通信流量。 长时间连接:过滤出持续时间异常长的 TCP 会话。
密码嗅探
HTTP 明文密码捕获:过滤 HTTP POST 数据包,查看其中的表单字段:
http.request.method == "POST"
加密协议分析
Wireshark 支持部分加密协议的解密功能,例如:
SSL/TLS 解密:需要获取服务器的私钥并配置 Wireshark 的解密选项。 WPA2 解密:需要输入无线网络的 PSK。
流量可视化与报告
Wireshark 提供了一些内置的可视化工具,帮助用户更直观地理解网络流量。
I/O 图表
功能:展示网络流量随时间的变化趋势。 用法:点击菜单 Statistics -> I/O Graph
,可以自定义显示的字段和统计方法。
协议层分布
功能:统计捕获流量中不同协议的分布情况。 用法:点击菜单 Statistics -> Protocol Hierarchy
。
流量对话
功能:分析源和目的地址之间的通信。 用法:点击菜单 Statistics -> Conversations
。
本文完!🎉🎉🎉
别忘了收藏哦,防止找不到了!⭐⭐⭐
往期推荐
END
给大家分享一款针对咱们网络工程师的【子网掩码计算器】,由瑞哥自研开发,速度快,体验感棒,永久针对粉丝免费! 网络专属技术群
构建高质量的技术交流社群,欢迎从事网络技术、网络安全、系统集成、网络开发、或者对网络技术感兴趣,也欢迎技术招聘HR进群,也欢迎大家分享自己公司的内推信息,相互帮助,一起进步!
7群已满!8群开放!!!
💡文明发言,以交流技术、职位内推、行业探讨为主
广告人士勿入,切勿轻信私聊,防止被骗
支持就在看
一键四连,你的技术也四连