Wireshark:抓包看清线上到底传了什么

2026-08-25
Wireshark 又称 网络抓包工具、协议分析器、网络嗅探工具
分类
网络诊断
平台
Windows、macOS、Linux
许可证
免费开源(GPLv2)
是否开源
开源
收费模式
免费
适用工序
中控与协议、系统集成与交付、运维与商业
支持协议
TCP、UDP、HTTP、Modbus TCP
选型结论:中控发指令设备没反应时,Wireshark 能在线路这一层给出唯一确定的答案——指令到底发没发出去、设备到底收没收到;但抓包点插错了地方等于白抓,满屏报文不知道看什么等于白看,这两道门槛过不去,工具再权威也帮不上忙。
官方下载
获取最新版(具体版本号以官网页面为准)
前往官网下载 ↗

它到底解决什么

展厅现场"控制没反应"这句话背后,其实压着三种完全不同的可能:中控压根没把指令发出去,指令发出去了但没到设备网口,或者到了设备网口但设备不理。这三种情况处置方式天差地别——第一种该查中控程序,第二种该查网络链路,第三种该查设备本身或协议对不对——但光靠现象猜,永远猜不准,只会变成中控集成商、设备厂家、网络布线方三方互相甩锅。

Wireshark 官方对自己的定位很直接:这是一款网络协议分析器,能把一台机器网口上进出的每一个数据包截下来,摊开给你看。它不猜、不推断,只是把线路上真实发生的事情原样记下来——发没发、到没到、回没回,这三件事一旦有了抓包记录,就不再是各说各话,而是摆在桌面上的事实。这也是它区别于大多数排障工具的地方:像 PingPlotter 测的是链路通不通、快不快,回答的是"路好不好走";Wireshark 看的是路上到底跑了什么、跑没跑到,回答的是"东西到底送没送到"。两者不是竞争关系,是同一类问题的两个不同切面。

展厅哪道工序会用到它

中控发指令设备没反应,三方在扯皮。 中控集成商说指令肯定发了,设备厂家说从没收到过这条指令,布线方说线是通的。挂上 Wireshark 在中控主机或设备这一侧抓一段,指令包发没发、发了几次、设备回没回应,报文里写得清清楚楚,不用听各方各执一词。

接手他人做的老项目,链路细节不明。 设备用的什么协议、什么端口、地址怎么编,前任集成商没留文档,人也联系不上。抓一段线上实际跑的数据,比翻半天说明书更快知道现在到底在传什么。

偶发响应超时或丢包,其它工具查不出原因。 有的设备十次里有一两次不响应,间歇性问题最难查。持续抓一段时间,把发生超时那一刻的报文调出来看,往往能看出是重传次数异常、还是响应压根没发出来。

验收阶段需要一份拿得出手的记录。 客户或监理要求提供"链路确实联通、指令确实送达"的证据,一份带时间戳的抓包记录比一句"我们测过没问题"有说服力得多。

怎么获取,该下哪个包

只认官网这一个渠道。抓包软件需要装一个能直接读取网卡底层数据的驱动,运行时权限也比普通软件高,来路不明的安装包风险不成比例。

官方按平台分发,Windows、macOS、Linux(含直接发行版仓库和源码)都有对应的安装方式,具体版本号页面上会实时更新,不在这里罗列,以下载页当时展示的为准。

有一件事值得单独说清楚:Windows 版安装包会连带装上一个底层抓包驱动(负责让系统把网卡收到的原始数据交给上层软件读取),这是抓包这件事能成立的前提,不装它软件打开后网卡列表是空的,什么都抓不到。因此走官方安装包一路装完,不要图省事只复制一个可执行文件过去用——那样底层驱动没跟着装,装了也是摆设。macOS 和 Linux 上通常依赖系统自带或另外安装的等效抓包库,具体以官网安装说明为准。

最短可用路径

  1. 从官网下载页选对应系统的安装包,装上,一路默认选项即可(Windows 上默认会连带装好底层抓包驱动,别跳过)。
  2. 打开软件,会看到一个"欢迎页",列出这台机器上可用的网络接口,每个接口旁边有一条随流量跳动的小图,能大致看出这个口现在有没有数据在跑。
  3. 选对接口是这一步最容易出错的地方,选错了后面全白搭,下一节详细说怎么选。
  4. 选中接口,点开始,报文开始一条一条往下滚。
  5. 用过滤框缩小范围(下一节讲怎么用),找到你关心的那几条指令包,看它发没发、有没有回应。
  6. 需要留证据的话,把当前的过滤结果导出保存成文件,或者直接截图。

第 3 步和第 5 步是全篇真正的重点,接下来展开讲。

展厅工程里真正要弄明白的那几件事

这一节不讲底层怎么实现的,讲的是现场和售前真正用得上的判断。

为什么插在交换机口上却什么都抓不到

这是现场最常见的困惑:软件装好了,网卡也选对了,点开始却一个包都没有,或者只看到自己这台机器发出去的东西,看不到旁边两台设备之间的通信。

原因跟以前的老式集线器和现在的交换机工作方式不一样有关。老式集线器收到一个包会原样转发给所有口,谁插在上面都能看到所有流量;现在展厅里用的交换机不是这样——它会记住每个口连的设备地址,之后只把发给这台设备的流量转发到对应的口上,其它流量根本不会经过你插的那个口。也就是说,就算把网卡设成"能收所有包"的模式(业内叫混杂模式),只要交换机压根没把别人的流量转发到你这个口上,网卡也无从收起。

想看到别人之间的流量,通常有三条路:

  • 直接在目标设备自己的机器上装。 最简单,缺点是只能看这台机器自己收发的,看不到它跟第三方之间隔了几跳之外的情况——但展厅排查中控和某台设备的通信问题,这条往往就够用。
  • 用交换机的"镜像口"。 稍微上点档次的交换机(业内也叫网管型交换机)都带这个功能,官方叫法不统一,常见的说法有端口镜像、SPAN。设置之后,交换机会把某个口的流量复制一份,同时发到你指定的另一个口上,插上 Wireshark 就能看到原本看不到的那部分流量。这条路需要有交换机的管理权限,现场经常卡在"这台交换机是甲方物业的,没人给权限"。
  • 加一个网络分线器(业内叫 Tap)。 接在两台设备之间的链路中间,不改变原有连接,专门吐出一份镜像流量给抓包设备。适合那种谁都不想动交换机配置、又必须临时接进去看一眼的场合。

这是整篇最容易被现场人员跳过的一步:先想清楚"这根线插在哪儿能看到我想看的东西",再谈装什么软件、怎么过滤。 插错了地方,后面的一切操作都是在一个空文件上打转。

过滤怎么用:思路比语法重要

刚开始抓包最直观的冲击是报文太多,几秒钟就能滚出几千条,中控发的那一条指令淹没在里面根本找不到。这时候要用的就是过滤,官方文档把它分成两种,搞清楚这两种的分工比记住具体写法重要得多:

  • 抓包过滤:在开始抓包之前设定,决定这次到底往文件里写哪些包,没匹配上的包压根不会被记下来。适合提前就知道只想看某个方向流量的场合。
  • 显示过滤:抓完之后(或者正在抓的过程中)在软件上方那个输入框里填,作用只是把不想看的暂时藏起来,文件里的原始数据一条都没少,随时可以清空过滤重新看全部。展厅现场排障几乎全用这一种,因为通常是先抓一段再回头找问题。

不用去记一整套过滤语法,下面几条思路现场直接照抄,填进显示过滤框回车就生效:

  • 只看某台设备的流量:把这台设备的 IP 地址填进过滤框,比如 ip.addr == 192.168.1.20,回车后只剩下这台设备发出和收到的包,其余全部先藏起来。
  • 只看某种协议的流量:直接把协议的名字打进过滤框,比如输入 modbus 就只留 Modbus TCP 的通信,输入 http 就只留网页类流量——协议本身的报文结构不在这里展开,Modbus 详细内容看 Modbus 协议详解
  • 只看某个端口的流量:比如 Modbus TCP 惯用 502 端口,填 tcp.port == 502 就只留走这个端口的通信,适合协议名没匹配上、但知道端口号的场合。

过滤框输入的内容如果变红,多半是名字或写法有出入,先从最简单的一个协议名开始试,能通再往上叠条件,比一上来就想拼一条复杂过滤划算得多。

把一段对话拼回人话看:跟踪流

单条报文看着都是些字段和数值,不好直接判断"这一来一回到底在说什么"。软件提供一个叫"跟踪流"(官方叫 Follow Stream)的功能:在报文列表里选中任意一条属于这段通信的包,右键选跟踪,软件会把这一整段来回通信按发生顺序重新拼起来,显示成类似聊天记录的样子,一方发的内容和另一方回的内容用不同颜色区分。

这个功能对现场最大的用处是省去自己一条一条翻译报文的功夫——中控发的指令和设备的应答被完整拼在一起,谁先说的、说了什么、对方怎么回的,一眼就能看全流程,而不是在几十条零散报文里来回对照序号。

专家信息:一个用来找起点的红绿灯,不是结论

软件会自动扫描抓到的报文,把里面看着不太正常的地方(比如反复重传、连接被异常中断、格式不完整的包)挑出来,按严重程度分级标出来,级别从轻到重大致是:常规提示、值得注意、警告、严重错误。

官方对这个功能的定性说得很明确:它只是排查的起点,不是结论。 出现了标记不代表这里一定有问题,没出现标记也不代表这段通信完全正常——具体要不要当回事,得结合现场实际情况判断。现场用法是:先扫一眼有没有大片警告或错误级别的标记,如果时间点跟"设备没反应"发生的那一刻对得上,这就是一个值得深挖的起点;对不上,就说明问题大概率不在这个层面。

它只回答"传了什么",回答不了"为什么设备不认"

这条边界必须说清楚,不然容易对这个工具抱过高期待。Wireshark 能确定的是线路层面的三件事:指令包发没发出去、有没有到设备网口、设备有没有回应。这三件事一旦确定,责任范围立刻能划清一大半。 但如果指令确实发出去了、设备也确实收到了,可设备就是不执行——协议格式对不对、地址编号对不对、设备固件本身有没有 bug,这些内容层面的问题不归它管,它只是把原始字节如实摆出来。

能不能把这些字节直接读成有意义的内容,还取决于这条协议有没有对应的解析规则。像 Modbus TCP 这类被广泛支持的协议,软件能直接把报文翻译成寄存器地址、数值这些看得懂的字段;但展厅里大量设备走的是投影机、大屏这类厂家自定义的串口指令(协议本身讲解见 RS232/RS485 详解),如果这类指令是通过网络透传发出去的,Wireshark 通常只能显示成一段裸数据,具体每个字节代表什么,还是得对照设备厂家的协议文档自己翻译。分不清 TCP、UDP 这类基础概念的,可以先看 TCP/UDP 协议详解 打底。

也正因为如此,它跟站内 MThings 是两种互补的工具,不是二选一:MThings 是主动发指令去问一台设备,看它答不答、答的对不对;Wireshark 是被动看线上实际传了什么,不主动发任何东西。现场常见的顺序是先用 Wireshark 确认中控发的指令到底有没有真的送到设备网口——如果确认发了但设备没回应,再用 MThings 这类主动工具换一个"身份"重新问一遍,就能进一步判断问题是出在总线/设备侧,还是原来那套中控程序本身。

踩坑与排错清单

现象 原因 处置
网卡选对了,点开始却一个包都没有 插在普通交换机的空口上,交换机根本不会把别人的流量转发到这个口 直接在目标设备本机抓,或找交换机的镜像口,或加一个网络分线器
能看到自己这台机器发的包,看不到另外两台设备之间的通信 同上,交换机把不相关的流量隔离开了 同上,需要用镜像口或分线器才能看到第三方之间的流量
报文一直在滚,找不到中控发的那条指令 没用过滤,或者把抓包过滤和显示过滤这两个输入框弄混了 先按协议名或对方 IP 做一次显示过滤,缩小范围再找
过滤框输入内容后变红、没生效 协议名或字段名写法有出入 从一个最简单的协议名开始试,能通再往上加条件
Windows 上打开软件,接口列表是空的 装的时候底层抓包驱动没跟着装上,或者没装成功 重新走官方安装包完整装一遍,不要只拷贝一个可执行文件
某段协议的内容全是"未知"或一串裸字节看不懂 这条协议没有对应的解析规则,软件不认识它的字段结构 对照设备厂家的协议文档手工翻译,别指望软件自动翻译出来
在目标机器上抓包,提示权限不足或直接抓不到东西 抓包需要比普通操作更高的系统权限 用管理员权限运行;确认这台机器允许安装抓包驱动
挂机抓了很久,文件巨大,软件卡死打不开 没设范围就长时间不间断抓包,文件铺得太大 抓包时提前用过滤缩小范围,或设置按大小/时间自动分卷
抓到报文显示"到了",设备却还是不执行 线路层面没问题,问题在协议内容或设备本身 这已经超出抓包能回答的范围,转去核对协议参数或设备状态

什么时候别用它

展项本身的程序问题,它帮不上忙。 播放器崩溃、内容加载失败、逻辑报错,这些都是应用层的事,网络包全部正常,只能说明网络没问题,不能证明程序没问题。这种情况该去查程序日志,不是死磕抓包文件。

现场没有镜像口、没有交换机权限、又赶工期的场合,别硬装。 前面讲过,插在普通交换机的空口上大概率什么都看不到,装了软件也是白装。这时候该先想办法拿到交换机管理权限,或者干脆换成直接在目标设备本机抓——不是工具不行,是没找对能看到数据的位置。

只想确认"网络通不通"图省事,别小题大做。 系统自带的 ping 已经能回答这个一次性问题,没必要为此装一个专门用来逐包分析的工具。

走的协议本身认不出来,别指望它帮你翻译内容。 抓包能证明"指令确实传过去了",证明不了"传的内容对不对、设备为什么不理"。协议内容层面的问题,还是要回到协议文档和设备本身。

甲方内网明令禁止装抓包/嗅探类软件的项目,别硬装。 政务、金融类展厅项目对这类工具往往卡得很严,需要先走安全审批,这是流程问题,不是技术问题,投标前先跟甲方确认清楚能不能用。

与本站的衔接

把一次性排查变成持续可见

诊断工具回答的是「此刻通不通」。而网络会缓慢劣化——设备变更、流量增长、线路老化,这些不会有任何提示,只会让某天的故障看起来毫无征兆。

企服君的运维体系把连通性与设备状态纳入持续采集,让劣化趋势可见而不是等到出问题才查。集成商如果想让运维有据可依,见集成商年费方案

出处

本文所述软件功能、安装方式与官方术语均来自上述官方材料;文中涉及的展厅工序判断、抓包点位选择与故障定位方法属于工程经验总结,具体项目请以现场实际情况和官网最新信息为准。

同类可替代

做展厅项目,软件授权不必每次重走采购

企服君有九款自研展厅软件。集成商年费一次备好全年额度,接到项目直接激活;已激活项目的授权永久有效。

留言讨论

评论发布后会被人工复核,违规内容将被删除。

    还没有人评论,来说说你的看法

    如果发表没有反应,可以前往联系我们告诉我们。

    这个页面有问题?

    提交时会附带当前页面地址和浏览器信息,帮助我们定位问题。不填联系方式即为匿名。