Wireshark 保姆教程:抓包、过滤、数据包分析实操
前言
不管你是网络工程师、运维、网络安全学习者,还是在校学生学习计算机网络,Wireshark都是绕不开的神器。它是目前全球最流行的开源网络数据包捕获与分析工具,可以抓取网卡进出的所有数据包,直观看到网络底层通信细节,是排查网络卡顿、丢包、延迟、协议异常、攻击流量溯源的核心工具。
很多新手打开 Wireshark 之后直接懵掉,满屏滚动的数据包眼花缭乱,不知道该抓哪个网卡、分不清两种过滤器、看不懂数据包分层,抓完包之后完全不知道从哪里下手分析。网上很多教程只讲零散命令,缺少完整实操链路。
本文保姆级手把手带你完整走完:软件安装要点、网卡选择、开始抓包、停止保存、捕获过滤器与显示过滤器详细区分、海量过滤语法实战、数据包分层解读、TCP 三次握手、HTTP 流量、ICMP ping 包实战分析,还有安全渗透场景下流量排查技巧、常见踩坑问题。全程实操,跟着电脑一步一步操作就能复现。
⚠️免责声明:本文所有技术内容仅用于个人学习、授权环境测试、企业内部运维排障。严禁在未授权的网络环境抓包、窃取他人网络数据,私自抓包他人流量属于违法行为,请遵守《网络安全法》。
一、Wireshark 安装与前置准备
1.1 下载安装要点
官网直接下载 Wireshark,安装过程中必须勾选 Npcap 组件。Npcap 是 Windows 平台抓包驱动,没有它 Wireshark 无法读取网卡数据包,很多新手抓不到包,根源就是没装 Npcap。
安装完成后,右键 Wireshark 选择以管理员身份运行。普通权限打开会出现网卡列表不全、无法捕获无线网卡数据包的问题。
Linux(Kali)环境:一般预装 Wireshark,执行需要 root 权限;MacOS 需要安装 libpcap。本文主要以 Windows 系统实操演示。
1.2 认识网卡列表,选对网卡是抓包第一步
打开 Wireshark 首页,最上方会列出本机所有网卡:以太网、WLAN 无线网卡、虚拟机虚拟网卡(VMware/VirtualBox)、Loopback 本地回环网卡Npcap Loopback Adapter。
- 以太网 Ethernet:插网线使用;
- WLAN/Wi-Fi:无线网卡,抓取本机 WiFi 流量;
- Loopback(127.0.0.1):本地回环,程序本机之间通信,不会经过外网;
- 虚拟网卡:虚拟机桥接 / NAT 网卡,抓虚拟机内的流量。
✅选网卡判断技巧:看网卡后面的流量波形图,有跳动波形的网卡就是当前正在使用的网卡,波形静止没有数据代表网卡没有流量,不要选。
新手最常见错误:选错网卡,抓半天一个包都没有。
选中网卡之后,双击网卡,或者点击左上角鲨鱼鳍图标,开始捕获抓包。再次点击鲨鱼鳍,停止抓包。
二、Wireshark 界面四大核心面板
启动抓包后,主界面分为 4 块,看懂这 4 个面板,才算入门。
- 数据包列表面板(Packet List)
顶部大列表,实时滚动所有捕获数据包。字段依次:No 编号、Time 时间戳、Source 源地址、Destination 目标地址、Protocol 协议、Length 包长度、Info 简要信息。不同协议自带颜色标记,可以在View -> Coloring Rules自定义配色,方便快速识别 TCP、DNS、HTTP、ARP 包。 - 数据包详情面板(Packet Details)【最重要】
选中列表任意一条数据包,下方展示OSI 七层分层结构,从上到下依次展开:
- Frame:帧概要,物理层信息,捕获时间、总字节长度;
- Ethernet II:数据链路层,源 MAC、目标 MAC 地址;
- Internet Protocol Version4:网络层,源 IP、目的 IP、TTL;
- Transmission Control Protocol / User Datagram Protocol:传输层 TCP/UDP,端口、标志位、序列号;
- HTTP/DNS/ICMP:应用层协议数据。
每一层可以点击加号展开,查看所有协议字段,网络排障、安全分析全部看这里。
- 原始字节面板(Packet Bytes)
最底部,十六进制原始数据包,右侧是 ASCII 明文。做恶意流量分析、协议逆向、看明文传输内容会用到。 - 过滤器输入框
列表上方,分为两处:捕获过滤器(抓包前设置)、显示过滤器(抓包之后筛选,日常 90% 场景用这个)。
三、抓包基础实操:完整抓包流程(Ping 示例)
我们先来做最简单的实操:抓取 ping 百度的 ICMP 数据包。
- 管理员打开 Wireshark,选中正在上网的网卡,点击鲨鱼鳍开始抓包;
- Win+R 输入 cmd 打开命令行,执行
ping www.baidu.com; - ping 执行完成,回到 Wireshark,点击鲨鱼鳍停止抓包;
- 在上方显示过滤器输入框输入
icmp,回车,页面只保留 ICMP 数据包; - 选中数据包,在详情面板展开查看 ICMP 内容。
可以看到两类包:Echo request请求包(本机发给百度服务器)、Echo reply应答包(服务器返回给本机)。如果只有 request 没有 reply,说明网络不通。
抓包完成之后,File -> Save as,保存.pcapng抓包文件,后续可以反复打开分析,这是行业通用数据包格式,渗透测试、故障排查都需要提交 pcap 包。
小技巧:抓包前可以开启选项
Capture -> Options,勾选Use multiple files,超大流量自动分割文件,避免单个 pcap 文件过大卡死。
四、重中之重:两种过滤器,千万不要搞混
新手 90% 踩坑点:捕获过滤器 Capture Filter 和 显示过滤器 Display Filter 语法完全不一样,不能混用!
4.1 捕获过滤器(Capture Filter,BPF 语法)
抓包之前提前设置,抓包过程不能修改。作用:网卡驱动层面直接丢弃不匹配数据包,不会保存到 pcap 文件,目的是减少捕获数据量,适合高流量服务器抓包,防止抓包文件巨大。
语法:BPF 伯克利数据包过滤语法,写在网卡选项里,双引号内填写。
常用捕获过滤器示例:
# 只捕获80端口流量 tcp port 80 # 只捕获源IP 192.168.1.100的流量 src host 192.168.1.100 # 只捕获目的IP 192.168.1.1 dst host 192.168.1.1 # 捕获UDP53 DNS流量 udp port 53 # 排除本机流量 not host 127.0.0.1缺点:功能弱,只支持二层到四层,不能直接过滤 HTTP、DNS 应用层内容,日常学习、简单排障很少用。
4.2 显示过滤器(Display Filter,日常最常用)
抓包之后使用,随时修改,不会删除原始数据包,只是隐藏不匹配包。原始 pcap 数据包全部保留,清空过滤器就能恢复全部数据包。语法更强大,支持七层所有协议字段,支持内容匹配。输入框输入表达式,绿色 = 语法正确;红色 = 语法写错。
4.3 显示过滤器全套实战语法(直接复制使用)
4.3.1 按协议过滤
http # 只看http协议包 dns # DNS域名解析 icmp # ping包 tcp # 全部TCP流量 udp # 全部UDP流量 arp # ARP地址解析 tls # HTTPS TLS流量4.3.2 IP 地址过滤
ip.addr == 192.168.1.100 # 源IP或者目标IP等于这个IP(双向) ip.src == 192.168.1.100 # 源IP为192.168.1.100 ip.dst == shturl.cc/MJv7b # 目标IP4.3.3 端口过滤
tcp.port == 80 # TCP源或目标端口80(HTTP) tcp.port == 443 # HTTPS udp.port ==53 # DNS tcp.port ==22 # SSH tcp.port ==3306 # MySQL4.3.4 逻辑组合(and /or/not)
# IP是192.168.1.100 并且是HTTP流量 ip.addr == 192.168.1.100 and http # DNS或者ICMP流量 dns or icmp # 排除443 HTTPS包,只看其他TCP tcp and not tcp.port ==443 # 源IP 192.168.1.100,目标端口80 ip.src ==192.168.1.100 && tcp.dstport ==804.3.5 内容匹配 contains(安全分析高频)
查找数据包里面包含指定字符串,渗透排查 Webshell、明文请求必备
# http数据包内容包含"admin" http contains "admin" # http请求包含select(SQL注入排查) http contains "select"4.3.6 TCP 标志位过滤(红队 / 网络故障高频)
tcp.flags.syn ==1 # SYN包,TCP握手发起包 tcp.flags.ack ==1 # ACK确认包 tcp.flags.reset ==1 # RST重置包,连接被强制断开(排查连接异常) tcp.flags.fin ==1 # FIN结束包,正常关闭连接4.4 过滤器快速操作小技巧
- 右键数据包 -> Apply as Filter -> Selected,自动生成过滤表达式,不用手动写;
- 右键 -> Follow -> TCP Stream:追踪整个 TCP 会话流,把一个完整连接所有数据重组,直接看到 HTTP 完整请求和响应文本,分析网页请求必用功能;
- 过滤器输入框右侧
Clear按钮一键清空过滤器。
五、数据包分层实操分析:TCP 三次握手完整解读
TCP 是面向连接可靠传输协议,浏览器访问网站第一步,先完成 TCP 三次握手,再发送 HTTP 请求。我们抓包访问一个 http 网站,过滤tcp.flags.syn ==1找到握手包。
第一次握手 SYN
客户端 → 服务器。客户端发送 SYN 标志置 1,携带客户端初始序列号 Seq=x,请求建立连接,数据包不带上层数据。
Info 列:SYN
第二次握手 SYN+ACK
服务器 → 客户端。服务器收到 SYN,回复 SYN+ACK,SYN 代表服务端也要同步序列号 Seq=y;ACK 确认号 = x+1,表示收到客户端请求。
Info 列:SYN, ACK
第三次握手 ACK
客户端 → 服务器。ACK 标志置 1,确认号 = y+1,确认收到服务端 SYN。至此 TCP 连接成功建立。
Info 列:ACK
三次握手完成之后,客户端才会发送 HTTP GET 请求。
拓展:四次挥手,TCP 断开连接。FIN、ACK 成对出现,正常关闭;如果大量 RST 包,代表连接异常中断,可能网络防火墙拦截、程序崩溃、攻击行为。
重点字段解释(TCP 层)
- Sequence number (seq):序列号,对传输字节编号,保证顺序;
- Acknowledgment number (ack):确认号,告诉对方已经收到前面所有字节;
- Window:滑动窗口,流量控制;
- Checksum:校验和,校验数据包完整性。
六、HTTP 数据包实战分析
过滤http,找到 GET 请求包,右键 Follow TCP Stream,直接看到完整 HTTP 请求。
请求行示例:GET /index.html HTTP/1.1
请求头包含 Host、User-Agent、Cookie、Referer、Accept 等信息。
响应包:HTTP/1.1 200 OK代表成功;404 页面不存在、500 服务器错误、302 重定向。
注意:HTTPS 是 TLS 加密,Wireshark 抓到的 tls 包是密文,默认看不到明文。想要解密 HTTPS,需要配置浏览器 SSLKEYLOG 日志,Wireshark 导入密钥文件才能解密,后面会简单提。
七、其他常用协议快速解读
7.1 DNS(udp.port ==53)
域名解析协议,客户端发送查询请求(A 记录查询域名对应的 IP),DNS 服务器返回应答。网络故障排查:访问网站打不开,先抓 DNS 包,看是否解析失败。
7.2 ARP
二层地址解析,根据 IP 查询 MAC 地址,局域网大量 ARP 广播。内网渗透经常利用 ARP 欺骗,抓包可以发现异常 ARP 流量。
八、网络安全 / 渗透场景抓包实战思路
Wireshark 不只是网工工具,也是 SRC、红队、应急响应必备流量分析工具。
- Web 攻击排查:过滤
http contains查找注入、上传、webshell 请求,看请求参数、POST 数据; - 恶意连接排查:大量向外发起 SYN 连接、RST 包,排查木马外联;
- 内网横向流量:抓取 SMB、RDP、MSSQL 流量,看账号认证数据包;
- 应急溯源:拿到 pcap 包,寻找异常 IP、异常域名、异常端口通信,还原攻击全过程。
提醒:HTTPS 加密流量,单纯抓包无法直接读取明文,需要密钥解密。很多新手疑惑为什么 HTTPS 包全是 TLS 密文,看不到网页内容,这是正常现象。
九、高频踩坑问题 & 排坑指南
问题 1:选对网卡,抓不到任何数据包
- 没有管理员权限运行 Wireshark;
- Npcap 驱动未安装或者安装失败,重装 Npcap;
- 网卡是无线网卡,Windows 限制无线网卡混杂模式,无法抓取局域网其他设备流量;
想要抓局域网其他设备流量:交换机端口镜像,或者电脑开热点,设备连热点,抓热点网卡。
问题 2:过滤器输入变红,不生效
捕获过滤器和显示过滤器语法混用!比如捕获过滤器写ip.addr ==1.1.1.1就会报错,捕获过滤器要用host 1.1.1.1。
问题 3:Follow TCP Stream 看不到中文,乱码
数据包原始编码问题,Wireshark 可以切换编码,一般 UTF-8 或者 GB2312。
问题 4:抓包文件 pcapng 体积巨大
抓包前使用捕获过滤器精简流量,或者开启自动分割文件,抓包结束及时停止捕获。
十、进阶小技巧
- 统计流量:
Statistics -> Conversations,查看 IP 会话统计,快速找到流量最大 IP,排查异常外联; - 专家信息:
Analyze -> Expert Information,Wireshark 自动标记丢包、重传、异常 RST 包,网络排障神器; - 保存过滤结果:可以保存自定义显示过滤器,反复调用;
- 命令行工具 tshark:Wireshark 配套命令行抓包工具,服务器无图形环境下抓包,语法和显示过滤器通用。
十一、学习路线建议
- 先掌握基础抓包、网卡选择、保存 pcap;
- 熟练显示过滤器,大量练习 IP、端口、TCP 标志位过滤;
- 看懂 OSI 分层,读懂 TCP 三次握手、四次挥手、HTTP、DNS;
- 练习 Follow TCP Stream,分析完整会话;
- 进阶:TLS 解密、专家信息、会话统计、恶意流量分析;
- 结合靶场抓包,复现注入、文件上传等 Web 流量。
总结
Wireshark 核心逻辑一句话概括:网卡捕获数据包,过滤器筛选目标流量,分层面板解析协议内容。
不要只背过滤命令,理解 OSI 七层模型,理解 TCP、HTTP 等协议交互过程,才能看懂数据包。网络排障、协议学习、安全应急,抓包分析都是底层核心能力。
新手建议一边看教程一边打开电脑实操,跟着抓 ping、访问网页,一点点看数据包字段,多练几次就不再害怕满屏数据包。
最后
网络安全需要学习那些知识
网络安全零基础入门学习路线&规划
初级
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(一周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(一周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(一周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
恭喜你,如果学到这里,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web 渗透、安全服务、安全分析等岗位;如果等保模块学的好,还可以从事等保工程师。薪资区间6k-15k
到此为止,大概1个月的时间。你已经成为了一名“脚本小子”。那么你还想往下探索吗?
想要入坑黑客&网络安全的朋友,给大家准备了一份:282G全网最全的网络安全资料包免费领取!
7、脚本编程(初级/中级/高级)
在网络安全领域。是否具备编程能力是“脚本小子”和真正黑客的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力.
零基础入门,建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习; 搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP, IDE强烈推荐Sublime; ·Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,不要看完; ·用Python编写漏洞的exp,然后写一个简单的网络爬虫; ·PHP基本语法学习并书写一个简单的博客系统; 熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选); ·了解Bootstrap的布局或者CSS。
8、超级黑客
这部分内容对零基础的同学来说还比较遥远,就不展开细说了,贴一个大概的路线。
网络安全工程师企业级学习路线
视频配套资料&国内外网安书籍、文档&工具
当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料&工具,并且已经帮大家分好类了。
一些我自己买的、其他平台白嫖不到的视频教程:
要学习网安其实不难,难的是坚持和相信自己,我的经验是既然已经选定网安你就要相信它,相信它能成为你日后进阶的高效渠道,这样自己才会更有信念去学习,才能在碰到困难的时候坚持下去。
机会属于有准备的人,这是一个实力的时代。人和人之间的差距不在于智商,而在于如何利用业余时间,只要你想学习,什么时候开始都不晚,不要担心这担心那,你只需努力,剩下的交给时间!
这份完整版的学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】