ethtools命令详解

本文详细介绍了ethtool命令的使用方法,包括查询和设置网卡参数的各种选项。从基本设置查询到驱动信息、注册信息、收发包统计,再到工作方式的设置,提供了丰富的实例演示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 概述
 
ethtool 是用于查询及设置网卡参数的命令。
 
2 命令详解
 
2.1 命令格式

(1) 语法

    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-low N] [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]

 
(2) 描述

ethX是以太网卡的名称,Linux系统将检测到的第一块以太网卡命名为eth0, 第二块为eth1,…….。
 
2.2 命令常见参数说明

 

参数
   
说明

-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
修改网卡的部分配置,包括网卡速度、单工/全双工模式、mac地址等。加上-s选项修改的内容才会生效
-S
显示NIC- and driver-specific 的统计参数,如网卡接收/发送的字节数、接收/发送的广播包个数等。
-t
 让网卡执行自我检测,有两种模式:offline or online.
 
2.3 输出详解
     [root@localhost ~]# ethtool eth0
    Settings for eth0:
    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 // 支持自动协商
    Supported FEC modes: Not reported
     // 通告模式
    Advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    1000baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes // 使用自动协商
    Advertised FEC modes: Not reported
    Speed: 1000Mb/s // 当前速率 1000Mb/s
    Duplex: Full // 工作模式为全双工
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on // 自动协商打开
    MDI-X: off (auto)
    Supports Wake-on: d
    Wake-on: d
    Current message level: 0x00000007 (7)
    drv probe link
    Link detected: yes

3 简单实例

3.1 查询网口基本设置
 (1)命令

ethtool ethx

(2) 功能

查询ethx网口基本设置,其中 x 是对应网卡的编号,如eth0、eth1等等。

(3) 实例

    [root@localhost ~]# ethtool eth0
    Settings for eth0:
    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
    Supported FEC modes: Not reported
    Advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    1000baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: off (auto)
    Supports Wake-on: d
    Wake-on: d
    Current message level: 0x00000007 (7)
    drv probe link
    Link detected: yes
    [root@localhost ~]#

 
3.2 查询网口的驱动相关信息

(1) 命令

ethtool -i ethx

(2) 功能

查询网口的驱动相关信息,如驱动名称、版本信息等。


(3) 实例

    [root@localhost ~]# ethtool -i eth0
    driver: e1000
    version: 7.3.21-k8-NAPI
    firmware-version:
    expansion-rom-version:
    bus-info: 0000:02:01.0
    supports-statistics: yes
    supports-test: yes
    supports-eeprom-access: yes
    supports-register-dump: yes
    supports-priv-flags: no
 
3.3 查询ethx网口注册性信息

(1) 命令

ethtool -d ethx

(2) 功能

查询网口注册性信息。

 (3) 实例

    [root@localhost ~]# ethtool -d eth0
    MAC Registers
    -------------
    0x00000: CTRL (Device control register) 0x00C00249
    Endian mode (buffers): little
    Link reset: reset
    Set link up: 1
    Invert Loss-Of-Signal: no
    Receive flow control: disabled
    Transmit flow control: disabled
    VLAN mode: disabled
    Auto speed detect: disabled
    Speed select: 1000Mb/s
    Force speed: no
    Force duplex: no
    0x00008: STATUS (Device status register) 0x0000CB83
    Duplex: full
    Link up: link config
    TBI mode: disabled
    Link speed: 1000Mb/s
    Bus type: PCI
    Bus speed: 66MHz
    Bus width: 32-bit
    0x00100: RCTL (Receive control register) 0x00008002
    Receiver: enabled
    Store bad packets: disabled
    Unicast promiscuous: disabled
    Multicast promiscuous: disabled
    Long packet: disabled
    Descriptor minimum threshold size: 1/2
    Broadcast accept mode: accept
    VLAN filter: disabled
    Canonical form indicator: disabled
    Discard pause frames: filtered
    Pass MAC control frames: do not pass
    Receive buffer size: 2048
    0x02808: RDLEN (Receive desc length) 0x00001000
    0x02810: RDH (Receive desc head) 0x00000035
    0x02818: RDT (Receive desc tail) 0x00000033
    0x02820: RDTR (Receive delay timer) 0x00000000
    0x00400: TCTL (Transmit ctrl register) 0x0103F0FA
    Transmitter: enabled
    Pad short packets: enabled
    Software XOFF Transmission: disabled
    Re-transmit on late collision: enabled
    0x03808: TDLEN (Transmit desc length) 0x00001000
    0x03810: TDH (Transmit desc head) 0x00000000
    0x03818: TDT (Transmit desc tail) 0x00000000
    0x03820: TIDV (Transmit delay timer) 0x00000008
    PHY type: M88
    M88 PHY STATUS REGISTER: 0x0000AC00
    Jabber: no
    Polarity: normal
    Downshifted: no
    MDI/MDIX: MDI
    Cable Length Estimate: 0-50 meters
    Link State: Up
    Speed & Duplex Resolved: Yes
    Page Received: No
    Duplex: Full
    Speed: 1000 mbps
    M88 PHY CONTROL REGISTER: 0x00000B68
    Jabber function: enabled
    Auto-polarity: disabled
    SQE Test: disabled
    CLK125: enabled
    Auto-MDIX: auto
    Extended 10Base-T Distance: disabled
    100Base-TX Interface: 5-bit
    Scrambler: disabled
    Force Link Good: disabled
    Assert CRS on Transmit: enabled

 
3.4 查询网口收发包统计


(1) 命令

ethtool -S ethx

(2) 功能

查询网口收发包统计。


(3) 实例

    [root@localhost ~]# ethtool -S eth0
    NIC statistics:
    rx_packets: 447
    tx_packets: 17
    rx_bytes: 37053
    tx_bytes: 1268
    rx_broadcast: 0
    tx_broadcast: 0
    rx_multicast: 0
    tx_multicast: 0
    rx_errors: 0
    tx_errors: 0
    tx_dropped: 0
    multicast: 0
    collisions: 0
    rx_length_errors: 0
    rx_over_errors: 0
    rx_crc_errors: 0
    rx_frame_errors: 0
    rx_no_buffer_count: 0
    rx_missed_errors: 0
    tx_aborted_errors: 0
    tx_carrier_errors: 0
    tx_fifo_errors: 0
    tx_heartbeat_errors: 0
    tx_window_errors: 0
    tx_abort_late_coll: 0
    tx_deferred_ok: 0
    tx_single_coll_ok: 0
    tx_multi_coll_ok: 0
    tx_timeout_count: 0
    tx_restart_queue: 0
    rx_long_length_errors: 0
    rx_short_length_errors: 0
    rx_align_errors: 0
    tx_tcp_seg_good: 0
    tx_tcp_seg_failed: 0
    rx_flow_control_xon: 0
    rx_flow_control_xoff: 0
    tx_flow_control_xon: 0
    tx_flow_control_xoff: 0
    rx_long_byte_count: 37053
    rx_csum_offload_good: 67
    rx_csum_offload_errors: 0
    alloc_rx_buff_failed: 0
    tx_smbus: 0
    rx_smbus: 0
    dropped_smbus: 0

 
3.5 设置网口工作方式

(1) 命令

ethtool -s ethX [speed 10|100|1000] [duplex half|full] [autoneg on|off]

(2) 功能

设置网口速率10/100/1000M、设置网口半/全双工、设置网口是否自协商。自动协商关闭后,重新打开即可恢复原来的选项。

(3) 实例

    [root@localhost ~]# ethtool -s eth0 autoneg off speed 100 duplex full
    [root@localhost ~]#
    [root@localhost ~]#
    [root@localhost ~]# ethtool eth0
    Settings for eth0:
    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
    Supported FEC modes: Not reported
    Advertised link modes: Not reported
    Advertised pause frame use: No
    Advertised auto-negotiation: No
    Advertised FEC modes: Not reported
    Speed: 100Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: off
    MDI-X: off (auto)
    Supports Wake-on: d
    Wake-on: d
    Current message level: 0x00000007 (7)
    drv probe link
    Link detected: yes
    [root@localhost ~]#
    [root@localhost ~]#
    [root@localhost ~]# ethtool -s eth0 autoneg on
    [root@localhost ~]#
    [root@localhost ~]#
    [root@localhost ~]# ethtool eth0
    Settings for eth0:
    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
    Supported FEC modes: Not reported
    Advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    1000baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: off (auto)
    Supports Wake-on: d
    Wake-on: d
    Current message level: 0x00000007 (7)
    drv probe link
    Link detected: yes
    [root@localhost ~]#


 
3.6 指定通过自动协商机制通告的速度和双工方式

(1) 命令

ethtool -s ethX advertise N

(2) 功能

指定通过自动协商机制通告的速度和双工方式。N为十六进制值,如0x008表示100Mb/s+全双工、0x020表示1000Mb/s+全双工。

(3) 实例

    [root@localhost ~]# ethtool -s eth0 advertise 0x008
    [root@localhost ~]#
    [root@localhost ~]# ethtool eth0
    Settings for eth0:
    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
    Supported FEC modes: Not reported
    Advertised link modes: 100baseT/Full
    Advertised pause frame use: No
    Advertised auto-negotiation: Yes
    Advertised FEC modes: Not reported
    Speed: 1000Mb/s
    Duplex: Full
    Port: Twisted Pair
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    MDI-X: off (auto)
    Supports Wake-on: d
    Wake-on: d
    Current message level: 0x00000007 (7)
    drv probe link
    Link detected: yes
 
3.7 其它

(1) 停止网卡的发送模块TX,请输入:

ethtool -A tx off eth0

操作完毕后,可输入:ethtool -a eth0,查看tx模块是否已被停止。

(2) 关闭网卡对收到的数据包的校验功能,请输入:

ethtool -K eth0 rx off

操作完毕后,可输入:ethtool -k eth0,查看校验功能是否已被停止。
 

(3) 如果机器上安装了两块网卡,那么eth0对应着哪块网卡呢?输入:

ethtool -p eth0 10


操作完毕后,看哪块网卡的led灯在闪,eth0就对应着哪块网卡。

 (4) 查看网卡,在接收/发送数据时,有没有出错?请输入:

ethtool -S eth0

 
(5) 将千兆网卡的速度降为百兆,请输入:

ethtool -s eth0 speed 100



 
4 永久保存配置

 

将 ethtool 设置永久保存在网络设备有两种方法,一种是写入网口配置文件中,一种是开机自启动脚本。

 
(1) ethtool 设置可通过 /etc/sysconfig/network-scripts/ifcfg-ethx 文件保存,从而在设备下次启动时激活选项。


例如:ethtool -s eth0 speed 100 duplex full autoneg off

 
此指令将eth1设备设置为全双工自适应,速度为100Mbs。若要eth0启动时设置这些参数, 修改文件/etc/sysconfig/network-scripts/ifcfg-eth1 ,添加如下一行:
 

ETHTOOL_OPTS="speed 100 duplex full autoneg off"


(2) 将ethtool设置写入/etc/rc.d/rc.local之中,开机自动执行命令设置。


ethtool -s eth0 speed 100 duplex full autoneg off


---------------------
作者:路痴的旅行
来源:优快云
原文:https://blog.youkuaiyun.com/u011857683/article/details/83758689
版权声明:本文为博主原创文章,转载请附上博文链接!

转载于:https://www.cnblogs.com/idyllcheung/p/10675384.html

### 解决 Mellanox 网卡 ethtool 显示 Unknown 的问题 当使用 `ethtool` 查看 Mellanox 网卡的状态时,如果遇到某些字段显示为 **Unknown**,通常是由于以下原因之一引起的。以下是具体的原因分析及解决方案: #### 1. 驱动程序未正确加载或版本过低 Mellanox 网卡依赖于特定的驱动程序(如 MLNX_OFED 或内核自带的 mlx5_core/mlx4_core)。如果驱动程序未正确安装或者版本较低,则可能导致部分功能不可用,从而使得 `ethtool` 返回未知状态。 ```bash modinfo mlx5_core ``` 上述命令用于检查当前系统中是否已加载 mlx5_core 模块以及其版本号。若模块缺失或版本较旧,请更新至最新稳定版 OFED 驱动[^3]。 完成驱动升级后重启网络服务: ```bash systemctl restart network ``` #### 2. 设备固件不匹配 有时即使驱动正常工作,但如果硬件本身存在老旧固件也可能引发此类现象。因此建议定期访问厂商官网下载最新的微码文件并应用到对应设备上。 例如针对 ConnectX-5 和更高型号系列的产品可通过 mlxfwtool 实现在线刷新流程[^4]: ```bash mlxfwtool -i /path/to/firmware.bin -d /dev/mst/mt41xx_0 ``` #### 3. 不受支持的功能特性 需要注意的是并非所有类型的统计信息都适用于每一个具体的网卡产品线。比如一些高级别的遥测数据仅限高端服务器级 SKU 支持而消费类可能不具备这些选项。所以即便一切设置均无误仍有可能看到若干条目标注成 “unknown”。 此时可以尝试切换不同的工具集来获取更多信息作为补充依据。比如说 iperf 测试吞吐量代替单纯依靠 ethtools 报告链接速率等等[^5]。 --- ### 提供替代方案以增强诊断效果 尽管修复了前面提到的各种可能性之后仍然存在问题的话,考虑采用下面几种额外手段帮助定位根本原因: - 使用 mellanox 自家开发的支持调试套件 (msdk),它提供了比标准 Linux 工具更加深入细致的操作接口; - 结合 dmesg 日志审查启动过程中是否有异常警告提示关联到 NIC 上面去; - 对照官方文档核实 BIOS 设置里有关 PCIe Gen/NVMe SRIOV 是否开启等因素影响最终呈现结果差异性. ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值