如何使用 ethtool 命令管理以太网卡
创始人
2024-03-02 05:02:56
0

ethtool 用于查看和修改网络设备(尤其是有线以太网设备)的驱动参数和硬件设置。你可以根据需要更改以太网卡的参数,包括自动协商、速度、双工和局域网唤醒等参数。通过对以太网卡的配置,你的计算机可以通过网络有效地进行通信。该工具提供了许多关于接驳到你的 Linux 系统的以太网设备的信息。

在这篇文章中,我们将告诉你如何更改以下的参数以及如何查看这些参数。这篇文章将帮助你在 Linux 系统中排除与以太网卡相关的问题。

下面的信息将帮助你了解以太网卡的工作原理。

  • 半双工:半双工模式允许设备一次只能发送或接收数据包。
  • 全双工:全双工模式允许设备可以同时发送和接收数据包。
  • 自动协商:自动协商是一种机制,允许设备自动选择最佳网速和工作模式(全双工或半双工模式)。
  • 速度:默认情况下,它会使用最大速度,你可以根据自己的需要改变它。
  • 链接检测:链接检测可以显示网卡的状态。如果显示为 no,请尝试重启网卡。如果链路检测仍显示 no,则检查交换机与系统之间连接的线缆是否有问题。

如何在 Linux 上安装 ethtool

默认情况下,大多数系统上应该已经安装了 ethtool。如果没有,你可以从发行版的官方版本库中安装。

对于 RHEL/CentOS 6/7 系统,请使用 yum 命令 安装 ethtool

$ sudo yum install -y ethtool

对于 RHEL/CentOS 8 和 Fedora 系统,请使用 dnf 命令 安装 ethtool

$ sudo dnf install -y ethtool

对于基于 Debian 的系统,请使用 apt 命令apt-get 命令 安装 ethtool

$ sudo apt-get install ethtool

对于 openSUSE 系统,使用 zypper 命令 安装 ethtool

$ sudo zypper install -y ethtool

对于 Arch Linux 系统,使用 pacman 命令 安装 ethtool

$ sudo pacman -S ethtool

如何检查 Linux 上的可用网络接口

你可以使用 ip 命令ifconfig 命令(在现代发行版中已被淘汰)来验证可用的、活动的网卡的名称和其他细节:

# ip a
或
# ifconfig

1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: eth0: mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:10:22:35:23:sf brd ff:ff:ff:ff:ff:ff
    inet 192.164.23.100/24 brd 192.164.23.255 scope global eth0
       valid_lft forever preferred_lft forever

如何检查 Linux 上的网卡(NIC)信息

掌握了以太网卡名称后,就可以使用 ethtool 命令轻松查看其详细信息,如下所示。

在 Linux 系统中,每个网卡(NIC)都被分配了唯一的名称,如 ethX、enpXXX 等。

  • 旧的 Linux 发行版使用的是 eth[X] 格式。例如,RHEL 6 和它们的旧版本。
  • 现代的 Linux 发行版使用 enp[XXX]ens[XXX] 格式。例如,大多数现代 Linux 发行版都使用这种格式,包括 RHEL 7、Debian 10、Ubuntu 16.04 LTS。
# ethtool eth0

Settings for eth0:
        Supported ports: [ TP ]
        Supported link modes: 1000baseT/Full
                              10000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: No
        Supported FEC modes: Not reported
        Advertised link modes: Not reported
        Advertised pause frame use: No
        Advertised auto-negotiation: No
        Advertised FEC modes: Not reported
        Speed: 10000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: off
        MDI-X: Unknown
        Supports Wake-on: uag
        Wake-on: d
        Link detected: yes

如何检查以太网卡的驱动程序和固件版本

你可以使用 ethtool 命令的 -i 选项检查驱动程序版本、固件版本和总线的详细信息,如下所示:

# ethtool -i eth0

driver: vmxnet3
version: 1.4.16.0-k-NAPI
firmware-version:
expansion-rom-version:
bus-info: 0000:0b:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

如何检查网络使用情况统计

你可以使用 ethtool 命令中的 -S 选项来查看网络使用情况统计。它可以显示传输的字节数、接收的字节数、错误数等。

# ethtool -S eth0

NIC statistics:
     Tx Queue#: 0
       TSO pkts tx: 2053
       TSO bytes tx: 7167572
       ucast pkts tx: 4028081
       ucast bytes tx: 399093197
       mcast pkts tx: 0
       mcast bytes tx: 0
       bcast pkts tx: 0
       bcast bytes tx: 0
       pkts tx err: 0
       pkts tx discard: 0
       drv dropped tx total: 0
          too many frags: 0
          giant hdr: 0
          hdr err: 0
          tso: 0
       ring full: 0
       pkts linearized: 0
       hdr cloned: 0
       giant hdr: 0
     Tx Queue#: 1
       TSO pkts tx: 1955
       TSO bytes tx: 6536945
       ucast pkts tx: 3711838
       ucast bytes tx: 346309662
       mcast pkts tx: 0
       mcast bytes tx: 0
       bcast pkts tx: 1186
       bcast bytes tx: 49812
       pkts tx err: 0
       pkts tx discard: 0
       drv dropped tx total: 0
          too many frags: 0
          giant hdr: 0
          hdr err: 0
          tso: 0
       ring full: 0
       pkts linearized: 0
       hdr cloned: 0
       giant hdr: 0
     Rx Queue#: 0
       LRO pkts rx: 0
       LRO byte rx: 0
       ucast pkts rx: 5084776
       ucast bytes rx: 4673133395
       mcast pkts rx: 0
       mcast bytes rx: 0
       bcast pkts rx: 154143
       bcast bytes rx: 45415676
       pkts rx OOB: 0
       pkts rx err: 0
       drv dropped rx total: 0
          err: 0
          fcs: 0
       rx buf alloc fail: 0
     Rx Queue#: 1
       LRO pkts rx: 0
       LRO byte rx: 0
       ucast pkts rx: 6346769
       ucast bytes rx: 4835534292
       mcast pkts rx: 0
       mcast bytes rx: 0
       bcast pkts rx: 3464
       bcast bytes rx: 714646
       pkts rx OOB: 0
       pkts rx err: 0
       drv dropped rx total: 0
          err: 0
          fcs: 0
       rx buf alloc fail: 0
     tx timeout count: 0

如何改变以太网设备的速度

你可以根据需要改变以太网的速度。当你进行此更改时,网卡将自动掉线,你需要使用 ifup 命令ip 命令或 nmcli 命令将其重新上。

# ethtool -s eth0 speed 100
# ip link set eth0 up

如何在 Linux 上启用/禁用以太网卡的自动协商?

你可以使用 ethtool 命令中的 autoneg 选项启用或禁用自动协商,如下图所示:

# ethtool -s eth0 autoneg off
# ethtool -s eth0 autoneg on

如何同时更改多个参数

如果你想使用 ethtool 命令同时更改以太网卡的多个参数,请使用下面的格式:

Syntax:
ethtool –s [device_name] speed [10/100/1000] duplex [half/full] autoneg [on/off]
# ethtool –s eth0 speed 1000 duplex full autoneg off

如何检查特定网卡的自动协商、RX 和 TX

要查看关于特定以太网设备的自动协商等详细信息,请使用以下格式:

# ethtool -a eth0

如何从多个设备中识别出特定的网卡(闪烁网卡上的 LED)

如果你想识别一个特定的物理接口,这个选项非常有用。下面的 ethtool 命令会使 eth0 端口的 LED 灯闪烁:

# ethtool -p eth0

如何在 Linux 中永久设置这些参数

在系统重启后,你使用 ethtool 所做的更改将被默认恢复。

要使自定义设置永久化,你需要更新网络配置文件中的值。根据你的 Linux 发行版,你可能需要将此值更新到正确的文件中。

对于基于 RHEL 的系统。你必须使用 ETHTOOL_OPTS 变量:

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

ETHTOOL_OPTS="speed 1000 duplex full autoneg off"

对于基于 Debian 的系统:

# vi /etc/network/interfaces

post-up ethtool -s eth0 speed 1000 duplex full autoneg off

via: https://www.2daygeek.com/linux-ethtool-command-view-change-ethernet-adapter-settings-nic-card/

作者:Magesh Maruthamuthu 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

CentOS 系统基础与运...
CentOS 作为基于 Red Hat Enterprise Li...
2025-06-04 16:40:49
CentOS网卡速度测试攻...
网络性能对服务器运行效率和用户体验具有直接影响。作为系统管理员或运...
2025-05-18 06:22:33
CentOS系统子网掩码配...
理解子网掩码的作用 子网掩码是网络配置中的关键参数,尤其在服务器管...
2025-04-17 06:16:15
如何查找CentOS系统的...
CentOS系统网关配置与查询指南 在Linux服务器管理中,网关...
2025-03-17 06:12:08
CentOS如何查看IP地...
在centos系统中查看IP地址是服务器管理的基础操作,无论是排查...
2025-03-01 19:51:33
BlueField(v1)...
以下是一个示例的解决方法,用于安装DPDK并配置BlueField...
2024-12-23 01:31:22

热门资讯

Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
使用 KRAWL 扫描 Kub... 用 KRAWL 脚本来识别 Kubernetes Pod 和容器中的错误。当你使用 Kubernet...
JStock:Linux 上不... 如果你在股票市场做投资,那么你可能非常清楚投资组合管理计划有多重要。管理投资组合的目标是依据你能承受...
通过 SaltStack 管理... 我在搜索Puppet的替代品时,偶然间碰到了Salt。我喜欢puppet,但是我又爱上Salt了:)...
Epic 游戏商店现在可在 S... 现在可以在 Steam Deck 上运行 Epic 游戏商店了,几乎无懈可击! 但是,它是非官方的。...
《Apex 英雄》正式可在 S... 《Apex 英雄》现已通过 Steam Deck 验证,这使其成为支持 Linux 的顶级多人游戏之...
如何在 Github 上创建一... 学习如何复刻一个仓库,进行更改,并要求维护人员审查并合并它。你知道如何使用 git 了,你有一个 G...
2024 开年,LLUG 和你... Hi,Linuxer,2024 新年伊始,不知道你是否已经准备好迎接新的一年~ 2024 年,Lin...
什么是 KDE Connect... 什么是 KDE Connect?它的主要特性是什么?它应该如何安装?本文提供了基本的使用指南。科技日...
Opera 浏览器内置的 VP... 昨天我们报道过 Opera 浏览器内置了 VPN 服务,用户打开它可以防止他们的在线活动被窥视。不过...