Linux режим работы сетевой карты

Как посмотреть скорость и дуплекс сетевой карты в Linux? кратко

Вот работаем мы и работаем в Linux, через ifconfig настраиваем IP-адреса да маски и даже посмотреть — есть ли линк через него можем. Но вот незадача — в отличие от FreeBSD, в Linux команда ifconfig не показывает одного из важнейших параметров: режим работы сетевой карты — т.е. ее скорость и дуплекс.

Как же посмотреть скорость сетевого интерфейса и дуплекс?

Вывод покажет нам имя сетевой карты устройства. Чтобы увидеть текущие значения скорости сетевого линка в Linux, а также — в полнодуплексном ли режиме оно работает или нет — нам понадобится утилита ethtool. Из коробки ее может не быть (вот такие приколы), потому следует поставить.

После этого запускаем ее с указанием — текущая скорость какой сетевой карты нас интересует и глядим в вывод:

$ sudo ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Supports auto-negotiation: Yes
Advertised link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 1000baseT/Full
Advertised pause frame use: No
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
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
Link detected: yes

Как посмотреть скорость и дуплекс сетевой карты в Linux?

Это и есть — искомые текущая скорость сетевого подключения и его дуплекс.

ПРОСМОТР СТАТИСТИКИ ИНТЕРФЕЙСА

sudo ethtool -S имя_устройства

Вау!! 😲 Ты еще не читал? Это зря!

Источник

Читайте также:  Vnc настройка alt linux

Linux режим работы сетевой карты

Команда ethtool позволяет использовать утилиту с соответствующим именем для изменения низкоуровневых параметров сетевых карт. Данная утилита способна изменять огромное количество параметров сетевых карт, большая часть из которых не интересна обычным пользователям. Кроме того, драйверы сетевых карт домашних компьютеров и ноутбуков не позволяют изменять большую часть поддерживаемых утилитой параметров, поэтому в большинстве случаев она используется для проверки и установки скорости сетевого соединения, а также режима работы сетевой карты.

Базовый синтаксис команды выглядит следующим образом:

# ethtool [параметры] имя-сетевого-интерфейса

Утилита поддерживает огромное количество параметров. Наиболее важными из них являются параметр -i, позволяющий получить информацию о драйвере сетевой карты, параметр -S, позволяющий получить статистику работы сетевой карты в случае поддержки этой функции драйвером, параметр -s, позволяющий установить скорость и режим работы сетевой карты, параметры -k и -K, позволяющие получить и установить значения параметров режима передачи данных, а также параметр -p, позволяющий идентифицировать порт сетевой карты с помощью мигающего индикатора.

Утилита работает с именами сетевых интерфейсов, связанных с сетевыми картами, поэтому для работы с ней нужно выяснить имя сетевого интерфейса, связанного с интересующей вас сетевой картой. Для этого может использоваться одна из следующих команд:

Установка утилиты

В первую очередь вам придется установить рассматриваемую утилиту; проще всего это сделать с помощью терминала путем исполнения соответствующей вашему дистрибутиву команды. Подробнее об установке программного обеспечения рассказано в данном разделе.

Команда для Linux Mint, Ubuntu и Debian:

$ sudo apt-get install ethtool

Команда для Fedora Workstation:

Примеры использования

Определение имени сетевого интерфейса

Для определения имени сетевого интерфейса, которое нужно передавать утилите ethtool, следует использовать утилиту ifconfig или ip. Вторая утилита предустановлена во всех популярных дистрибутивах, поэтому рассмотрим пример ее использования:

# ip a s
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: enp3s0: mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 8c:89:a5:57:76:ba brd ff:ff:ff:ff:ff:ff
inet 192.168.188.120/24 brd 192.168.188.255 scope global dynamic noprefixroute enp3s0
valid_lft 111sec preferred_lft 111sec
inet6 fe80::8e89:a5ff:fe57:76ba/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: wwp5s0f2u1u4i1: mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 02:50:f3:00:00:00 brd ff:ff:ff:ff:ff:ff

Читайте также:  Arch linux install 2021

Сетевое соединение через интересующую нас сетевую карту установлено, поэтому сетевой интерфейс с идентификатором 3 под названием wwp5s0f2u1u4i1 не подходит (state DOWN означает, что сетевой интерфейс деактивирован). Сетевой интерфейс с идентификатором 1 под названием lo также не подходит (state UNKNOWN означает, что сетевой интерфейс находится в неизвестном состоянии), кроме того, по флагу LOOPBACK можно установить, что это кольцевой интерфейс. Остается сетевой интерфейс с идентификатором 2 и именем enp3s0 в активном состоянии (state UP) с приведенными параметрами. Именно это имя и нужно использовать.

Получение параметров сетевой карты

Для получения параметров сетевой карты достаточно использовать утилиту без каких-либо параметров:

# ethtool enp3s0
Settings for enp3s0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: Not reported
Advertised pause frame use: No
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 100Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: pg
Wake-on: d
Current message level: 0x0000003f (63)
drv probe link timer ifdown ifup
Link detected: yes

Очевидно, что сетевая карта поддерживает сетевое соединение (Link detected: yes) в полнодуплексном режиме передачи (Duplex: Full) с максимальной скоростью в 100 Мб/с (Speed: 100Mb/s) через витую пару (Port: Twisted Pair). При этом она может передавать данные даже в полнодуплексном режиме со скоростью 1 Гб/с (Supported link modes: 10baseT/Half . 1000baseT/Full), поддерживает автосогласование (Supports auto-negotiation: Yes) и использует его (Advertised auto-negotiation: Yes).

Установка параметров сетевого соединения

Для установки параметров сетевого соединения следует использовать параметр -s:

# ethtool -s enp3s0 speed 10 duplex full autoneg off

Читайте также:  Fluxion kali linux установка

Это команда для снижения скорости передачи до 10 Мб/с (speed 10) в полнодуплексном режиме (duplex full) и отключения функции автосогласования (autoneg off). Для прверки изменений достаточно использовать утилиту без каких-либо параметров:

# ethtool enp3s0
Settings for enp3s0:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
Supported pause frame use: No
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 10baseT/Full
Advertised pause frame use: No
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 10Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: pg
Wake-on: d
Current message level: 0x0000003f (63)
drv probe link timer ifdown ifup
Link detected: yes

Очевидно, что теперь соединение установлено на скорости 10 Мб/с (Speed: 10Mb/s) без автосогласования (Advertised auto-negotiation: No).

Получение параметров драйвера сетевой карты

Для получения параметров драйвера сетевой карты достаточно использовать параметр -i:

# ethtool -i enp3s0
driver: atl1c
version: 1.0.1.1-NAPI
firmware-version:
expansion-rom-version:
bus-info: 0000:03:00.0
supports-statistics: no
supports-test: no
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

Очевидно, для управления сетевой картой используется драйвер atl1c версии 1.0.1.1-NAPI. Карта использует порт 0000:03:00.0, ее драйвер не не предоставляет доступа к механизмам сбора статистики (supports-statistics: no) и тестирования (supports-test: no).

Идентификация порта сетевой карты

Для идентификации порта сетевой карты с помощью мигающего индикатора достаточно использовать параметр -p:

# ethtool -p enp3s0 10
Cannot identify NIC: Operation not supported

Значение 10 устанавливает длительность периода мигания индикатора, равную 10 секундам. Очевидно, в моем случае сетевая карта не поддерживает подобную функцию.

Источник

Оцените статью
Adblock
detector