wireshark局域网抓包
局域网里跑着什么东西,域网Wireshark 打开一看就清楚了。抓包这不是域网比喻。你选对网卡,抓包点一下那个蓝色鲨鱼鳍图标,域网几秒钟内屏幕上就会滚出成百上千条数据包。抓包ARP 广播、域网TCP 握手、抓包DNS 查询、域网TLS 协商,抓包全在眼皮底下。域网
我第一次在办公室抓包,抓包是域网想搞清楚为什么打印机偶尔连不上。结果发现每台 Windows 机器都在疯狂发 LLMNR 查询,抓包问"谁是域网打印机"。没人应答的时候,它们就一遍遍重试,间隔越来越长。抓了五分钟,光这类包就攒了两千多条。打印机本身倒是安静得很,问题出在某台机器改了 IP 之后没更新 ARP 缓存。
选网卡这件事比想象中重要
Wireshark 启动后第一件事是让你选接口。有线网卡、无线网卡、虚拟网卡、Loopback,列表一长串。选错了,抓到的全是本机回环流量,跟局域网没半点关系。无线网卡还有个坑:默认模式下你只能看到跟自己相关的帧,因为 802.11 是共享介质但网卡做了过滤。想抓全网的无线包,得进监控模式,Linux 上用 airmon-ng 切一下就行,Windows 上麻烦得多。
交换机环境里还有个更隐蔽的问题。你插在交换机某个口上,默认只能看到广播包和发给自己的单播包。其他机器之间的单播流量,交换机根本不会转发给你。这时候要么做端口镜像,要么用 ARP 欺骗把流量引过来。前者是网管的正规做法,后者……你知道就行。
过滤器是核心技能
抓包不过滤,等于往杯子里倒整条河的水。Wireshark 有两套过滤器,搞混的人不在少数。
抓包过滤器(BPF 语法)在抓之前生效,写在那个小输入框里。比如 host 192.168.1.100 and tcp port 80,只抓跟这台机器 80 端口的 TCP 流量。写错了不报错,只是什么都抓不到。
显示过滤器在抓完之后用,语法完全不同。比如 http.request.method == "GET" 或者 tcp.flags.syn == 1 and tcp.flags.ack == 0。这个更常用,因为抓的时候你可能不确定要找什么,先全抓下来再慢慢筛。
我自己的习惯是抓的时候只限定网段,比如 net 192.168.1.0/24,把显示过滤器留到分析阶段用。这样不会因为抓包过滤器写得太窄而漏掉关键信息。
几个真实场景
有人抱怨网速慢。抓包一看,某台机器在跑 BitTorrent,DHT 节点查询把上行带宽占满了。显示过滤器敲 udp.port == 6881,一目了然。
还有一次是内网服务时通时不通。抓包发现 TCP 三次握手正常,但服务端返回 RST 的时机很怪。顺着流追踪(Follow TCP Stream)一看,服务端在收到请求后 30 秒准时断开,跟代码里的超时设置完全吻合。问题不在网络,在应用层。
DNS 问题也常见。显示过滤器输入 dns.flags.rcode != 0,所有失败的查询立刻标红。NXDOMAIN、SERVFAIL、超时,分类清楚得很。
别忽略统计功能
Wireshark 菜单里那个"统计"选项,用的人不多,但有时候比逐包看快得多。"会话"能列出所有通信对,按流量排序,谁在跟谁说话、说了多少,一清二楚。"协议分级"告诉你当前捕获文件里各协议占比,ARP 突然占了 40% 那肯定有问题。
还有"专家信息",Wireshark 自动标记的异常事件。重传、乱序、零窗口,它都帮你标好了。当然不是每个标记都是真问题,但至少是个起点。
抓包这件事,工具本身不难,难的是知道该看什么。每次打开 Wireshark 之前,先想清楚你要回答什么问题。带着问题去抓,比漫无目的地翻数据包效率高十倍。
(责任编辑:时尚)














