ethtool
是用于查询和控制网络设备驱动程序及硬件设置的工具,尤其适用于有线以太网设备。它支持查看和修改网络接口的链路参数、校验和卸载、中断合并、环形缓冲区等配置。
基本语法
ethtool [选项] 设备名
选项
基础选项
选项 | 描述 |
---|---|
-h , --help | 显示帮助信息并退出。 |
--version | 显示版本信息并退出。 |
设备名 | 无选项时,显示设备当前配置(如速度、双工模式、校验和卸载状态等)。 |
链路与基础配置
选项 | 描述 |
---|---|
-a , --show-pause | 显示设备的暂停(pause)参数(如自动协商、接收/发送暂停)。 |
-A , --pause | 修改暂停参数:autoneg on/off (自动协商)rx on/off (接收暂停)tx on/off (发送暂停)。 |
-r , --negotiate | 重新启动设备的自动协商(需 autoneg on )。 |
-s , --change | 修改设备参数:speed N (设置速率,如 1000 )duplex half/full (双工模式)autoneg on/off 等。 |
中断合并与环形缓冲区
选项 | 描述 |
---|---|
-c , --show-coalesce | 显示中断合并(coalescing)参数(如延迟时间、帧数等)。 |
-C , --coalesce | 修改中断合并参数(如 adaptive-rx on/off ,rx-usecs N 等)。 |
-g , --show-ring | 显示设备的环形缓冲区(ring)参数(如 RX/TX 环大小)。 |
-G , --set-ring | 修改环形缓冲区大小:rx N (RX 环大小)tx N (TX 环大小)。 |
驱动与硬件信息
选项 | 描述 |
---|---|
-i , --driver | 显示设备驱动信息(如驱动名称、版本、firmware 版本等)。 |
-d , --register-dump | 获取并打印设备寄存器的转储信息(raw on/off 控制原始数据输出)。 |
-e , --eeprom-dump | 获取并打印设备 EEPROM 内容(offset 和 length 指定区域)。 |
-E , --change-eeprom | 修改 EEPROM 内容(需指定 magic 密钥和 offset /value )。 |
校验和卸载与特性控制
选项 | 描述 |
---|---|
-k , --show-features | 显示协议卸载(offload)和其他特性状态(如 TCP 分段、RX 校验和等)。 |
-K , --features | 修改卸载特性:rx on/off (RX 校验和卸载)tx on/off (TX 校验和卸载)tso on/off (TCP 分段卸载)gro on/off (通用接收聚合)等。 |
统计与测试
选项 | 描述 |
---|---|
-S , --statistics | 显示设备的统计信息(如包数、错误数、中断次数等)。 |
--phy-statistics | 显示物理层(PHY)的统计信息。 |
-t , --test | 执行设备自检:offline (完整测试)online (在线测试)external_lb (外置环回测试)。 |
其他功能
选项 | 描述 |
---|---|
-p , --identify | 通过 LED 等方式标识设备(N 指定持续时间,单位秒)。 |
-P , --show-permaddr | 显示设备的永久 MAC 地址。 |
-f , --flash | 通过固件文件更新设备固件。 |
-l , --show-channels | 显示多队列通道配置(如 RX/TX 通道数)。 |
-L , --set-channels | 修改多队列通道数量(如 rx N 、tx N )。 |
示例
基本用法
-
查看设备基本信息:
ethtool 网络设备名
-
显示帮助信息:
ethtool -h ethtool --help
-
显示版本信息:
ethtool --version
常用功能选项
暂停帧控制
-
查看暂停帧设置:
ethtool -a 网络设备名 ethtool --show-pause 网络设备名
-
修改暂停帧设置:
ethtool -A 网络设备名 [autoneg on|off] [rx on|off] [tx on|off]
中断合并(Coalescing)设置
-
查看当前设置:
ethtool -c 网络设备名
-
修改设置:
ethtool -C 网络设备名 [参数...]
环形缓冲区(Ring Buffer)设置
-
查看当前环形缓冲区大小:
ethtool -g 网络设备名
-
修改环形缓冲区大小:
ethtool -G 网络设备名 [rx N] [rx-mini N] [rx-jumbo N] [tx N]
驱动信息
ethtool -i 网络设备名
寄存器转储
ethtool -d 网络设备名 [raw on|off] [hex on|off] [file 文件名]
EEPROM操作
-
查看EEPROM内容:
ethtool -e 网络设备名 [raw on|off] [offset N] [length N]
-
修改EEPROM内容:
ethtool -E 网络设备名 [magic N] [offset N] [length N] [value N]
卸载(Offload)功能
-
查看当前卸载设置:
ethtool -k 网络设备名
-
修改卸载设置:
ethtool -K 网络设备名 功能名 on|off [...]
物理标识
ethtool -p 网络设备名 [持续时间(秒)]
永久MAC地址
ethtool -P 网络设备名
重新协商
ethtool -r 网络设备名
统计信息
ethtool -S 网络设备名
测试功能
ethtool -t 网络设备名 [offline|online|external_lb]
速度/双工设置
ethtool -s 网络设备名 [speed N] [duplex half|full] [autoneg on|off] [...]
网络流分类
-
查看流分类规则:
ethtool -n 网络设备名 [rx-flow-hash 类型]
-
配置流分类规则:
ethtool -N 网络设备名 [配置参数...]
固件操作
-
获取固件转储:
ethtool -w 网络设备名 [data 文件名]
-
设置固件转储标志:
ethtool -W 网络设备名 N
时间戳功能
ethtool -T 网络设备名
RSS(接收端扩展)设置
-
查看当前RSS设置:
ethtool -x 网络设备名
-
配置RSS:
ethtool -X 网络设备名 [配置参数...]
固件更新
ethtool -f 网络设备名 固件文件 [区域号]
通道设置
-
查看当前通道配置:
ethtool -l 网络设备名
-
修改通道配置:
ethtool -L 网络设备名 [rx N] [tx N] [other N] [combined N]
模块信息
ethtool -m 网络设备名 [raw on|off] [hex on|off] [offset N] [length N]
私有标志
-
查看私有标志:
ethtool --show-priv-flags 网络设备名
-
设置私有标志:
ethtool --set-priv-flags 网络设备名 标志名 on|off [...]
节能以太网(EEE)设置
-
查看EEE设置:
ethtool --show-eee 网络设备名
-
修改EEE设置:
ethtool --set-eee 网络设备名 [eee on|off] [tx-lpi on|off] [...]
前向纠错(FEC)设置
-
查看FEC设置:
ethtool --show-fec 网络设备名
-
修改FEC设置:
ethtool --set-fec 网络设备名 [encoding auto|off|rs|baser]
相关文件
/proc/net/dev
- 网络设备统计信息/sys/class/net/
- 网络设备信息目录/etc/ethtool/
- 某些发行版中的ethtool配置文件目录