教学目标
📖 课前导入
上节课我们学习了数据在网络中的封装与解封装过程。但这些都是理论上的描述——你怎么亲眼看到这些过程呢?
有一个强大的工具可以帮你做到:Wireshark(网络抓包工具)。它就像网络世界的"显微镜",能让你看到网线里面跑的每一个数据包!
今天我们来认识Wireshark,学会抓包和分析数据包,把前几课学的理论知识真真切切地看到!
📚 一、什么是网络抓包?
抓包的概念
抓包(Packet Capture)是指在网络上截获和分析经过网卡的数据包。通过抓包工具,你可以看到网络中传输的每一个数据包的完整内容,包括各层协议的头部信息和有效载荷。
🔍 抓包能做什么?
- • 学习网络协议的实际工作过程
- • 排查网络故障(为什么连不上?)
- • 分析网络性能问题(为什么很慢?)
- • 检测网络安全问题(有没有异常流量?)
- • 开发调试网络应用程序
⚠️ 抓包的注意事项
- • 只能抓到经过本机网卡的数据包
- • HTTPS加密的数据内容看不到明文
- • 未经授权抓取他人数据包可能违法
- • 学习时只分析自己的网络流量
📚 二、认识Wireshark
Wireshark简介
- • 全称:Wireshark Network Protocol Analyzer
- • 前身:Ethereal(2006年更名)
- • 类型:开源免费的网络协议分析工具
- • 平台:支持Windows、macOS、Linux
- • 地位:全球最流行的网络分析工具,没有之一
- • 官网:wireshark.org
Wireshark
鲨鱼 = 网络捕获利器
Wireshark界面四大区域
① 工具栏和过滤器栏
顶部区域。开始/停止抓包按钮,以及用于筛选数据包的过滤器输入框。
② 数据包列表面板
中上部。显示抓到的所有数据包的摘要信息(编号、时间、源地址、目的地址、协议、长度)。
③ 数据包详情面板
中下部。展示选中数据包的各层协议详细信息——这里能看到完整的封装结构!
④ 原始数据面板
底部。以十六进制和ASCII码显示数据包的原始字节内容。
Wireshark安装与界面介绍
手把手教你下载安装Wireshark,认识软件界面的四大区域,并完成第一次抓包
手把手教你下载安装Wireshark,认识软件界面的四大区域,并完成第一次抓包
📚 三、动手:第一次抓包
Wireshark第一次抓包实践
已完成 0/6 步
下载安装Wireshark
选择网络接口
制造一些网络流量
停止抓包
使用过滤器筛选
查看数据包详情
📚 四、常用过滤器语法
Wireshark的过滤器(Display Filter)可以帮你从海量数据包中快速找到你需要的包:
| 过滤器表达式 | 作用 | 使用场景 |
|---|---|---|
| icmp | 只显示ICMP数据包 | 分析ping命令 |
| http | 只显示HTTP数据包 | 分析网页访问 |
| dns | 只显示DNS数据包 | 分析域名解析 |
| tcp | 只显示TCP数据包 | 分析TCP连接 |
| ip.addr == 192.168.1.1 | 显示与指定IP通信的包 | 追踪特定主机 |
| ip.src == 192.168.1.100 | 显示指定源IP的包 | 只看本机发出的包 |
| tcp.port == 80 | 显示80端口的TCP包 | 分析HTTP流量 |
| eth.addr == 00:1a:2b:3c:4d:5e | 按MAC地址过滤 | 追踪特定设备 |
| http && ip.addr == 14.119.104.189 | 组合过滤器 | 精确筛选 |
💡 过滤器小技巧
- • 过滤器栏变绿表示语法正确,变红表示语法错误
- • 用
&&表示"并且",||表示"或者",!表示"非" - • 输入协议名时支持自动补全
📚 五、实战:分析ping数据包
让我们先在CMD中ping百度,然后在Wireshark中分析抓到的ICMP数据包:
Wireshark中看到的ICMP数据包结构
在Wireshark中过滤 icmp,点击一个Echo Request包,展开各层信息:
Frame(物理层帧信息)
帧长度: 74 bytes | 捕获时间: 2024-01-15 10:30:25.123456
Ethernet II(数据链路层)
源MAC: 00:1a:2b:3c:4d:5e(你的网卡)
目的MAC: aa:bb:cc:dd:ee:ff(网关路由器)
类型: 0x0800(IPv4)
Internet Protocol Version 4(网络层)
版本: 4 | 头部长度: 20 bytes | 总长度: 60 bytes
TTL: 128 | 协议: ICMP (1)
源IP: 192.168.1.100(你的电脑)
目的IP: 110.242.68.66(百度服务器)
ICMP(互联网控制消息协议)
类型: 8(Echo Request / ping请求)
代码: 0 | 校验和: 0x4d5a
标识符: 0x0001 | 序列号: 1
数据: 32 bytes 的填充数据
从Wireshark验证封装理论
通过Wireshark,你可以亲眼看到我们前几课学的理论知识:
- ✅ 分层结构:数据包确实按层组织,每层都有自己的头部
- ✅ 封装:以太网帧包着IP包,IP包包着ICMP数据
- ✅ MAC地址:数据链路层使用MAC地址寻址
- ✅ IP地址:网络层使用IP地址寻址
- ✅ 协议类型字段:每层都有字段指明上层是什么协议
📚 六、其他网络诊断工具
除了Wireshark,还有一些命令行工具在网络诊断中非常有用:
tracert / traceroute
追踪数据包从你的电脑到目的地经过的每一个路由器(每一跳),显示每跳的延迟。
用途:排查"到底在哪一跳出了问题"
nslookup / dig
查询域名对应的IP地址(DNS解析),还能查看DNS服务器信息。
用途:排查"域名能不能正确解析"
netstat
查看本机的网络连接状态、监听端口、路由表等信息。
用途:查看"哪些程序正在使用网络"
动手挑战:完成一次完整的抓包分析
- 安装Wireshark并开始抓包
- 在CMD中执行
ping www.baidu.com -n 5 - 停止抓包,使用过滤器
icmp筛选 - 找到一个 Echo Request 包,展开查看各层信息
- 对照找到一个 Echo Reply 包,对比两个包的源/目的IP和MAC地址
- 回答:Request和Reply包中,哪些字段是互换的?
完成这个练习,你就真正把"理论"变成了"实践"!
✅ 课堂小测
随堂测验
第 1/5 题Wireshark是什么类型的工具?
📋 本课小结
抓包是截获和分析网络数据包的技术,是网络学习和故障排查的核心技能。
Wireshark是最流行的抓包工具,界面分四个区域:工具栏、包列表、包详情、原始数据。
过滤器帮助快速筛选数据包,常用:icmp、http、dns、ip.addr==xxx。
其他工具:tracert(路由追踪)、nslookup(DNS查询)、netstat(连接状态)。
🤔 课后思考
- 用Wireshark抓包访问一个HTTP网站,能看到网页的内容吗?如果是HTTPS呢?为什么?
- 执行 tracert www.baidu.com,数一数经过了几跳。尝试 tracert 一个国外网站(如 google.com),比较跳数差异。
- 在Wireshark中观察一个TCP连接的建立过程,你能找到"三次握手"的三个数据包吗?(提示:SYN、SYN+ACK、ACK)
- 思考:如果你是网络安全工程师,抓包工具能帮你发现哪些安全问题?