搞网络排查的时候,很多人打开 Wireshark 第一步就懵了——列表里十几个接口,到底点哪个?
其实不用猜,一个命令就能精准定位。这篇把判断思路、对应命令和输出解读一次性说清楚。
为什么会纠结选哪个接口
现在的电脑网卡越来越多:有线、WiFi、蓝牙、虚拟网卡、Docker 网桥、VPN 虚拟接口……Wireshark 一股脑全列出来,没经验的话挨个试也不是办法。
选错接口的后果很直接:抓半天一个包都没有,白忙活。
核心思路其实就一句话:数据包从哪张网卡进出,就抓哪张。
最快判断方法:查路由
操作系统自己最清楚数据包要走哪条路。直接问它。
Linux
ip route get 192.168.118.217
输出大概长这样:
192.168.118.217 via 192.168.1.1 dev eth0 src 192.168.1.100 uid 1000
cache
找 dev 后面那个词——eth0,就是出口网卡。
顺便提一下其他字段也有用:
via 192.168.1.1:下一跳网关地址src 192.168.1.100:你本机的源 IPcache:这条路由已经在缓存里了
macOS
route get 192.168.118.217
输出:
route to: 192.168.118.217
destination: 192.168.118.0
mask: 255.255.255.0
interface: en0
flags: <UP,DONE,CLONING,LOCAL>
recvpipe sendpipe ssthresh rtt,msec rttvar hopcount mtu expire
0 0 0 0 0 0 1500 0
找 interface: 后面的值——en0,就是要抓的网卡。
Mac 上常见的几个接口名可以记一下:
en0:通常是 WiFien1/en2:有线或雷电网卡lo0:回环接口(访问 localhost 用)utun0这类:一般是 VPN 隧道
Windows
route print 192.168.118.217
输出分好几段,耐心看:
===========================================================================
接口列表
11...00 0c 29 5e 3a 1b ......Intel(R) PRO/1000 MT Network Connection
1...........................Software Loopback Interface 1
===========================================================================
IPv4 路由表
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
192.168.118.0 255.255.255.0 在链路上 192.168.118.100 281
===========================================================================
两步走:
- 在"活动路由"里找到目标网段那行,看"接口"列的 IP——比如
192.168.118.100 - 拿着这个 IP 或者接口编号(这里是 11),去顶部"接口列表"对一下,就知道对应哪块物理网卡了
嫌麻烦的话,直接在 Wireshark 里找 IP 是 192.168.118.100 的那个接口点进去就行。
Wireshark 里怎么选
打开 Wireshark 起始页,接口列表前面有个小波形图:
- 波形在跳动:说明这张网卡有流量
- 一条平线:没流量,不用考虑
找到我们刚才确定的网卡名,双击进去就开抓了。
不确定名字的时候,也可以看接口后面挂的 IP 地址来对号入座。
拿不准的时候怎么办
方法一:看 IP 网段匹配
# Linux
ip addr
# macOS
ifconfig
看哪个网卡的 IP 和目标地址在同一个网段,大概率就是它。比如目标是 192.168.118.217,你有个网卡 IP 是 192.168.118.50,那基本就是这张了。
方法二:命令行先抓起来再说
Linux 上 tcpdump 有个 any 接口,能同时抓所有网卡的流量,不确定的时候直接上:
sudo tcpdump -i any -nn -s 0 -w /tmp/capture.pcap host 192.168.118.217
抓完把 pcap 文件拖进 Wireshark 慢慢分析,虽然文件会大一点,但绝对不会漏包。
方法三:排除法
在 Wireshark 捕获过滤器里先写上 host 192.168.118.217,然后挨个接口试,哪个能抓到包就是哪个。比较笨,但不会错。
常见接口速查表
| 接口名 | 是什么 | 什么时候会用到 |
|---|---|---|
eth0 / ens33 / enp0s3 |
物理有线网卡 | 服务器、台式机最常见 |
wlan0 / en0(Mac) |
无线网卡 | 笔记本用 WiFi 时 |
lo / lo0 / Loopback |
回环接口 | 访问 127.0.0.1 / localhost |
docker0 / br-xxx |
Docker 网桥 | 容器之间通信 |
utun0 / tun0 |
VPN 隧道 | 开了 VPN 的时候 |
vethxxx |
虚拟网卡对 | Docker 容器的虚拟接口 |
小结
选接口这事没什么技术含量,但卡新手。记住一个命令就够了:
- Linux:
ip route get <目标IP>→ 找dev - macOS:
route get <目标IP>→ 找interface: - Windows:
route print <目标IP>→ 看"接口"列的 IP
知道了出口网卡,再去 Wireshark 里选中对应的接口,抓包效率直接拉满。
