Другое

Как проверить скорость сети в Linux на роутере Beeline

Альтернативные методы проверки скорости соединения на старом роутере Beeline Smart Box TURBO+ с ядром 3.10.14, когда ethtool недоступен.

Как проверить скорость сетевого соединения в Linux на старом роутере Beeline Smart Box TURBO+?

У меня есть старый роутер на ядре 3.10.14 (Beeline Smart Box TURBO+ с родной прошивкой). В веб-интерфейсе он отображает скорость соединения для LAN-портов, но не показывает для WAN-порта. При попытке проверить скорость через консоль с помощью команды cat sys/class/net/ra0/speed возникает ошибка: ‘cat: read error: Invalid argument’. Команда ethtool также недоступна.

Откуда роутер получает информацию о скорости соединения, которую отображает в статусе веб-интерфейса, и как можно проверить эту информацию через командную строку?

Для проверки скорости сетевого соединения на вашем роутере Beeline Smart Box TURBO+ с ядром 3.10.14 можно использовать несколько альтернативных методов, так как стандартный подход через /sys/class/net/ не работает, а ethtool недоступен.


Содержание


Альтернативные методы проверки скорости

На старых системах с ядром 3.10.x существует несколько способов проверить скорость сетевого соединения без ethtool:

  1. Чтение из sysfs - прямой доступ к информации ядра
  2. mii-tool - утилита для работы с MII интерфейсами
  3. networkctl - современный инструмент из systemd
  4. Анализ системных логов - dmesg и системные файлы

Эти методы основаны на том, что информация о скорости соединения хранится в разных местах системы, включая пространство ядра (sysfs), системные логи и аппаратные регистры сетевого контроллера.


Использование sysfs с правильным именем интерфейса

Проблема с вашей командой cat sys/class/net/ra0/speed может быть связана с неправильным именем интерфейса или особенностями ядра 3.10.14.

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

bash
ls /sys/class/net/

Затем попробуйте прочитать скорость для каждого обнаруженного интерфейса:

bash
cat /sys/class/net/<interface_name>/speed

На вашем роутере Beeline Smart Box TURBO+ интерфейсы могут называться:

  • eth0 - основной Ethernet интерфейс
  • wan - WAN интерфейс
  • ra0 - беспроводной интерфейс (Wi-Fi)

Если вы получаете ошибку “Invalid argument”, это означает, что интерфейс либо не поддерживает чтение скорости через sysfs, либо не настроен должным образом в данном ядре.


Проверка через mii-tool

mii-tool часто доступен даже на старых системах, где ethtool отсутствует. Эта утилита работает с Media Independent Interface (MII) и может показать реальную скорость соединения:

bash
mii-tool

Для проверки конкретного интерфейса:

bash
mii-tool eth0

Пример вывода:

eth0: negotiated 100baseTx-FD, link ok

Это покажет фактическую скорость и режим работы (half/full duplex). Как указано в ответах на Server Fault, mii-tool обычно показывает реальную скорость работы, в отличие от ethtool, который может показывать максимальную поддерживаемую скорость.


Просмотр системных логов

Информация о скорости соединения может быть записана в системных логах. Проверьте:

bash
dmesg | grep -i speed
dmesg | grep -i eth
dmesg | grep -i link

Также можно проверить файлы в /proc/net/:

bash
ls /proc/net/
cat /proc/net/dev

Файл /proc/net/dev показывает статистику по интерфейсам, но не всегда содержит информацию о скорости.


Анализ веб-интерфейса

Как вы заметили, веб-интерфейс роутера успешно отображает скорость для LAN-портов. Эта информация берется из системных данных, к которым имеет доступ веб-сервер роутера.

Исходя из данных WikiDevi, ваш роутер использует MediaTek MT7621AT chipset, который поддерживает различные скорости. Веб-интерфейс, скорее всего, читает информацию из тех же системных источников, что мы пытаемся использовать через командную строку.


Особенности вашего роутера

Согласно исследованиям, ваш Beeline Smart Box TURBO+ имеет следующие характеристики:

  • Чипсет: MediaTek MT7621AT
  • Ядро: Linux 3.10.14 (как показано в TechInfoDepot)
  • LAN скорость: 100M для некоторых моделей, 100M + 1GbE для других
  • WAN скорость: 100M или 1GbE в зависимости от модели

Ваша проблема с чтением скорости через sysfs может быть связана с особенностями реализации MediaTek MT7621 в ядре 3.10.14, которое имеет ограничения в полном раскрытии информации через sysfs.


Решение проблемы “Invalid argument”

Ошибка “Invalid argument” при чтении /sys/class/net/ra0/speed обычно означает одно из следующих:

  1. Неправильное имя интерфейса - интерфейс ra0 может быть беспроводным и не поддерживать чтение скорости
  2. Отсутствие драйвера - драйвер сетевого контроллера не полностью поддерживает чтение скорости через sysfs
  3. Особенности ядра 3.10 - в этом ядре sysfs может не полностью реализован для некоторых интерфейсов

Рекомендуемые шаги:

  1. Проверьте все доступные интерфейсы:

    bash
    ifconfig -a
    ip addr show
    
  2. Попробуйте использовать другие методы:

    bash
    mii-tool eth0  # если eth0 существует
    mii-tool wan   # если wan существует
    
  3. Проверьте системные логи на предмет сообщений о скорости:

    bash
    dmesg | grep -E "(speed|link|eth|media)"
    
  4. Если ничего не помогает, проверьте конфигурацию сети:

    bash
    cat /etc/network/interfaces  # или аналогичные файлы
    

На практике, для роутеров с ядром 3.10.x наиболее надежным методом часто остается mii-tool, так как он работает на более низком уровне и менее зависит от особенностей реализации sysfs в конкретном ядре.

Авторы
Проверено модерацией
Модерация