查看当前网口速率与状态
要了解网口的实时工作状态,我们可以使用多种命令行工具。ethtool
是最常用且功能最强大的一个。
使用 ethtool
命令
ethtool
可以查询并控制网络驱动程序和硬件设置,如果系统中尚未安装,可以通过 yum
或 dnf
进行安装:
sudo yum install ethtool # 或者在 CentOS 8/RHEL 8 及更高版本上 sudo dnf install ethtool
安装完成后,使用以下命令查看指定网口(eth0
)的详细信息:
ethtool eth0
输出结果中,重点关注以下几个字段:
Speed:
:显示当前连接速率,如1000Mb/s
。Duplex:
:显示双工模式,Full
表示全双工,Half
表示半双工。Link detected:
:显示物理链路是否连通,yes
表示已连接。
其他查看方法
除了 ethtool
,还有其他方式可以获取速率信息:
mii-tool
:一个较老的工具,用法简单,但可能不支持所有新型网卡。sudo mii-tool eth0
/sys
虚拟文件系统:这是最直接的方式,无需额外工具。cat /sys/class/net/eth0/speed
该命令会直接返回一个数字,如
1000
,代表速率,如果返回-1
,通常表示链路未连通。
修改网口速率与双工模式
在某些特定场景下,例如与老旧设备兼容或进行网络测试,我们可能需要手动指定网口的速率和双工模式。
临时修改
使用 ethtool
的 -s
参数可以临时设置网口参数,但服务器重启后会失效。
# 将 eth0 网口设置为 100Mbps 全双工模式,并关闭自动协商 sudo ethtool -s eth0 speed 100 duplex full autoneg off
永久修改
为了让设置在重启后依然生效,需要将配置写入网络配置文件中。
对于 CentOS 7 及更早版本:
编辑网口配置文件,如/etc/sysconfig/network-scripts/ifcfg-eth0
,添加ETHTOOL_OPTS
变量。BOOTPROTO=static ... ETHTOOL_OPTS="speed 100 duplex full autoneg off"
保存文件后,重启网络服务使配置生效:
sudo systemctl restart network
对于 CentOS 8 / RHEL 8 及更高版本:
系统默认使用NetworkManager
,推荐使用nmcli
命令进行修改。# 查看连接名称 nmcli connection show # 修改连接(假设连接名为 'Wired connection 1')的速率和双工模式 sudo nmcli connection modify 'Wired connection 1' 802-3-ethernet.speed 100 802-3-ethernet.duplex full # 重新激活连接使配置生效 sudo nmcli connection up 'Wired connection 1'
常见问题与排查思路
当网口速率未达到预期时,可以按照以下思路进行排查。
现象 | 可能原因 | 排查方法 |
---|---|---|
千兆网卡协商到100Mbps | 网线质量不佳(非超五类或六类线) 交换机端口限制 网卡驱动问题 | 更换高质量网线 检查交换机端口配置 更新或重装网卡驱动 |
链路时断时续,速率不稳定 | 网线接触不良 自动协商不匹配 | 重新插拔网线或更换端口 将服务器和交换机端口都设置为指定速率和全双工 |
ethtool 显示 Link detected: no | 网线未连接或损坏 对端设备未开机 网卡硬件故障 | 检查物理连接 确认对端设备状态 更换网卡插槽或使用 lspci 查看硬件状态 |
在排查时,应遵循“先物理后逻辑,先简单后复杂”的原则,首先确保网线、端口等物理层组件正常,再检查驱动和系统配置。
相关问答FAQs
问题1:为什么我的千兆网卡在CentOS中只能跑到100Mbps?
解答: 这是一个非常常见的问题,通常由以下几个原因导致:
- 物理线路问题:最常见的原因是使用了质量较差或标准不够的网线(如五类线),千兆网络至少需要超五类(Cat 5e)或六类(Cat 6)网线。
- 对端设备限制:连接的交换机、路由器端口可能被强制设置为100Mbps,或者其本身不支持千兆。
- 自动协商失败:服务器网卡与交换机端口的自动协商参数不匹配,导致协商降级,可以尝试将两端都设置为强制1000Mbps全双工模式进行测试。
- 驱动程序问题:过时或不兼容的网卡驱动也可能导致性能问题,可以尝试更新到最新的官方驱动。
问题2:ethtool
和 mii-tool
有什么区别,我应该优先使用哪个?
解答: ethtool
和 mii-tool
都是用于查询和配置网络介质独立接口(MII)状态的工具,但它们有显著区别:
- 功能与时代:
mii-tool
是一个较老的工具,功能相对简单,主要用于基本的速率和双工查看,而ethtool
是现代Linux发行版中推荐使用的标准工具,它功能更强大,不仅能查看速率,还能提供详细的网卡寄存器信息、驱动版本、支持的功能特性等,并且支持更丰富的配置选项。 - 兼容性:许多现代的网卡驱动可能不再支持
mii-tool
,但几乎都支持ethtool
。
在所有情况下,都应mii-tool
。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复