登录/注册

Wireshark怎么用

更多

好的!Wireshark 是一款功能强大的开源 网络协议分析器(俗称抓包工具)。它允许你捕获网络接口上的数据包,并以非常详细的方式解析、展示这些数据包的内容,用于网络故障排除、分析、协议学习、安全检测等。

以下是如何使用 Wireshark 的基本步骤(中文详解):

核心步骤:捕获 -> 分析 -> 过滤


一、 安装与准备

  1. 下载安装:

    • 访问 Wireshark 官网:https://www.wireshark.org/download.html
    • 下载对应你操作系统(Windows, macOS, Linux)的安装包。
    • 安装时注意勾选安装 NpcapWinPcap(Windows 需要,用于底层抓包驱动)。Linux/macOS 通常使用 libpcap
    • 安装完成,可能需要重启
  2. 管理员/root 权限:

    • 在 Windows 上,首次启动可能需要以管理员身份运行 Wireshark,因为它需要访问网络接口。
    • 在 Linux/macOS 上,通常需要使用 sudo 启动(如 sudo wireshark)或者将你的用户添加到允许抓包的用户组(如 wireshark 组)。

二、 捕获数据包

  1. 启动 Wireshark: 打开安装好的 Wireshark。
  2. 选择捕获接口:
    • 主界面会列出你电脑上所有可用的网络接口(网卡)。
    • 常见的包括:
      • Wi-Fi / 无线网络连接: 无线网卡
      • Ethernet / 本地连接: 有线网卡
      • Loopback: lo0 / Adapter for loopback traffic capture: 本地环回接口(捕获本机内部通信,如访问 127.0.0.1localhost)。
      • 虚拟机网卡 (VMnet1, VMnet8, vboxnet0 等): 用于捕获虚拟机和宿主机之间的流量。
    • 观察流量指示灯: 接口列表右侧通常有类似 ? 的柱状图,显示该接口当前数据流的活跃程度(柱越高表示流量越大)。
  3. 开始捕获:
    • 双击你要捕获流量的接口(如 Wi-Fi)。
    • 或者,先选中接口,然后点击左上角的蓝色鲨鱼鳍图标 Blue Shark Fin Icon
    • 立即开始: Wireshark 会立即开始捕获该接口上流过的所有数据包(混杂模式默认开启,会捕获网线上所有数据包,不仅仅是发给本机的)。
  4. 触发网络活动: 在 Wireshark 捕获的同时,进行你想要分析的网络操作(比如打开一个网页、运行一个网络应用、ping 一个地址等)。
  5. 停止捕获: 当你觉得捕获到了足够的信息或者想要停止时,点击工具栏左上角的红色方块图标 Red Square Icon 停止捕获。

三、 分析捕获的数据包

停止捕获后,主界面会显示捕获到的所有数据包列表。这是分析的核心区域:

  1. 数据包列表窗格:
    • 最上方窗格:按时间顺序列出所有捕获到的数据包。
    • 关键列:
      • No.: 数据包序列号(捕获顺序)。
      • Time: 捕获时间(相对于捕获开始或绝对时间)。
      • Source: 数据包 IP 地址或 MAC 地址。
      • Destination: 数据包目标 IP 地址或 MAC 地址。
      • Protocol: 数据包使用的最高层协议(如 TCP, UDP, HTTP, DNS, ICMP, ARP)。
      • Length: 数据包长度(字节)。
      • Info: 协议的简要信息摘要(如 HTTP 的 GET/POST 请求 URL,TCP 的标志位 SYN/ACK/FIN,DNS 查询域名等)。
  2. 数据包详情窗格:
    • 中间窗格:当你点击列表中的一个数据包时,这里会显示该数据包的详细解析结构
    • 分层展示: Wireshark 按照网络协议栈逐层解析数据包(通常从上到下):
      • 帧(Frame): 物理层信息(捕获时间、长度、接口等)。
      • 以太网 II (Ethernet II) / IEEE 802.11: 数据链路层信息(源/目标 MAC 地址)。
      • Internet Protocol Version 4 (IPv4) / IPv6: 网络层信息(源/目标 IP 地址、TTL、协议类型等)。
      • Transmission Control Protocol (TCP) / User Datagram Protocol (UDP): 传输层信息(源/目标端口号、序列号、确认号、标志位、窗口大小等)。
      • 应用层协议: (如 Hypertext Transfer Protocol (HTTP), Domain Name System (DNS), Simple Mail Transfer Protocol (SMTP) 等):包含应用层具体的数据内容(HTTP报文、DNS查询响应、邮件内容等)。
    • 展开/折叠: 点击每层协议前面的小三角 可以展开查看该层协议头的每一个字段及其值。这是分析协议细节的关键。
  3. 数据包字节窗格:
    • 最下方窗格:以十六进制(Hex)ASCII 形式显示当前选中数据包的原始字节内容。
    • 联动: 在详情窗格中选择某个字段时,字节窗格中对应的原始字节会高亮显示。反之,在字节窗格中选择一段字节,详情窗格中对应的协议字段也会被标记出来。

四、 过滤数据包(关键技能!)

捕获到的数据包往往非常多,过滤是找出你真正关心的数据包的核心技巧

  1. 显示过滤器:

    • 位置: 工具栏下方有一个长长的输入框,标记着 Apply a display filter...
    • 作用:已经捕获的数据包列表中,只显示符合过滤条件的数据包。不改变原始捕获数据。
    • 常用过滤表达式(示例):
      • ip.addr == 192.168.1.100:显示所有源或目标 IP 是 192.168.1.100 的数据包。
      • tcp.port == 80:显示所有源或目标端口是 80 (HTTP) 的数据包。
      • udp.port == 53:显示所有源或目标端口是 53 (DNS) 的数据包。
      • http:显示所有 HTTP 协议的数据包。
      • dns:显示所有 DNS 协议的数据包。
      • icmp:显示所有 ICMP 协议的数据包 (ping 包)。
      • arp:显示所有 ARP 协议的数据包。
      • tcp.flags.syn == 1:显示所有设置了 SYN 标志位的 TCP 包 (通常是 TCP 握手的第一步)。
      • tcp contains "password":显示 TCP 负载中包含字符串 "password" 的数据包 (注意大小写)
      • !(arp or icmp or dns):显示除 ARP, ICMP, DNS 之外的所有数据包。
      • ip.src == 10.0.0.1 and tcp.dstport == 443:显示源 IP 是 10.0.0.1 且目标端口是 443 (HTTPS) 的数据包。
    • 应用/清除: 输入表达式后按 Enter 应用。点击输入框右边的 清除过滤器,显示所有数据包。
    • 自动补全: Wireshark 支持自动补全,输入 ip. 后按 Tab 键会弹出可能的字段列表。善用此功能!
    • 检查有效性: 输入过滤器时,输入框背景色:
      • 绿色: 语法正确。
      • 红色: 语法错误(无法应用)。
  2. 捕获过滤器:

    • 位置: 在开始捕获之前,双击接口后弹出的“捕获选项”窗口里,有一个 Capture Filter 输入框。也可以在启动时选择接口旁边的齿轮图标设置。
    • 作用: 在数据包到达网卡时就进行过滤,只捕获符合条件的数据包到内存/文件中。效率更高,尤其在高流量环境,但设置错误会漏抓关键包。新手建议先不用或少用。
    • 语法: 与显示过滤器类似但有区别(更底层,基于 tcpdump/BPF 语法)。常用如:
      • host 192.168.1.100:捕获与 192.168.1.100 相关的所有流量。
      • port 80:捕获端口 80 的流量。
      • tcp port 80:捕获 TCP 且端口 80 的流量。
      • udp port 53:捕获 UDP 且端口 53 (DNS) 的流量。
      • net 192.168.1.0/24:捕获整个 192.168.1.x 网段的流量。
      • src host 10.0.0.1 and dst port 443:捕获源 IP 是 10.0.0.1 且目标端口是 443 的流量。

五、 常用高级操作

  1. 追踪流(Follow Stream):
    • 作用: 将同一个会话(如一个 TCP 连接)中的所有相关数据包提取出来,并按顺序重组应用层数据(如整个 HTTP 请求响应过程、Telnet 会话、FTP 传输)。非常实用!
    • 操作: 右键点击一个属于某个会话的数据包 (如 TCP 包) -> Follow -> 选择流类型 (TCP Stream, HTTP Stream, UDP Stream 等)。
    • 结果: 会弹出一个新窗口,按顺序显示该流的所有数据(客户端发送和服务器响应的数据分别用不同颜色标出)。可以在这里看到清晰的 HTTP 请求头、响应头、HTML 内容(非 HTTPS 加密时)、Telnet 命令和回显等。窗口下方可以切换显示格式(ASCII, Hex, 原始数据等)。
  2. 保存捕获文件:
    • 文件 -> 保存/文件 -> 另存为...: 将当前捕获的数据包保存为文件(默认 .pcapng 格式,兼容性好)。
    • 用途: 记录证据、后续分析、与他人共享分析。
  3. 打开捕获文件:
    • 文件 -> 打开: 打开之前保存的 .pcap, .pcapng 等格式的捕获文件进行分析。
  4. 统计信息:
    • 统计菜单: 提供了丰富的统计功能:
      • 捕获文件属性:文件基本信息。
      • 协议分级:按协议类型统计流量占比(非常直观,看哪种协议流量最大)。
      • 会话:查看所有通信会话(端点间的流量统计)。
      • 端点:查看所有通信端点(IP/MAC 地址)的流量统计。
      • HTTP:统计 HTTP 请求方法、状态码、请求/响应包等。
      • IO 图表:绘制流量随时间变化的图表(带宽利用率)。
  5. 着色规则:
    • 视图 -> 着色规则: Wireshark 默认会根据协议或特定条件给数据包列表的行添加背景色(如 TCP SYN 包是浅蓝,HTTP 包是绿色)。可以修改或添加自己的规则,使关键信息更醒目。
  6. 专家信息:
    • 分析 -> 专家信息: Wireshark 会自动检测捕获数据中的常见问题(如重复 ACK、重传、连接重置、校验和错误等),并在此窗口按等级(Error, Warn, Note...)列出。是排查网络问题的好帮手。

六、 应用场景示例

  1. 网络不通:
    • 抓包看是否有 ARP 请求/响应?
    • 尝试 ping 目标时,是否有 ICMP Request 发出?是否有 Reply 回来?没有回来的原因(目标主机无响应?中间路由丢弃?防火墙拦截?)。
  2. 网页打不开:
    • 过滤 http and ip.addr == <网站IP>,看浏览器发出的 HTTP GET 请求是否正常?服务器是否返回了响应(如 200 OK 或 404)?响应内容是什么?
    • 或者先看 DNS (dns) 解析该域名是否成功?
  3. 应用连接慢:
    • 查看 TCP 握手 (tcp.flags.syn==1, tcp.flags.ack==1) 时间是否过长?
    • 是否有大量的 TCP 重传 (tcp.analysis.retransmission)?表明网络丢包严重。
    • Follow TCP Stream 看整个交互过程哪里耗时。
  4. 排查恶意流量/安全分析:
    • 寻找可疑 IP 地址的通信。
    • 检查异常端口连接。
    • 分析未知协议。
    • 扫描是否存在敏感信息泄露 (ftp登录密码 - 如果未加密, http 请求中的密码明文等)。
  5. 学习网络协议:
    • 亲手抓包,结合数据包详情窗格,直观理解 TCP 三次握手、HTTP 请求/响应格式、DNS 查询过程等协议如何工作。

重要提示

  1. 隐私与法律: 抓取网络流量可能包含他人的敏感信息(用户名、密码 - 特别是未加密的协议如 HTTP、FTP、Telnet)。仅在你有权限的网络(如自己的电脑、测试环境或获得明确授权的网络)上进行抓包,并遵守相关法律法规和公司政策。不要窥探他人隐私。
  2. HTTPS 加密: Wireshark 默认无法解密 HTTPS 流量(看到的是加密的 TLS 应用数据)。要解密需配置浏览器和 Wireshark 使用相同的会话密钥(SSLKEYLOGFILE),这通常用于调试自己的 HTTPS 应用。普通抓包无法解密他人的 HTTPS 流量。
  3. 混杂模式: 默认开启。在有线网络中,它能捕获网段内所有主机的流量(如果交换机不是端口镜像)。在无线网络中,它通常只能捕获到发送给本机或广播/组播的流量,要捕获其他主机的无线流量需要网卡支持监控模式和特定的驱动配置(更复杂)。
  4. 端口镜像: 要分析非本机流量(如交换机上其他端口的流量),需要在交换机上配置端口镜像(SPAN / Port Mirroring),将被监控端口的流量复制一份发送到连接 Wireshark 主机的端口上。
  5. 性能: 在高带宽网络上抓包可能消耗大量 CPU 和内存,并可能丢包。设置合适的捕获过滤器、写入文件、使用性能更强的硬件可以缓解。

总结: Wireshark 的使用流程就是:选接口 -> 开始抓 -> 进行操作 -> 停止抓 -> 用显示过滤器筛选 -> 在三个窗格里仔细分析数据包详情 -> 利用跟踪流、统计等功能深入挖掘。 多加练习,结合实际网络问题,你会越来越熟练。遇到具体问题,可以更有针对性地抓包和分析。

Wireshark抓包原理及使用教程

Wireshark使用的环境大致分为两种,一种是电脑直连网络的单机环境,另外一种就是应用比较多的网络环境,即连接交换机的情况。 「单机情况」下,Wireshark直接抓取本机网卡的网络流量; 「交换机情况

2023-11-19 15:05:49

超详细的WireShark抓包使用教程

Wireshark是非常流行的网络封包分析软件,可以截取各种网络数据包,并显示数据包详细信息。

2023-06-06 09:22:35

WireShark的常用操作

WireShark是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。在网

2023-05-26 15:16:50

wireshark是什么软件 wireshark安装教程

Wireshark 是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包, 并尝试显示包的尽可能详细的情况。 你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像

资料下载 jf_94797912 2023-09-13 16:26:25

WireShark 的 IzoT 插件

WireShark 的 IzoT 插件

资料下载 杜云 2023-07-04 20:46:42

Wireshark从入门到精通之网络抓包协议分析必备

Wireshark从入门到精通之网络抓包协议分析必备

资料下载 Marshmallow007 2022-01-18 13:53:05

开源网络协议分析器WireShark软件下载

开源网络协议分析器WireShark软件下载

资料下载 佚名 2021-07-23 09:22:08

使用wireshark抓包分析TCP及UDP的资料详细说明

本文档的主要内容详细介绍的是使用wireshark抓包分析TCP及UDP的资料详细说明。

资料下载 佚名 2020-05-09 17:36:41

Wireshark几个常用技巧

经典的开源的网络抓包工具 Wireshark 相信大部分人(或者搞过网络)的人都知道它,用过的人基本了解它的强大功能。

2023-05-23 17:49:11

在Ubuntu下如何使用wireshark抓包?

Wireshark(前称Ethereal)是一个网络封包分析软件。

2023-02-22 09:26:00

Wireshark抓包和Tcpdump抓包实例分析

wireshark是开源软件,可以放心使用。可以运行在Windows和Mac OS上。对应的,linux下的抓包工具是 tcpdump。使用wireshark的人必须了解网络协议,否则就看不懂

2023-02-01 09:31:19

如何使用WireShark进行TCP三次握手

WireShark是一种非常方便的网络抓包工具,下面演示,使用WireShark来抓取TCP的三次握手过程。

2022-11-01 09:50:46

如何去使用Wireshark抓包工具呢

Wireshark是什么?怎样去安装一种Wireshark抓包工具?如何去使用Wireshark抓包工具呢?

2021-09-17 06:31:02

如何使用WireShark进行网络抓包

  如何使用WireShark进行网络抓包:准备工作、wireshark 主界面介绍、封包列表介绍

2021-04-02 07:05:06

udp发送数据,电脑本机上接受的数据和发送的数据一样,但是wireshark 监控数据完全不一样??

用udp发送数据,电脑本机上接受的数据和发送的数据一样,但是用wireshark 监控数据完全不一样??怎么处理数据,让

2019-07-22 16:52:49
7天热门专题 换一换
相关标签