Ethtool是Linux下用于查询及设置网卡参数的命令。
概要:
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]
怎样使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之中。
其它高级用法:
ethtool -a|--show-pause DEVNAME Show pause options 显示相应设备中止选项设置情况
ethtool -A|--pause DEVNAME Set pause options 对相应设备进行中止选项设置
[ autoneg on|off ]
[ rx on|off ]
[ tx on|off ]
ethtool -c|--show-coalesce DEVNAME Show coalesce options 显示相应设备联合选项设置情况
ethtool -C|--coalesce DEVNAME Set coalesce options 对相应设备进行联合选项设置
[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|--show-ring DEVNAME Query RX/TX ring parameters 查询接收/发送回环参数
ethtool -G|--set-ring DEVNAME Set RX/TX ring parameters 设置接收/发送回环参数
[ rx N ]
[ rx-mini N ]
[ rx-jumbo N ]
[ tx N ]
ethtool -k|--show-offload DEVNAME Get protocol offload information 获取协议卸载信息
ethtool -K|--offload DEVNAME Set protocol offload 设置协议卸载
[ rx on|off ]
[ tx on|off ]
[ sg on|off ]
[ tso on|off ]
[ ufo on|off ]
[ gso on|off ]
ethtool -i|--driver DEVNAME Show driver information 显示相应设备的驱动信息
ethtool -d|--register-dump DEVNAME Do a register dump 寄存器转存
ethtool -e|--eeprom-dump DEVNAME Do a EEPROM dump EEPROM转存
[ raw on|off ]
[ offset N ]
[ length N ]
ethtool -E|--change-eeprom DEVNAME Change bytes in device EEPROM 更改设备EEPROM中的字节
[ magic N ]
[ offset N ]
[ value N ]
ethtool -r|--negotiate DEVNAME Restart N-WAY negotation 重启N路交互
ethtool -p|--identify DEVNAME Show visible port identification (e.g. blinking) 显示可见的端口识别(比如相应端口指示灯会亮)
[ TIME-IN-SECONDS ]
ethtool -t|--test DEVNAME Execute adapter self test 执行适配器自我测试
[ online | offline ]
ethtool -S|--statistics DEVNAME Show adapter statistics 显示适配器的统计信息
ethtool -h|--help DEVNAME Show this help 显示帮助
查询网络端口位置:ethtool -p ethX
这个命令多用于管理多网口的服务器主机,由于背板的网络端口数量大,有时候不知道那个物理端口对应eth0或其他设备号,我们就可以使用这个命令来查询。
用法:ethtool -p eth0
效果:设备号eth0对应的物理端口的两个指示灯会闪烁
用法:ethtool -s eth0 speed 1000 duplex full autoneg off
效果:将设备号eth0对应的物理端口设置为速率为1000Mbps,全双工工作模式,同时关闭自动协商。
mii-tool(这是Linux下专门设置网卡工作模式的命令)
MII的全称是Media Independent Interface,字面意思上就是媒体无关的接口,因此它是独立于具体设备的,仔细想想标准化的东西都是独立于具体设备的。虽然如此,很多以太网卡设备 并不支持这些参数的配置,因此当你执行mii-tool的时候,会得到Operation not supported的提示,要不就是没有使用超级用户身份,还有就是若接口编号设置超过eth7时,直接使用mii-tool 不加参数,会出现NO MII xxxxxxxxxx interface 之类的提示,是因为超过了默认值,使用帮助信息可以了解。
1. 查看网卡的工作模式,输入命令:
#mii-tool -v
eth0: negotiated 100baseTx-FD, link ok
product info: vendor 00:aa:00, model 56 rev 0
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
从以上信息中可以看出,这块网卡工作在100M全双工自适应模式下,“100BaseTx-FD”意为100M Full Duplex。
2. 更改网卡的工作模式,输入命令:
#mii-tool -F media [interface]
media可选的模式有100baseTx-FD、100baseTx-HD、10baseT-FD、10baseT-HD等。
Interface代表所选择的网卡,如eth0、eth1等,默认为eth0。
例如,设置网卡工作在10M半双工模式下,输入命令:
#mii-tool -F 10baseT-HD eth0
3. 恢复网卡的自适应工作模式,输入命令:
#mii-tool -r eth0
更详细的使用方法可以用mii-tool -h来获得。
注:
mii-tool不支持1000M以上的网卡
正常对于100M以下的网卡都可以用这俩个命令来查看,但是对于100M以上网卡的,mii-tool就会出现问题
mii-tool -v eth0
eth0: negotiated 100baseTx-FD, link ok
product info: vendor 00:aa:00, model 56 rev 0
basic mode: autonegotiation enabled
basic status: autonegotiation complete, link ok
capabilities: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
advertising: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
link partner: 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
#这里显示100M网卡,实际上是1000M的接口
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: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: umbg
Wake-on: d
Current message level: 0x00000007 (7)
Link detected: yes
#这里却正确的显示1000M网卡
参考:http://linux-ip.net/html/tools-mii-tool.html#ftn.id2911850
3、nm-tool(NetworkManager Tool)
mii-tool 命令也可以查看相关网络接口的连接情况,包括网络类型,连接状态,载波情况,ip地址等信息,相比其它工具较简洁,信息明了