子网划分不直接抓包,但为精准抓包提供前提:缩小广播域、明确流量边界、隔离通信范围;需确保划得准、抓得对、分得清。

一、先确保子网划分本身是准确且可识别的
如果子网掩码配错、网络地址算偏,或者设备误配到错误子网,那后续所有抓包都可能南辕北辙。
- 确认每个子网的网络地址、广播地址和可用主机范围(例如192.168.5.0/27 → 网络地址192.168.5.0,广播地址192.168.5.31,可用地址192.168.5.1–192.168.5.30)
- 检查终端设备的IP和掩码是否落在对应子网内,用ipconfig(Windows)或ifconfig/ip a(Linux)验证
- 确认网关接口地址配置在该子网的合法主机地址范围内(严禁设为网络地址或广播地址)
二、在正确位置抓包:选对接口与视角
子网内部流量 ≠ 任意位置都能抓全。要看到真实子网内通信,需满足物理或逻辑可达性:
- 直连抓包:在目标子网某台主机上运行tcpdump或Wireshark,仅监听本机网卡(如eth0)。此时能捕获进出该主机的所有流量,包括ARP、ICMP、本子网内其他主机的TCP/UDP通信
- 镜像端口抓包:若想观察整个子网的互访(比如财务部5台电脑之间传文件),需在接入该子网的交换机上配置端口镜像(SPAN),将该VLAN/子网所有端口流量复制到镜像口,再连一台分析机抓包
- 避免“any”接口泛抓:tcpdump -i any会混入loopback、docker、虚拟网卡等非目标子网流量,干扰判断
三、用过滤器锁定子网内部通信
即使抓到了包,也要靠过滤才能聚焦。Wireshark或tcpdump支持按IP段、协议、方向精细筛选:
- Wireshark显示过滤器示例:
ip.src == 192.168.5.0/27 && ip.dst == 192.168.5.0/27(只看该子网内双向通信)
arp || icmp || (tcp.port == 80 && ip.addr == 192.168.5.0/27)(查ARP、ICMP及子网内HTTP) - tcpdump命令示例:
tcpdump -i eth0 'net 192.168.5.0/27 and not port 53'(抓该子网除DNS外的所有流量)
tcpdump -i eth0 'arp or (ip[12:4] & 0xffffff00 = 0xc0a80500)'(用十六进制匹配192.168.5.0/24,适合高级定位)
四、结合子网结构做深度分析
抓完不是终点,要用子网信息解读行为是否合理:
- 看到大量发往192.168.5.31(广播地址)的ARP请求?正常;但若看到TCP SYN发给这个地址,说明应用层逻辑异常
- 发现某主机IP是192.168.5.254,掩码却是255.255.255.0——它实际属于192.168.5.0/24,与其他/27子网设备不在同一广播域,跨子网通信必须走网关,此时应检查路由和网关ARP是否成功
- 用Wireshark的Statistics > IPv4 Statistics > All Addresses,快速统计哪些IP活跃在该子网内,排查是否存在未授权设备(如私自接的路由器分配了192.168.5.x地址)

















