如何查看Linux网卡速率和型号?
如何在Linux系统中查看网卡的速率和型号?我尝试使用`ifconfig`命令,但未显示网卡速率信息。请问有哪些可靠的方法可以准确获取网卡的型号(如Intel I350或Broadcom BCM5720)以及当前链路速率(如1Gbps或100Mbps)?是否可以使用`ethtool`、`lspci`或`ip`命令实现?这些工具在不同发行版(如CentOS、Ubuntu)中是否存在兼容性差异?希望了解标准操作流程及常见输出字段解读方法。
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
爱宝妈 2025-09-22 04:35关注一、基础认知:为什么
ifconfig无法显示网卡速率?在传统 Linux 系统中,
ifconfig是一个用于配置和查看网络接口状态的经典工具。然而,它主要关注 IP 地址、子网掩码、广播地址等 TCP/IP 层信息,并不提供物理层(PHY)链路状态的详细数据,例如速率、双工模式或自动协商状态。现代 Linux 发行版已逐步弃用
ifconfig,转而推荐使用更强大且功能丰富的ip命令(来自iproute2工具包)。即便如此,ip link show也只能显示接口是否“UP”,无法直接获取速率与硬件型号。要深入获取网卡的物理特性,必须依赖专门工具如
ethtool和lspci,它们分别从驱动层和 PCI 总线层面提取信息。二、核心工具详解:如何使用
ethtool查看链路速率ethtool是 Linux 下最权威的以太网设备诊断工具,可查询并修改网卡驱动参数。其基本语法如下:# 安装 ethtool(若未预装) # CentOS/RHEL: sudo yum install ethtool # Ubuntu/Debian: sudo apt-get install ethtool # 查看指定网卡的详细信息 sudo ethtool eth0输出示例:
Settings for eth0: Supported ports: [ TP ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Full Speed: 1000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 1 Transceiver: internal Auto-negotiation: on Current message level: 0x00000007 (7) drv probe link Link detected: yes- Speed: 显示当前链路速率(如 1000Mb/s)
- Duplex: 双工模式(Full/Half)
- Link detected: 是否检测到物理连接
- Supported link modes: 支持的速率和模式列表
三、硬件识别:利用
lspci获取网卡型号要确定网卡的具体型号(如 Intel I350 或 Broadcom BCM5720),需通过 PCI 设备枚举命令
lspci进行查询。# 列出所有网络控制器 lspci | grep -i ethernet # 输出示例: 02:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01) 03:00.0 Ethernet controller: Broadcom Inc. and subsidiaries NetXtreme BCM5720 Gigabit Ethernet PCIe (rev 01)进一步获取详细设备信息:
lspci -v -s 02:00.0字段 含义 Kernel driver in use 当前加载的驱动模块(如 igb) Kernel modules 可能使用的内核模块(如 igb, e1000e) I/O ports 设备I/O端口范围 Memory at ... 内存映射地址空间 Capabilities 支持的功能(如 MSI, PM) 四、补充手段:
ip与dmidecode的协同作用虽然
ip命令不能直接显示速率,但可用于快速定位接口名称:ip link show # 输出包含接口名、MAC地址、状态等 2: enp2s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether b8:ca:3a:ef:12:34 brd ff:ff:ff:ff:ff:ff结合
ethtool enp2s0f0即可精准定位。对于服务器平台,还可使用
dmidecode查询主板集成网卡信息:sudo dmidecode -t system sudo dmidecode -t baseboard五、跨发行版兼容性分析与标准化流程
不同 Linux 发行版对上述工具的支持情况高度一致,原因在于这些工具属于核心系统组件:
- ethtool: 所有主流发行版默认或可通过包管理器安装
- lspci: 来自
pciutils包,普遍预装 - ip: 替代 ifconfig 的标准工具,由
iproute2提供
以下是标准化操作流程图:
graph TD A[开始] --> B{获取接口名} B --> C[ip link show 或 ifconfig] C --> D[选择目标接口如 eth0/enpXsY] D --> E[执行 ethtool <interface>] E --> F[查看 Speed/Duplex/Link detected] D --> G[执行 lspci | grep -i ethernet] G --> H[定位 PCI 地址] H --> I[lspci -v -s <address>] I --> J[解析厂商与型号] J --> K[完成信息采集]六、高级技巧与常见问题排查
当出现速率异常(如本应千兆却显示 100Mbps)时,可进行以下检查:
- 确认对端设备(交换机)端口速率设置是否匹配
- 检查网线质量(Cat5e 及以上支持千兆)
- 强制设置速率(慎用):
sudo ethtool -s eth0 speed 1000 duplex full autoneg off - 查看驱动日志:
dmesg | grep igb(假设为 igb 驱动) - 更新固件或驱动版本以支持新硬件特性
某些虚拟化环境中(如 VMware、KVM),虚拟网卡可能显示为 "VMXNET3" 或 "virtio",此时物理型号不可见,需在宿主机上使用
lscpu或管理工具确认底层硬件。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报