Linux下ethtool查看网卡参数技巧
时间:2026-03-29 12:18:44 399浏览 收藏
ethtool 是 Linux 下深入诊断和精细调控网卡物理层行为的利器,不仅能实时查看速率、双工、链路状态、驱动固件版本等关键信息,还可强制设置协商参数、读取底层寄存器、软复位 PHY、启停硬件卸载特性,并提供丰富的统计计数器;但其命令灵活背后暗藏兼容性陷阱、非持久化限制及生产环境风险——比如强制关闭自动协商易引发链路震荡,直接读寄存器需谨慎解读,开启TSO/GSO可能与中间网络设备冲突,而真正定位协商失败往往要对比“Supported”与“Advertised”链路模式的差异。掌握这些技巧,你才能从“网不通”的慌乱排查跃升为精准掌控网络底层的运维高手。

查网卡基本信息:用 ethtool 看实时状态
直接运行 ethtool eth0(把 eth0 换成你的真实网卡名)就能看到速率、双工模式、是否连接、驱动型号等关键信息。它不依赖内核模块加载状态,比 ifconfig 或 ip link 更贴近物理层。
常见错误现象:输出里 Link detected: no 但网线明明插着——先检查网线、交换机端口、网卡指示灯,再确认是否被 ifconfig eth0 down 过;Speed: Unknown! 通常是网卡未协商成功或驱动不支持读取。
- 用
ip -s link show eth0可以补看收发包统计,但看不到物理协商细节 ethtool -i eth0查驱动和固件版本,升级驱动前必跑这句- 部分虚拟网卡(如
veth、macvlan)不支持ethtool,会报No such device或直接退出
改网卡速率和双工:用 ethtool -s 强制协商
手动设速率只在调试或对接老设备时需要,日常应让网卡自动协商(autoneg on)。强制设置后若对端不匹配,会导致丢包、中断连接甚至链路反复 up/down。
典型命令:ethtool -s eth0 speed 1000 duplex full autoneg off。注意参数顺序无关,但 autoneg off 必须显式写上,否则 speed 和 duplex 不生效。
- 设置前先用
ethtool eth0确认当前Supports auto-negotiation是 yes,否则硬设无效 - 某些网卡(如部分 Intel I210)在
autoneg off后不支持 10Mbps 半双工,强行设会静默失败 - 配置不会持久化,重启或
ifdown/ifup后丢失,需写进/etc/network/interfaces(Debian)或nmcli(RHEL)中
看网卡驱动日志和寄存器:用 ethtool -d 和 -r
ethtool -d eth0 输出网卡内部寄存器快照,用于排查硬件级异常,比如 PHY 寄存器显示 Link status 为 0 但物理灯亮——可能 PHY 供电异常或固件卡死;ethtool -r eth0 是软复位 PHY,比 ifconfig down/up 更底层,能解决部分协商僵死问题。
风险提示:直接读寄存器需 root 权限,且不同芯片寄存器布局差异大,没文档别瞎猜字段含义;-r 可能导致短暂断连,生产环境慎用。
- 搭配
dmesg | grep -i eth0看内核是否报link down或PHY reset failed ethtool -S eth0显示驱动统计计数器(如rx_missed_errors),比寄存器更易解读,优先看这个- 部分 Realtek 网卡在
ethtool -d中会显示乱码,属驱动限制,不是你操作错
判断网卡是否支持高级特性:用 ethtool -k 和 -K
ethtool -k eth0 列出所有 offload 特性(如 tcp-segmentation-offload、rx、tx)当前开关状态;ethtool -K eth0 tso on 可开启 TCP 分段卸载。这些功能能降低 CPU 负载,但某些旧防火墙或中间设备不兼容 TSO/GSO,会导致分片异常。
容易踩的坑:开启 rx(接收端聚合)后,抓包工具(如 tcpdump)看到的包长可能大于 MTU——那是驱动在内核里合并过的,实际线缆上仍是小包。
- 虚拟化场景下,KVM/QEMU 默认关闭大部分 offload,
ethtool -k会显示全 off,这是预期行为 ethtool -K eth0 gso off关闭 GSO 后,若应用仍发大包,内核会在协议栈里分片,性能下降明显- 某些 Broadcom 网卡在启用
lro(Large Receive Offload)后,netstat -s的 TCP 统计会失真,建议关掉
真实调试时,ethtool 的输出项多、字段隐晦,最常被忽略的是 Supported link modes 和 Advertised link modes 的差异——前者是网卡能力,后者是当前通告给对端的能力,两者不一致往往就是协商失败的根源。
理论要掌握,实操不能落!以上关于《Linux下ethtool查看网卡参数技巧》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
287 收藏
-
194 收藏
-
175 收藏
-
141 收藏
-
268 收藏
-
329 收藏
-
325 收藏
-
110 收藏
-
402 收藏
-
443 收藏
-
388 收藏
-
116 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习