🖧 Как управлять Ethernet картой с помощью команды ethtool |

🖧 Как управлять Ethernet картой с помощью команды ethtool

Мануал

Ethtool используется для просмотра и изменения параметров драйвера сетевого устройства и параметров оборудования, особенно для проводных сетевых устройств.

При необходимости вы можете изменить параметры карты Ethernet, включая автоматическое согласование, скорость, дуплекс и т.д.

Конфигурация вашей карты Ethernet позволяет вашему компьютеру эффективно обмениваться данными по сети.

Этот инструмент предоставляет много информации об устройствах Ethernet, подключенных к вашей системе Linux.

В этой статье мы покажем вам, как изменить параметры и как их просматривать.

Эта статья поможет вам устранить неполадки, связанные с картами Ethernet в системе Linux.

Следующая информация поможет вам понять, как работает карта Ethernet.

  • Полудуплекс: полудуплексный режим позволяет устройству отправлять или получать пакеты одновременно.
  • Полный дуплекс: полнодуплексный режим позволяет устройству отправлять и получать пакеты одновременно.
  • Автосогласование. Автосогласование – это механизм, который позволяет устройству автоматически выбирать наилучшую скорость сети и режим работы (полнодуплексный или полудуальный режим).
  • Скорость: по умолчанию карта использует максимальную скорость, и вы можете изменить ее в соответствии с вашими потребностями.
  • Обнаружение соединения: обнаружение соединения показывает состояние сетевой карты. Если он показывает «no», попробуйте перезапустить интерфейс. Если обнаружение канала все еще говорит «no», проверьте, есть ли какие-либо проблемы с кабелями, подключенными между коммутатором и системой.

Как установить ethtool на Linux

По умолчанию ethtool уже должен быть установлен на большинстве систем.

Если нет, вы можете установить его из официального репозитория дистрибутива.

Для систем RHEL / CentOS 6/7 используйте команду yum для установки ethtool.

$ sudo yum install -y ethtool

Для систем RHEL / CentOS 8 и Fedora используйте команду dnf для установки ethtool.

$ sudo yum 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

Как проверить информацию о сетевой карте (NIC) на Linux

Получив имя интерфейса Ethernet, вы можете легко проверить его, используя команду 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

Как проверить драйвер сетевой карты и версию прошивки на Linux

Вы можете проверить версию драйвера, версию прошивки и информацию о шине, используя команду 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

Как проверить статистику использования сети на Linux

Вы можете просмотреть статистику использования сети с помощью команды 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

Как изменить скорость устройства Ethernet на Linux

При необходимости вы можете изменить скорость Ethernet.

Когда вы сделаете это изменение, интерфейс автоматически перейдет в автономный режим, и вам нужно будет вернуть его в оперативный режим с помощью команды ifup, команды ip или nmcli.

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

Как включить / отключить автосогласование для устройства Ethernet в Linux

Вы можете включить или отключить автосогласование с помощью команды ethtool с опцией «autoneg», как показано ниже.

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

Как изменить несколько параметров одновременно

Если вы хотите изменить несколько параметров интерфейса Ethernet одновременно с помощью команды ethtool, используйте формат, показанный ниже:

Синтаксис:
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 конкретного интерфейса на Linux

Для просмотра деталей автосогласования в конкретном устройстве Ethernet используйте следующий формат.

# ethtool -a eth0

Как определить конкретную сетевую карту из нескольких устройств

Эта опция очень полезна, если вы хотите идентифицировать определенный физический интерфейсный порт среди других.

Приведенная ниже команда ethtool помигает светодиодом порта eth0.

# ethtool -p eth0

Как установить эти параметры на Linux постоянно

После перезапуска системы изменения, сделанные с помощью ethtool, будут по умолчанию отменены.

Чтобы сделать пользовательские настройки постоянными, необходимо обновить свои значения в файле конфигурации сети.

В системах на основе 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

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий

  1. Николай

    Линукс-Минт 18.3. Сетевая карта Гуляет скорость интернета. За день может быть сколько угодно раз. По тарифу 200, по факту 0т 0,6 до 184. Вызов мастера ничего не дал (НетбайНет). Уверяют, что с их стороны все нормально. Что это у меня сетевуха переключается 10/100/1000 как хочет и когда хочет. Большую часть дня при загрузке страницы можно сходить покурить.
    Рекомендация мастера – принудительно установить в 1000, т.к. порт на оборудовании Гигабитный. Но поскольку это Линукс, а не Виндовс, то он понятия не имеет как тут все далается. Я в принципе тоже, т.к. не програмист, не админ, а простой рядовой юзер!
    Вот нарыл разных статей, пытаюсь повторить команды, но… увы. Все как было так и есть.
    Сетевуха строго в 1000 не программируется. Привожу данные вывода в Терминале.

    # udo lshw -class network
    *-network
    описание: Ethernet interface
    продукт: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
    производитель: Realtek Semiconductor Co., Ltd.
    физический ID: 0
    сведения о шине: pci@0000:02:00.0
    логическое имя: enp2s0
    версия: 06
    серийный №: 50:3e:aa:15:ce:4a
    размер: 1Gbit/s
    capacity: 1Gbit/s
    разрядность: 64 bits
    частота: 33MHz
    возможности: pm msi pciexpress msix vpd bus_master cap_list ethernet physical tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
    конфигурация: autonegotiation=on broadcast=yes driver=r8169 driverversion=2.3LK-NAPI duplex=full firmware=rtl_nic/rtl8168e-2.fw ip=176.193.218.137 latency=0 link=yes multicast=yes port=MII speed=1Gbit/s
    ресурсы: IRQ:16 ioport:d800(размер=256) память:feaff000-feafffff память:fbefc000-fbefffff

    # sudo ifconfig
    enp2s0 Link encap:Ethernet HWaddr 50:3e:aa:15:ce:4a
    inet addr:176.193.218.137 Bcast:176.193.223.255 Mask:255.255.224.0
    inet6 addr: fe80::8e26:1e4d:b14:2cf7/64 Scope:Link
    UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
    RX packets:90138 errors:0 dropped:0 overruns:0 frame:0
    TX packets:50581 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:92046213 (92.0 MB) TX bytes:12889205 (12.8 MB)
    lo Link encap:Локальная петля (Loopback)
    inet addr:127.0.0.1 Mask:255.0.0.0
    inet6 addr: ::1/128 Scope:Host
    UP LOOPBACK RUNNING MTU:65536 Metric:1
    RX packets:1478 errors:0 dropped:0 overruns:0 frame:0
    TX packets:1478 errors:0 dropped:0 overruns:0 carrier:0
    collisions:0 txqueuelen:1000
    RX bytes:165149 (165.1 KB) TX bytes:165149 (165.1 KB)

    # ip a
    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
    inet6 ::1/128 scope host
    valid_lft forever preferred_lft forever
    2: enp2s0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 50:3e:aa:15:ce:4a brd ff:ff:ff:ff:ff:ff
    inet 176.193.218.137/19 brd 176.193.223.255 scope global dynamic enp2s0
    valid_lft 4799sec preferred_lft 4799sec
    inet6 fe80::8e26:1e4d:b14:2cf7/64 scope link
    valid_lft forever preferred_lft forever

    # ethtool enp2s0
    Settings for enp2s0:
    Supported ports: [ TP MII ]
    Supported link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    1000baseT/Half 1000baseT/Full
    Supported pause frame use: No
    Supports auto-negotiation: Yes
    Advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    1000baseT/Half 1000baseT/Full
    Advertised pause frame use: Symmetric Receive-only
    Advertised auto-negotiation: Yes
    Link partner advertised link modes: 10baseT/Half 10baseT/Full
    100baseT/Half 100baseT/Full
    1000baseT/Full
    Link partner advertised pause frame use: No
    Link partner advertised auto-negotiation: Yes
    Speed: 1000Mb/s
    Duplex: Full
    Port: MII
    PHYAD: 0
    Transceiver: internal
    Auto-negotiation: on
    Cannot get wake-on-lan settings: Operation not permitted
    Current message level: 0x00000033 (51)
    drv probe ifdown ifup
    Link detected: yes

    # ethtool -i enp2s0
    driver: r8169
    version: 2.3LK-NAPI
    firmware-version: rtl_nic/rtl8168e-2.fw
    expansion-rom-version:
    bus-info: 0000:02:00.0
    supports-statistics: yes
    supports-test: no
    supports-eeprom-access: no
    supports-register-dump: yes
    supports-priv-flags: no
    snigirev@Linux64 ~ $ ethtool -s enp2s0 autoneg off
    Cannot set new settings: Operation not permitted
    not setting autoneg

    # sudo ethtool -s enp2s0 autoneg off
    Cannot set new settings: Invalid argument
    not setting autoneg

    # sudo ethtool –s enp2s0 speed 1000 duplex full autoneg off
    ethtool: bad command line argument(s)
    For more information run ethtool -h

    Вроде бы все нормально. Единственно, что я вижу, так это не соответствие драйвера. На сколько это критично?
    Я так понял, что установленный драйвер r8169, а прошивка в чипе 8168.
    А где найти этот драйвер? И как его установить?

    Ответить