代码改变世界

ethtool工具使用实例

2013-04-05 14:35  bangerlee  阅读(5260)  评论(0编辑  收藏  举报

使用ethtool工具可以查看和修改网卡(NIC卡)设备配置,下面我们来看ethtool的具体用法。

 

1.显示网卡属性

ethtool命令后直接跟网卡名称,可以显示关于该网卡的属性值:

# ethtool eth0
Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: d
        Wake-on: d
        Link detected: yes

以上显示了eth0网卡支持的10/100/1000Mb每秒的传输速率,当前传输速率为100Mb/s,自协商开启,传输模式为全双工,链路检测状态为正常启动。以下为三种可选择的传输模式:

  • 半双工:允许同时收包、发包,该模式在网卡连接交换机时启用
  • 全双工:在同一时刻,只能收包或发包,该模式在网卡连接集线器时启用
  • 自协商:启用时根据所连接设备,由网卡自行设定传输模式为全双工或半双工

 

2.修改网卡配置

使用 -s 选项可以修改网卡配置:

# ethtool -s eth0 speed 100 autoneg off

以上命令将eth0网卡的自协商传输模式关闭,传输速率改为100Mb/s。命令执行后需要重新启动eth0网卡:

# ifup eth0
    eth0      device: Broadcom Corporation NetXtreme II BCM5709 Gigabit Ethernet (rev 20)
    eth0      configuration: eth-bus-pci-0000:0b:00.0
Checking for network time protocol daemon (NTPD):                     running

# ethtool eth0
Settings for eth0: 
        Supported ports: [ TP ] 
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supports auto-negotiation: Yes
        Advertised link modes:  Not reported
        Advertised auto-negotiation: No
        Speed: 100Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: off
        Supports Wake-on: g
        Wake-on: g
        Link detected: yes

 

3.保持重启后使配置生效

通过以上命令修改网卡配置,在机器重启后配置将不再生效,若要使重启后配置依然生效,需进行以下配置(以Suse为例):

# vim /etc/sysconfig/network/ifcfg-eth0
POST_UP_SCRIPT='eth0'

以上修改eth0网卡配置文件,在配置文件最后一行添加 "POST_UP_SCRIPT='eth0'";

# cd /etc/sysconfig/network/

# vim scripts/eth0
#!/bin/bash
/sbin/ethtool -s duplex full speed 100 autoneg off

在scripts目录下添加相应配置文件,使用ethtool命令完成网卡配置。也可以通过在 /etc/sysconfig/network/ifcfg-eth0 中添加以下一行,达到相同目的:

ETHTOOL_OPTIONS='speed 100 duplex full autoneg off'

 

4.显示网卡驱动设置

使用 -i 选项可以显示网卡驱动名称,驱动版本,firmware版本以及总线信息:

# ethtool -i eth0
driver: tg3
version: 3.106
firmware-version: sb v3.04
bus-info: 0000:06:00.0

 

5.显示网卡统计信息

使用 -S 选项,可以针对某网卡查询收发包、错包的统计情况:

# ethtool -S eth0
NIC statistics:
     rx_bytes: 74356477841
     rx_error_bytes: 0
     tx_bytes: 110725861146
     tx_error_bytes: 0
     ……

 

6.网口连接问题定位

当发现网络无法连接时,我们通常会检查指定网口的状态是否正常,出现以下情况说明网口状态异常:

  • 速率和传输模式显示为 "Unknown"
  • 链路状态检测(Link detected)显示为 "No"

出现以上情形,可先对链路进行检查,例如网线是否松动,更换网线进行排查,进一步可以排查是否为网卡本身的问题。