Linux查看网卡电口与光口信息的方法
时间:2026-06-20 11:44
通过ethtool查看Port字段(TP为电口,FIBRE为光口)及Supportedlinkmodes即可准确判断介质类型;执行mii-tool命令时若报错则提示为光口;通过检查 sys class net 下device sfp目录是否存在即可确认光口;最后用ethtool-p闪烁对应接口进行物理定位。上述四种方法简洁有效,可快速区分光口与电口。
先说一个很实际的场景:当你登录一台服务器,想确认某块网卡插的是电口还是光口时,用 `ifconfig` 或 `ip a` 看半天往往没有结果——这些命令只处理逻辑接口和 IP 地址,根本不会告诉你下面连接的是什么介质。要了解真实情况,必须借助底层工具检测 PHY 层的能力,或直接查阅硬件信息。
### 用 `ethtool` 查看端口类型与协商状态
要说最可靠的方法,非 `ethtool` 莫属。它能读取网卡驱动上报的物理层信息,包括支持的速率、双工能力,以及两个关键字段:`Port` 和 `Supported link modes`。
执行很简单:
`ethtool eth0`(把 `eth0` 替换为你实际的接口名即可)
在输出中,重点看这两行:
- **`Port:`**
如果该字段显示为 `TP`(Twisted Pair),基本可以判定是电口;若出现 `FIBRE` 或 `AUI`,则大概率是光口。
- **`Supported link modes:`**
这里会列出类似 `1000baseX/Full`、`10000baseSR/Full` 的条目,带 `X`、`SR`、`LR` 等后缀的通常表示支持光纤传输。而 `1000baseT/Full` 则是典型的千兆电口标准。
不过需要注意:`Port` 字段并非所有驱动都会如实填写。一些 Realtek 或老旧芯片的网卡,该字段可能是空白,甚至直接显示 `Unknown`。遇到这种情况,就需要结合其他方法进一步判断。
### 用 `mii-tool` 区分电口(但对光口无效)
`mii-tool` 实际上只适用于基于 MII/GMII 接口的电口网卡,它依赖与 PHY 寄存器的直接通信。
运行命令:`mii-tool eth4`
如果网卡是电口且有连接,你会看到类似这样的输出:
```
mii-tool eth4
eth4: negotiated 1000baseT-FD, link ok
```
但如果它报错,别急着跳过——错误信息本身就能提供重要线索:
- `SIOCGMIIPHY on 'eth4' failed: No such device`
这个比较简单:要么接口名写错了,要么驱动没有加载。
- `SIOCGMIIPHY on 'eth6' failed: Operation not supported`
这个才值得关注,它通常意味着该接口是光口,或使用了非 MII 类型的 PHY(比如 SFP+ 模块)。
你可以这样理解:电口网卡几乎不会出现 `Operation not supported`,而大多数光口(特别是带 SFP 插槽的)都会返回这个提示。
### 查 `/sys/class/net/` 下的硬件标识
内核在 sysfs 中隐藏了一些硬件信息,路径在 `/sys/class/net/
/device/`。
快速确认的方法:
1. 先检查它是否为 PCI 设备:
`ls /sys/class/net/eth0/device`
如果提示“No such file”,那很可能是 USB 网卡或虚拟网卡,这部分方法就不适用了。
2. 查看厂商和设备型号:
`cat /sys/class/net/eth0/device/vendor`
`cat /sys/class/net/eth0/device/device`
记下这两个 ID,去 pcidatabase.com 查一下,看看是否出现“Fiber”、“SFP”、“Optical”等关键词。
3. 直接检查 SFP 目录是否存在:
`ls /sys/class/net/eth0/device/sfp/`
如果有内容返回——比如 `eeprom`、`id`、`vendor` 这类文件——那就是铁证,这个口一定是光口,并且支持热插拔光模块。
例如执行 `ls /sys/class/net/ens1f0/device/sfp/`,返回了上述文件,那就无需再怀疑了。
### 物理确认 + `ethtool -p` 辅助定位
在实际操作中,还有一个很让人头疼的情况:服务器背板上网口排列得密密麻麻,光看型号名根本不知道哪个对应 `eth1`。这时不要瞎猜,用 `ethtool -p` 命令直接让对应网口的灯快速闪烁,一步到位:
`ethtool -p eth1`
默认闪烁 2 秒,足够你走到机箱后面确认了。
还有一个容易被忽视的要点:同一张多口网卡,不同端口可能并非全是同一种介质类型——某些厂商会做 2 电口 + 2 光口的混合板卡。所以务必对每个接口单独执行命令,不能查完一个就下结论。
