如何使用Ethtool命令

时间:2020-03-05 15:26:39  来源:igfitidea点击:

ethtool命令用于显示/更改以太网适配器设置。
我们可以在Linux中使用此工具更改网卡速度,自动协商,在LAN设置,双工模式下唤醒。
在本文中,将介绍某些Ethtool命令示例,解决以太网卡问题。

1)显示以太网接口详细信息

ethtool命令检索以太网接口的状态。
输出显示Etho接口的速度,双工,状态和唤醒等属性。

下面给出了一个例子:

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

有三种类型的双工:

全双工:在以太网连接到交换机时使用。
允许Twoway传输,即同时发送和接收数据包。

半双工:在以太网与集线器连接时使用。
只允许仅发送或者接收数据包的Oneway Transfers。

自动协商:在网络连接的基础上,以太网接口决定是否使用全部或者半双工。

2)ethtool_opts变量

可以将ethtool_opt变量永久设置ethtool命令设置。
让我们看看下面给出的例子:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
ETHTOOL_OPTS="speed 50 duplex full autoneg off"

我们可以使用ifup和ifdown命令测试上面的设置。

3)显示统计信息

可以使用以下命令检查以太网驱动程序设置和自动协商:

# ethtool -i eth0
driver: bnx2
version: 2.0.1-suse
firmware-version: 1.9.3
bus-info: 0000:04:00.0
[root@localhost ~]# ethtool –a eth0
Pause parameters for eth0:
Autonegotiate: on
RX: on
TX: on

ethtool命令的'-p选项'有助于识别来自多个设备的特定设备。

# ethtool –p eth0

拥有网卡的统计信息对于网络问题的故障排除非常有用。

# ethtool –S eth0
NIC statistics:
tx_packets: 148683
rx_packets: 179489
tx_errors: 0
rx_errors: 0
rx_missed: 0
align_errors: 0
tx_single_collisions: 0
tx_multi_collisions: 0
unicast: 116884
broadcast: 25361
multicast: 61674
tx_aborted: 0
tx_underrun: 0

上面的输出显示了有关传输和接收的数据包的详细信息。

4)启用流量控制

可以通过最新的Mac和GMAC嵌入式设备中的"暂停"参数来启用全双工中的流量控制。

以下是解决方案:

# ethtool -A eth0 [autoneg on|off] [rx on|off] [tx on|off]

卸载参数详细信息可以获得如下:

# ethtool –k eth0

但是,在下次启动时,以太网参数设置中所做的任何更改都将消失。
为了使它们完好在下一个启动中,我们必须通过向/etc/rc.local添加命令来使这些更改永久

# cat /etc/rc.local
ethtool -s eth0 speed 100 duplex full autoneg on 1>/dev/null 2>/dev/null
ethtool -s eth1 speed 100 duplex full autoneg on 1>/dev/null 2>/dev/null

5)设置双工模式

下面的示例显示如何使用ethtool命令设置速度或者双工模式如下:

# ethtool -s eth0 speed 100 duplex full
# ethtool -s eth0 speed 10 duplex half