ethtool 命令是一个用于查询和控制网络设备驱动程序和硬件设置的工具,尤其适用于有线以太网设备。ethtool 可以查看和更改以太网设备参数,例如速度、端口、自动协商、PCI 位置和校验和卸载。
ethtool 语法:
ethtool [选项...] 设备名
ethtool 设备名:显示指定设备的当前设置。
ethtool -i 设备名:显示指定网络设备的关联驱动程序信息。
ethtool -S 设备名:查询指定网络设备的 NIC 和驱动程序统计信息。
ethtool -p 设备名 整数:启动适配器特定的操作,以便操作员可以通过视觉方式轻松识别适配器。通常,这涉及闪烁指定网络端口上的一个或多个 LED。
ethtool -T 设备名:查询指定网络设备的时间戳参数。
ethtool -k 设备名:查询指定网络设备的协议卸载和其他功能的状态。
ethtool -t 设备名:对网络接口卡执行测试。
其中,选项 是一个或多个选项,设备名 是网络接口卡 (NIC) 的名称,例如 eth0 或 em1。
语法
ethtool [ -a | -c | -g | -i | -d | -k | -r | -S |] ethX
ethtool [-A] ethX [autoneg on|off] [rx on|off] [tx on|off]
ethtool [-C] ethX [adaptive-rx on|off] [adaptive-tx on|off] [rx-usecs N] [rx-frames N] [rx-usecs-irq N] [rx-frames-irq N] [tx-usecs N] [tx-frames N] [tx-usecs-irq N] [tx-frames-irq N] [stats-block-usecs N][pkt-rate-low N][rx-usecs-low N] [rx-frames-low N] [tx-usecs-low N] [tx-frames-lowN] [pkt-rate-high N] [rx-usecs-high N] [rx-frames-high N] [tx-usecs-high N] [tx-frames-high N] [sample-interval N]
ethtool [-G] ethX [rx N] [rx-mini N] [rx-jumbo N] [tx N]
ethtool [-e] ethX [raw on|off] [offset N] [length N]
ethtool [-E] ethX [magic N] [offset N] [value N]
ethtool [-K] ethX [rx on|off] [tx on|off] [sg on|off] [tso on|off]
ethtool [-p] ethX [N]
ethtool [-t] ethX [offline|online]
ethtool [-s] ethX [speed 10|100|1000] [duplex half|full] [autoneg on|off] [port tp|aui|bnc|mii] [phyad N] [xcvr internal|external]
[wol p|u|m|b|a|g|s|d...] [sopass xx:yy:zz:aa:bb:cc] [msglvl N]
选项
-a 查看网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。
-A 修改网卡中 接收模块RX、发送模块TX和Autonegotiate模块的状态:启动on 或 停用off。
-c display the Coalesce information of the specified ethernet card。
-C Change the Coalesce setting of the specified ethernet card。
-g Display the rx/tx ring parameter information of the specified ethernet card。
-G change the rx/tx ring setting of the specified ethernet card。
-i 显示网卡驱动的信息,如驱动的名称、版本等。
-d 显示register dump信息, 部分网卡驱动不支持该选项。
-e 显示EEPROM dump信息,部分网卡驱动不支持该选项。
-E 修改网卡EEPROM byte。
-k 显示网卡Offload参数的状态:on 或 off,包括rx-checksumming、tx-checksumming等。
-K 修改网卡Offload参数的状态。
-p 用于区别不同ethX对应网卡的物理位置,常用的方法是使网卡port上的led不断的闪;N指示了网卡闪的持续时间,以秒为单位。
-r 如果auto-negotiation模块的状态为on,则restarts auto-negotiation。
-S 显示NIC- and driver-specific 的统计参数,如网卡接收/发送的字节数、接收/发送的广播包个数等。
-t 让网卡执行自我检测,有两种模式:offline or online。
-s 修改网卡的部分配置,包括网卡速度、单工/全双工模式、mac地址等。
示例
$ ethtool em1
Settings for em1:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports 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: 2
Transceiver: internal
Auto-negotiation: on
MDI-X: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
ethtool 常用命令:
1.查看机器上网卡的速度:百兆还是千兆
ethtool eth0
2.操作完毕后,输出信息中Speed:
这一项就指示了网卡的速度。停止网卡的发送模块TX
ethtool -A tx off eth0
3.操作完毕后,可输入ethtool -a eth0
,查看tx模块是否已被停止。查看网卡eth0采用了何种驱动
ethtool -i eth0
4.操作完毕后,显示 driver: bnx2;version: 1.4.30 等信息。关闭网卡对收到的数据包的校验功能
ethtool -K eth0 rx off
5.操作完毕后,可输入ethtool –k eth0
,查看校验功能是否已被停止。如果机器上安装了两块网卡,那么eth0对应着哪块网卡呢?输入:
ethtool -p eth0 10 mii-tool eth0
操作完毕后,看哪块网卡的led灯在闪,eth0就对应着哪块网卡。mii-tool 是另一个常用的工具,可以用于配置和监控以太网卡。在mii-tool的输出结果中,如果网卡连接了,会显示 link ok。
6.查看网卡,在接收/发送数据时,有没有出错?
ethtool –S eth0
7.将千兆网卡的速度降为百兆
ethtool -s eth0 speed 100
可以使用 ethtool -h 或查看 ethtool(8) 手册页以获取更全面的命令列表和说明。
ethtool 安装:
ethtool
命令通常在大多数 Linux 发行版中预先安装。如果发现没有安装,可以使用以下步骤进行安装:
1. 确定 Linux 发行版:
确定使用的是基于 Debian 的发行版(例如 Ubuntu、Debian)还是基于 RPM 的发行版(例如 CentOS、Fedora)。
2. 使用包管理器安装:
基于 Debian 的发行版:
sudo apt-get update
sudo apt-get install ethtool
基于 RPM 的发行版:
yum update
yum install ethtool
3. 验证安装:
安装完成后,可以运行以下命令来验证
ethtool
是否已成功安装:
ethtool --version
参考: