Как проверить, установлена ли скорость сетевого интерфейса в Linux

LinuxLinuxBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы узнаете, как проверить скорость сетевого интерфейса в Linux. Мы рассмотрим три распространенных метода для этого.

Во - первых, вы будете использовать команду ethtool, мощный инструмент для запроса и управления сетевыми настройками. Затем вы узнаете, как определить свой сетевой интерфейс с помощью команды ip link show. Наконец, мы покажем, как проверить скорость сетевого интерфейса, изучив содержимое каталога /sys/class/net.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") subgraph Lab Skills linux/cat -.-> lab-558737{{"Как проверить, установлена ли скорость сетевого интерфейса в Linux"}} linux/ip -.-> lab-558737{{"Как проверить, установлена ли скорость сетевого интерфейса в Linux"}} linux/apt -.-> lab-558737{{"Как проверить, установлена ли скорость сетевого интерфейса в Linux"}} end

Проверка скорости с помощью ethtool

На этом этапе мы узнаем, как проверить скорость сетевого интерфейса с использованием команды ethtool. ethtool - это утилита командной строки для запроса и управления настройками сетевого драйвера и аппаратного обеспечения.

Во - первых, определим имя вашего сетевого интерфейса. В большинстве Linux - сред, основной сетевой интерфейс часто называется eth0 или имеет аналогичное имя, например enpXsY. Обычно вы можете найти имя, посмотрев вывод команды ip link show, которую мы рассмотрим на следующем этапе. Пока предположим, что ваш интерфейс называется eth0.

Чтобы проверить скорость интерфейса eth0, откройте терминал и введите следующую команду:

sudo ethtool eth0

Нажмите Enter.

Вы увидите вывод, похожий на следующий:

Settings for eth0:
        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
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Speed: 1000Mb/s
        Duplex: Full
        Port: Twisted Pair
        PHYAD: 0
        Transceiver: internal
        Auto-negotiation: on
        MDI-X: Unknown
        Supports Wake-on: d
        Wake-on: d
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

Найдите строку, начинающуюся с Speed:. Эта строка показывает текущую скорость вашего сетевого соединения. В приведенном выше примере скорость составляет 1000Mb/s.

Если вы получаете ошибку вида command not found, это означает, что ethtool не установлен. Вы можете установить его с помощью менеджера пакетов:

sudo apt update
sudo apt install ethtool -y

После установки попробуйте снова выполнить команду sudo ethtool eth0.

Не забудьте заменить eth0 на фактическое имя вашего сетевого интерфейса, если оно отличается.

Нажмите Продолжить, чтобы перейти к следующему шагу.

На предыдущем этапе мы использовали ethtool для проверки сетевой скорости, предполагая, что имя интерфейса - eth0. Однако имена сетевых интерфейсов могут различаться. На этом этапе мы будем использовать команду ip link show для вывода списка всех сетевых интерфейсов и проверки их статуса.

Команда ip - это мощный инструмент для настройки сети в Linux. Объект link используется для управления сетевыми интерфейсами, а действие show отображает информацию о них.

Откройте терминал и введите следующую команду:

ip link show

Нажмите Enter.

Вы увидите вывод, похожий на следующий, в котором перечислены ваши сетевые интерфейсы:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff

В этом выводе:

  • lo - это локальный петлевой интерфейс (loopback interface), используемый для внутреннего обмена данными на одной машине.
  • eth0 - скорее всего, ваш основной сетевой интерфейс, подключенный к внешней сети. Имя может отличаться в других средах (например, enp3s0).
  • <BROADCAST,MULTICAST,UP,LOWER_UP> указывает состояние и возможности интерфейса. UP означает, что интерфейс активен.
  • mtu - это Максимальная передаваемая единица (Maximum Transmission Unit).
  • state UP подтверждает, что интерфейс работает.

Определите имя основного сетевого интерфейса из вывода. Обычно это интерфейс, который находится в состоянии UP и не является lo. В нашей среде LabEx это eth0.

Теперь вы знаете, как найти правильное имя сетевого интерфейса, что является важным для использования таких команд, как ethtool.

Нажмите Продолжить, чтобы перейти к следующему этапу.

Проверка скорости в /sys/class/net

В дополнение к использованию таких команд, как ethtool, вы также можете найти информацию о сетевых интерфейсах непосредственно в файловой системе Linux, а именно в каталоге /sys. Файловая система /sys предоставляет интерфейс к структурам данных ядра.

Информация о сетевых интерфейсах обычно находится в /sys/class/net/. Внутри этого каталога вы найдете подкаталоги, именованные в соответствии с каждым сетевым интерфейсом на вашей системе (например, eth0, lo).

Чтобы найти информацию о скорости основного интерфейса (который мы определили как eth0 на предыдущем этапе), вы можете посмотреть в файл /sys/class/net/eth0/speed.

Откройте терминал и используйте команду cat для просмотра содержимого этого файла:

cat /sys/class/net/eth0/speed

Нажмите Enter.

В качестве вывода вы должны увидеть одно число, представляющее скорость соединения в мегабитах в секунду (Mb/s).

1000

Этот вывод подтверждает, что скорость интерфейса eth0 составляет 1000 Mb/s, что соответствует информации, полученной с помощью ethtool.

Этот метод проверки скорости путем чтения файла в /sys полезен, так как не требует установки дополнительных инструментов, таких как ethtool. Это прямой способ получить доступ к информации, которую ядро делает доступной.

Помните, что путь /sys/class/net/eth0/speed предполагает, что имя вашего сетевого интерфейса - eth0. Если у вашего интерфейса другое имя, вы должны заменить eth0 на правильное имя.

Теперь вы узнали три разных способа получить информацию о своих сетевых интерфейсах и их скорости!

Нажмите Продолжить, чтобы завершить этот практический урок.

Резюме

В этом практическом уроке мы узнали, как проверить скорость сетевого интерфейса в Linux с использованием трех разных методов. Сначала мы использовали команду ethtool, мощный инструмент для запроса и управления сетевыми настройками, чтобы напрямую отобразить скорость интерфейса. Затем мы изучили команду ip link show для определения имени сетевого интерфейса, что является важным для использования таких инструментов, как ethtool. Наконец, мы обнаружили, как проверить каталог /sys/class/net, часть виртуальной файловой системы sysfs, чтобы найти информацию о скорости интерфейса, изучив содержимое файла speed в каталоге интерфейса. Эти методы предоставляют различные способы доступа и проверки скорости сетевого интерфейса, обеспечивая гибкость в зависимости от ситуации и доступных инструментов.