在大多数常见的 Linux 发行版中,ethtool
命令通常是已经预装的,不需要额外手动安装软件包,但如果所在系统中没有该命令,可以通过相应的软件包管理器进行安装,例如:
Ubuntu / Debian 系统
可以使用 apt-get
命令来安装,执行以下命令:
收起
bash
sudo apt-get install ethtool
CentOS / RHEL 系统
使用 yum
命令安装,像这样:
收起
bash
sudo yum install ethtool
作用
ethtool
是用于查询及设置网络接口(网卡)相关参数和功能的实用工具,以下是一些主要作用:
查看网卡信息
- 可以查看网卡的基本硬件属性,比如网卡的速度(支持的传输速率)、双工模式(全双工、半双工)、MAC 地址、驱动程序信息等,帮助了解网卡的硬件规格和当前工作状态。
- 能够查看网卡支持的各种高级功能,例如是否支持 TCP 分段卸载(TSO)、通用接收卸载(GRO)等网络功能,这对于网络性能优化、排查网络相关问题很有帮助。
配置网卡参数
- 对网卡的工作参数进行调整,例如改变网卡的双工模式,将其从自动协商双工模式设置为手动指定的全双工或者半双工模式,以此来解决因双工模式协商不一致导致的网络连接不稳定等问题。
- 还可以设置网卡的速度,在一些特定网络环境下,手动指定网卡的传输速率,以匹配整体网络配置要求,实现稳定的网络通信。
用法
以下是一些常见的 ethtool
命令使用示例:
查看网卡基本信息
收起
bash
ethtool eth0
这里的 eth0
是网卡接口名称,不同系统网卡接口名称可能有所不同,比如也可能是 ens33
等。执行该命令后,会显示该网卡的各项信息,包括速度、双工模式、MAC 地址、支持的功能等内容,例如:
收起
bash
Settings for eth0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supported auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: off
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
Link detected: yes
查看网卡驱动信息
收起
bash
ethtool -i eth0
此命令将输出网卡对应的驱动名称、版本、固件版本等驱动相关信息,示例输出可能如下:
收起
bash
driver: e1000e
version: 3.2.6-k
firmware-version: 0.13-4
bus-info: 0000:02:00.0
设置网卡双工模式
收起
bash
ethtool -s eth0 duplex full
上述命令将网卡 eth0
的双工模式设置为全双工模式,若要设置为半双工模式,则把 full
替换为 half
即可,还可以加上 autonegotiation off
来关闭自动协商功能,例如:
收起
bash
ethtool -s eth0 duplex half autonegotiation off
设置网卡速度
收起
bash
ethtool -s eth0 speed 100
该命令将网卡 eth0
的速度设置为 100Mbps
,这里速度值可以根据网卡实际支持的速率以及具体需求进行相应的设定。
总之,ethtool
是一个在 Linux 系统下对网卡进行管理和配置的重要工具,通过灵活运用它的各种参数和功能,可以有效地对网络接口进行优化和故障排查等操作。