linux-labs

Вики / Сеть

ethtool (настройки сетевой карты)

Команда Linux · ethtool СетьТраблшутинг

Скорость и дуплекс линка, статистика ошибок, тип кабеля — диагностика NIC.

ethtool показывает и настраивает параметры физической сетевой карты: скорость, дуплекс, состояние линка, статистику ошибок, offload-функции. Когда «сеть тормозит на железном уровне» — сюда.

sudo ethtool eth0                 # скорость, дуплекс, есть ли линк
sudo ethtool -i eth0              # драйвер и прошивка
Ключ Значение
(без ключа) Speed / Duplex / Link detected / поддерживаемые режимы
-i драйвер, версия, firmware, bus
-S статистика NIC (ошибки, дропы, коллизии)
-k состояние offload (gro/gso/tso/checksum)
-K включить/выключить offload
-g / -G размеры кольцевых буферов (показать/задать)
-p N мигать индикатором N секунд (найти порт)
-s задать speed/duplex/autoneg/wol
sudo ethtool eth0                 # Speed/Duplex/Link detected
sudo ethtool -S eth0             # статистика (rx_errors, rx_dropped, crc)
sudo ethtool -S eth0 | grep -iE 'err|drop|crc'   # только проблемные счётчики
sudo ethtool -i eth0             # драйвер/версия/firmware
sudo ethtool -k eth0             # offload-флаги (gro, tso, …)
sudo ethtool -g eth0             # размеры RX/TX ring buffer
sudo ethtool -p eth0 10          # мигать индикатором 10 c (найти порт физически)

# изменения (временно; постоянно — через netplan/networkd):
sudo ethtool -G eth0 rx 4096      # увеличить RX-буфер (при дропах под нагрузкой)
sudo ethtool -K eth0 gro off      # отключить offload (отладка странных задержек)
sudo ethtool -s eth0 speed 1000 duplex full autoneg off   # жёстко (обычно НЕ нужно)

Имя интерфейса — из ip -br l. Постоянные настройки — через netplan, а не разовыми ethtool -s.

«Сеть медленная» на физическом уровне

sudo ethtool eth0Speed и Duplex. 100Mb/s вместо 1000 или Half дуплекс = плохой кабель/порт/согласование. Link detected: no — нет линка вообще.

Растут ошибки/дропы

ethtool -S eth0rx_errors, rx_dropped, rx_crc_errors. CRC-ошибки → кабель/ порт/SFP; дропы под нагрузкой → маленькие ring-буферы (подними -G) или перегрузка. Сравни счётчики до/после нагрузки.

Не знаю, какой порт физически

sudo ethtool -p eth0 10 — помигает светодиодом порта 10 секунд.

Скорость «прыгает» / half-duplex

Проблема автосогласования с коммутатором. Чинить на обеих сторонах (autoneg), а не жёстко фиксировать -s с одной стороны (рассинхрон → коллизии).

Странные задержки/таймауты под нагрузкой

Иногда виноват offload (GRO/TSO) с конкретным драйвером. Для проверки временно ethtool -K eth0 gro off tso off и сравни поведение.

sudo ethtool eth0                 # Speed/Duplex/Link
sudo ethtool -S eth0             # ошибки/дропы
sudo ethtool -i eth0             # драйвер/firmware
sudo ethtool -g eth0             # ring-буферы (-G чтобы поднять)
sudo ethtool -p eth0 10          # мигать портом (найти физически)