Сообщить об ошибке.

Практические шаги для выявления проблем с сетью в Linux

Содержание:

Материал посвящен диагностике и устранению проблем с сетевой картой в Linux. В ней подробно описаны команды для определения модели сетевого адаптера (lspci, lshw), проверки используемого драйвера (ethtool -i, lsmod), анализа поддерживаемых скоростей и ошибок (ethtool -S, dmesg).

Особое внимание уделено типичным проблемам: устаревшему "железу", отсутствию или сбоям драйверов (особенно для USB-Ethernet адаптеров на чипах Realtek, например r8152), а также аппаратным ограничениям. Приведены практические шаги по обновлению драйверов, ручной установке через DKMS, принудительной настройке скорости соединения и рекомендации по замене оборудования (например, использованию USB-Gigabit адаптера). В завершение - чек-лист для исключения внешних причин: кабель, USB-порт, питание.

Проверка драйверов и железа сетевой карты

Информация о сетевой карте

# Какая сетевая карта?
lspci | grep -i ethernet

# Или подробнее:
lspci -v | grep -i ethernet -A 10

Информация о драйвере

# выберете имя интерфейса сетевой карты для тестов
ip a

# Какие драйверы используются для сетевой карты
ethtool -i <называние интерфейса сетевой карты>
# например
ethtool -i enx00e04c68019a

# Или:
lshw -class network

Проверка драйверов в системе

# Какие сетевые драйверы загружены
lsmod | grep -i eth

# Или все сетевые модули
lsmod | grep -i net

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

# Подробная информация об оборудовании
sudo lshw -class network

# Или
hwinfo --network

Подробная диагностика сетевой карты

# Вся информация о интерфейсе
ethtool enx00e04c68019a

# Статистика ошибок
ethtool -S enx00e04c68019a

# Проверить поддержку скоростей
ethtool enx00e04c68019a | grep -A 10 "Supported link modes"

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

# 1. Узнаем модель сетевой карты
echo "=== Модель сетевой карты ==="
lspci | grep -i ethernet

# Выбираем имя интерфейса сетевой карты для тестов
ip link show
# или
ip a

# 2. Информация о драйвере
echo "=== Драйвер ==="
ethtool -i enx00e04c68019a

# 3. Поддерживаемые скорости
echo "=== Поддерживаемые скорости ==="
ethtool enx00e04c68019a | grep -A 5 "Supported link modes"

# 4. Ошибки в логах
echo "=== Ошибки в логах ==="
sudo dmesg | grep -i ethernet | tail -10

# 5. Статистика ошибок
echo "=== Статистика ошибок ==="
ethtool -S enx00e04c68019a | head -20

Интерпретация результатов

Если сетевая карта старая, то может не поддерживать 1000Mb/s

# НЕТ 1000baseT - значит не поддерживает гигабит
Supported link modes: 10baseT/Half 10baseT/Full
                     100baseT/Half 100baseT/Full

Если драйвер, то в dmesg будут ошибки типа:

  • [12.345] r8169 0000:03:00.0: eth0: link down
  • [12.456] r8169: can't load firmware wtf-1.fw

Если аппаратная проблема, то в статистике много ошибок. Ошибки проверяем командой:

# В статистике много ошибок:
ethtool -S enx00e04c68019a | grep error

Решения в зависимости от проблемы

Проблема с драйвером:

# Обновить драйверы
sudo apt update && sudo apt upgrade

# Или переустановить драйвер
sudo modprobe -r драйвер_имя
sudo modprobe драйвер_имя

Аппаратная проблема:

  • Купить USB-Gigabit адаптер
  • Или заменить сетевую карту (если desktop)

Ограничения карты:

  • карта не поддерживает 1000Mb/s или 100Mb/s, то будет только 10Mb/s. Временное решение - USB адаптер

Если сетевая карта неисправна или старая:

  • Купить USB 3.0 to Gigabit Ethernet адаптер
  • Цена: ~1500-3000 руб
  • Скорость: 1000Mb/s

Проблема с драйвером USB адаптера

Например, пакет r8152-dkms не найден в репозиториях. Давайте починим USB адаптер:

Проверить доступные драйверы

# Поиск драйверов для Realtek R8152
apt search r8152

# Или общие сетевые драйверы
apt search realtek

Обновить систему и установить dkms

sudo apt update
sudo apt install dkms linux-headers-$(uname -r)

Установить драйвер вручную

Вариант A: Из официального репозитория

sudo apt install r8152-dkms

Вариант B: Если пакет не найден

# Установить из backports или non-free
sudo apt install firmware-realtek

Вариант C: Скачать и установить вручную

# Скачать драйвер с GitHub
wget https://github.com/wget/realtek-r8152/archive/refs/heads/master.zip
# Или
git clone https://github.com/awilliam/realtek-r8152

Принудительно установить скорость

# Попробовать разные скорости:
sudo ethtool -s enx00e04c68019a autoneg off speed 1000 duplex full

# Если не работает, попробовать 100 Mb/s:
sudo ethtool -s enx00e04c68019a autoneg off speed 100 duplex full

# Проверить результат:
ethtool enx00e04c68019a | grep -E "Speed|Duplex"

Перезагрузить драйвер

# Выгрузить и загрузить драйвер заново
sudo modprobe -r r8152
sudo modprobe r8152

# Или перезагрузить интерфейс
sudo ip link set enx00e04c68019a down
sudo ip link set enx00e04c68019a up

Практические шаги, запустите последовательно

# 1. Обновить систему
sudo apt update && sudo apt upgrade -y

# 2. Установить базовые драйверы
sudo apt install dkms linux-headers-$(uname -r) firmware-realtek

# 3. Принудительно установить скорость
sudo ethtool -s enx00e04c68019a autoneg off speed 1000 duplex full

# 4. Проверить результат
ethtool enx00e04c68019a | grep -E "Speed|Duplex"

Если все еще есть проблема, то она ФИЗИЧЕСКАЯ

Проверить:

  1. USB порт - попробовать другой USB 3.0 порт (синий)
  2. Кабель - заменить Ethernet кабель
  3. USB хаб - если используете хаб, подключить напрямую
  4. Питание - убедиться что USB порт дает достаточно питания