• ethtools命令详解


    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 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


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

  • 相关阅读:
    python_58_装饰器1
    python_57_高阶函数
    python_56_递归
    python_55_局部和全局变量
    python_54_函数调用函数
    python_53_函数补充
    python_52_函数返回值2
    mysql 使用 GROUP BY 时报错 ERROR 1055 (42000)
    sql之left join、right join、inner join的区别
    C++ 函数的重载和参数默认值
  • 原文地址:https://www.cnblogs.com/idyllcheung/p/10675384.html
Copyright © 2020-2023  润新知