Материал посвящен диагностике и устранению проблем с сетевой картой в 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 драйвер_имя
Аппаратная проблема:
Ограничения карты:
Если сетевая карта неисправна или старая:
Например, пакет 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"