zl程序教程

您现在的位置是:首页 >  工具

当前栏目

通过示例使用 ethtool 命令

命令 通过 示例 使用
2023-09-14 09:09:25 时间

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

有三种类型的双工:

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

半双工:当以太网与集线器连接时使用。仅允许单向传输,即发送或接收数据包。

自动协商:根据网络连接,以太网接口决定是使用全双工还是半双工。

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 嵌入式设备中,可以通过“PAUSE”参数启用全双工流控制。

这是解决方案:

# 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