Linux/Unix命令之Ethtool
描述:
Ethtool是用于查询及设置网卡参数的命令。
概要:
ethtool ethX      //查询ethX网口基本设置
ethtool –h        //显示ethtool的命令帮助(help)
ethtool –i ethX    //查询ethX网口的相关信息 
ethtool –d ethX    //查询ethX网口注册性信息
ethtool –r ethX    //重置ethX网口到自适应模式
ethtool –S ethX    //查询ethX网口收发包统计
ethtool –s ethX [speed 10|100|1000]\         //设置网口速率10/100/1000M
[duplex half|full]\           //设置网口半/全双工
[autoneg on|off]\            //设置网口是否自协商
[port tp|aui|bnc|mii]\         //设置网口类型
[phyad N]\                 
[xcvr internal|exteral]\
[wol p|u|m|b|a|g|s|d...]\
[sopass xx:yy:zz:aa:bb:cc]\
[msglvl N]
举例:
1)[root@linux /]# ethtool eth1

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: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: g
Wake-on: d
Link detected: yes
2)[root@linux /]#  ethtool -i eth1
driver: bnx2
version: 2.0.8-rh
firmware-version: 6.2.12 bc 5.2.3 NCSI 2.0.11
bus-info: 0000:01:00.0
3)[root@linux /]#  ethtool -S eth1
 NIC statistics:
     rx_bytes: 216494818
     rx_error_bytes: 0
     tx_bytes: 27084170553
     tx_error_bytes: 0
     rx_ucast_packets: 2933822
     rx_mcast_packets: 33
     rx_bcast_packets: 956
     tx_ucast_packets: 18464909
     tx_mcast_packets: 6
     tx_bcast_packets: 179
     tx_mac_errors: 0
     tx_carrier_errors: 0
     rx_crc_errors: 0
     rx_align_errors: 0
     tx_single_collisions: 0
     tx_multi_collisions: 0
     tx_deferred: 0
     tx_excess_collisions: 0
     tx_late_collisions: 0
     tx_total_collisions: 0
     rx_fragments: 0
     rx_jabbers: 0
     rx_undersize_packets: 0
     rx_oversize_packets: 0
     rx_64_byte_packets: 959
     rx_65_to_127_byte_packets: 2930241
     rx_128_to_255_byte_packets: 2634
     rx_256_to_511_byte_packets: 752
     rx_512_to_1023_byte_packets: 169
     rx_1024_to_1522_byte_packets: 56
     rx_1523_to_9022_byte_packets: 0
     tx_64_byte_packets: 183
     tx_65_to_127_byte_packets: 357
     tx_128_to_255_byte_packets: 750
     tx_256_to_511_byte_packets: 224
     tx_512_to_1023_byte_packets: 991032
     tx_1024_to_1522_byte_packets: 17472548
     tx_1523_to_9022_byte_packets: 0
     rx_xon_frames: 0
     rx_xoff_frames: 0
     tx_xon_frames: 0
     tx_xoff_frames: 0
     rx_mac_ctrl_frames: 0
     rx_filtered_packets: 0
     rx_ftq_discards: 0
     rx_discards: 0
     rx_fw_discards: 0

4)[root@linux /]# ethtool -s eth1 autoneg off speed 100 duplex full
相关:
1)[root@linux /]# which ethtool
    /sbin/ethtool
2)[root@linux /]# rpm -qf /sbin/ethtool
   ethtool-1.6-5
3)怎样使ethtool设置永久保存在网络设备中?
   解决方法一:
    ethtool设置可通过/etc/sysconfig/network-scripts/ifcfg-ethX文件保存,从而在设备下次启动时激活选项。 
例如:ethtool -s eth0 speed 100 duplex full autoneg off
此指令将eth0设备设置为全双工自适应,速度为100Mbs。若要eth0启动时设置这些参数, 修改文件/etc/sysconfig/network-scripts/ifcfg-eth0 ,添加如下一行: 
ETHTOOL_OPTS="speed 100 duplex full autoneg off"
解决方法二:
将ethtool设置写入/etc/rc.d/rc.local之中。

解决方法:
对Intel千兆网卡禁用自适应时必须指定链路速度和全双工模式。当使用ethtool来禁用使用e1000网卡驱动模块的网卡自适应特性时,必须同时指定链路速度和全双工工作模式。例如: ethtool -s eth0 autoneg off

会边比自适应,但是只是临时禁用,如果在命令中没有指定链路速度和全双工工作模式,驱动会自动重新打开自适应。 
为了使用ethtool工具来禁用e1000网卡驱动模块的网卡自适应特性,使用以下步骤 
1. 进入终端模式。 2. 以root身份执行 ethtool -s ethx autoneg off speed 1000 duplex full
这里ethX是网卡的名字(例如eth0或者eth1等等),这个命令将关闭该网卡的自适应特性,并且强制设置网卡速度为1Gb,全双公模式。
另外ethtool比mii-tool要高级,mii-tool只支持 Port: MII的网卡.

OPTIONS

ethtool with a single argument specifying the device name prints current setting of the specified device.
-h
shows a short help message.
-a
queries the specified ethernet device for pause parameter information.
-A
change the pause parameters of the specified ethernet device.
autoneg  on| off
Specify if pause autonegotiation is enabled.
rx  on| off
Specify if RX pause is enabled.
tx  on| off
Specify if TX pause is enabled.
-c
queries the specified ethernet device for coalescing information.
-C
change the coalescing settings of the specified ethernet device.
-g
queries the specified ethernet device for rx/tx ring parameter information.
-G
change the rx/tx ring parameters of the specified ethernet device.
rx  N
Change number of ring entries for the Rx ring.
rx-mini  N
Change number of ring entries for the Rx Mini ring.
rx-jumbo  N
Change number of ring entries for the Rx Jumbo ring.
tx  N
Change number of ring entries for the Tx ring.
-i
queries the specified ethernet device for associated driver information.
-d
retrieves and prints a register dump for the specified ethernet device.
-e
retrieves and prints an EEPROM dump for the specified ethernet device.
-k
queries the specified ethernet device for checksumming information.
-K
change the checksumming parameters of the specified ethernet device.
rx  on| off
Specify if RX checksumming is enabled.
tx  on| off
Specify if TX checksumming is enabled.
sg  on| off
Specify if scatter-gather is enabled.
-p
initiates adapter-specific action intended to enable an operator to easily identify the adapter by sight. typically this involves blinking one or more LEDs on the specific ethernet port.
N
Length of time to perform phys-id, in seconds.
-r
restarts auto-negotiation on the specified ethernet device, if auto-negotiation is enabled.
-S
queries the specified ethernet device for NIC- and driver-specific statistics.
-t
executes adapter selftest on the specified ethernet device. Possible test modes are:
offline| online
defines test type:  offline (default) means to perform full set of tests possibly causing normal operation interruption during the tests,  online means to perform limited set of tests do not interrupting normal adapter operation.
-s
option allows changing some or all settings of the specified ethernet device. All following options only apply if  -s was specified.
speed  10| 100| 1000
Set speed in Mb/s.  ethtool with single argument will show you the supported device speeds.
duplex  half| full
Set full or half duplex mode.
port  tp| aui| bnc| mii
Select device port.
autoneg  on| off
Specify if autonegotiation is enabled. In the usual case it is, but might cause some problems with some network devices, so you can turn it off.
phyad  N
PHY address.
xcvr  internal| external
Select transceiver type. Currently only internal and external can be specified, in the future further types might be added.
wol  p| u| m| b| a| g| s| d...
Set Wake-on-LAN options. Not all devices support this. The argument to this option is a string of characters specifying which options to enable.
p
Wake on phy activity
u
Wake on unicast messages
m
Wake on multicast messages
b
Wake on broadcast messages
a
Wake on ARP
g
Wake on MagicPacket(tm)
s
Enable SecureOn(tm) password for MagicPacket(tm)
d
Disable (wake on nothing). This option clears all previous options.
sopass xx:yy:zz:aa:bb:cc
Set the SecureOn(tm) password. The argument to this option must be 6 bytes in ethernet MAC hex format ( xx : yy : zz : aa : bb : cc).
msglvl  N
Set the driver message level. Meanings differ per driver