Что покажет ethtool и в каких случаях он нужен
Если по кабелю скорость заметно ниже той, что заявлена в договоре, первым делом стоит проверить, на какой скорости вообще работает порт компьютера. Ответ даёт ethtool: он читает параметры сетевой карты и сообщает, что именно согласовано с коммутатором или роутером. Wi-Fi-адаптеры такие сведения выдают ограниченно, поэтому утилита нужна в первую очередь для проводных интерфейсов.
Установка зависит от дистрибутива: во многих системах пакет называется ethtool, и в базовую установку он может не входить. Для чтения параметров обычно хватает прав обычного пользователя, а часть сведений и любые изменения требуют sudo.
Имя интерфейса узнайте командой ip link. В современных системах оно бывает вида eth0, enp3s0 или похожим: в нём закодировано место устройства на шине. Дальше все примеры будут с условным именем eth0, подставьте своё.
Читаем вывод ethtool eth0
Выполните ethtool eth0. Для проверки скорости достаточно нескольких строк, остальное можно пропустить.
| Поле | Что означает |
|---|---|
| Speed | Согласованная скорость, например 1000Mb/s |
| Duplex | Full или Half, режим передачи |
| Auto-negotiation | on, если стороны договариваются автоматически |
| Link detected | yes, если кабель подключён и на другом конце есть устройство |
| Supported link modes | Режимы, которые поддерживает карта |
| Advertised link modes | Режимы, которые карта предлагает партнёру |
Ожидаемая картина для современной домашней сети: Duplex Full, Auto-negotiation on, Link detected yes. Скорость зависит от оборудования: если порт карты и порт роутера гигабитные, а кабель исправен, согласуется 1000Mb/s. Если же вы видите 100Mb/s на гигабитном оборудовании, причину обычно ищут в кабеле, разъёмах или портах.
Если Speed показывает Unknown! и Link detected no, соединения нет: кабель выдернут, устройство на другом конце выключено либо кабель повреждён.
Типичные находки и что с ними делать
Несколько ситуаций встречаются чаще остальных. Для каждой есть простая последовательность проверок.
- Скорость 100Mb/s вместо 1000Mb/s. Проверьте кабель: для гигабитной скорости нужны исправные пары по всей длине. Попробуйте другой кабель и другой порт на роутере. Старый или плохо обжатый кабель способен работать на меньшей скорости, но не на гигабитной.
- Duplex Half. Это почти всегда признак проблемы согласования. Проверьте, что на обоих концах включено автосогласование, и замените кабель.
- Link detected no при подключённом кабеле. Проверьте индикаторы на разъёме, другой порт и другой кабель, затем перезапустите устройство на другом конце.
- Скорость периодически меняется. Это сигнал о контакте: гнездо разболталось или кабель повреждён. Если связь то пропадает, то возвращается, посмотрите журнал ядра командой dmesg: там фиксируются события потери и восстановления линка.
Фиксировать скорость вручную ключом -s без необходимости не стоит. Автосогласование для современного оборудования работает штатно, а принудительные значения на одной стороне при автоматике на другой дают как раз половинный дуплекс.
Счётчики ошибок: ip -s link и ethtool -S
Скорость порта не показывает, теряются ли пакеты. Для этого читают счётчики интерфейса. Самая переносимая команда — ip -s link show dev eth0. В выводе два блока, RX для принятого и TX для отправленного, со столбцами bytes, packets, errors, dropped и другими.
Растущие errors на приёме чаще всего указывают на физический уровень: кабель, разъём, помехи. Значение dropped говорит, что пакеты были отброшены системой, и причин у него больше: переполнение очередей, фильтры, нехватка ресурсов. Одно ненулевое значение не повод для тревоги: счётчики копятся с момента загрузки драйвера.
Правильный способ оценки — сравнение во времени. Запишите значения, подождите, понаблюдайте при нагрузке и посмотрите, растут ли ошибки. Если счётчики стоят на месте, проблема не здесь.
Подробный список счётчиков конкретной карты даёт ethtool -S eth0. Их названия зависят от драйвера и у разных моделей отличаются, поэтому ищите строки со словами error, crc, drop. В macOS близкую информацию по числу ошибок выводит netstat -i, а ethtool там отсутствует.
Порядок диагностики проводного подключения
Соберите проверки в одну последовательность, чтобы не искать причину наугад.
- ethtool eth0 — есть ли линк и какая скорость согласована.
- ip -s link show dev eth0 — растут ли ошибки на приёме и передаче.
- Замена кабеля и порта на роутере — меняется ли результат.
- ping шлюза с большим числом пакетов — есть ли потери внутри локальной сети.
- Тест скорости внутри сети, например iperf3, — проверяет канал без влияния интернета.
Если до роутера всё идеально, а медленно только в интернете, причина дальше: у провайдера, на маршруте или на стороне сайта. Тогда помогут трассировка и отчёты mtr. Если же скорость порта ниже ожидаемой, замена кабеля чаще всего решает вопрос за несколько минут.
Когда ошибки не прекращаются даже после замены кабеля и порта, возможна неисправность сетевой карты или порта роутера. Это уже тема для обращения в сервисный центр или к провайдеру.
Что ethtool не покажет
Важно понимать границы утилиты. Она отвечает за состояние порта и карты, но не измеряет реальную скорость передачи данных. Согласованная скорость 1000Mb/s означает возможности канала, а не то, что файлы будут копироваться именно с такой скоростью: на результат влияют диск, процессор, нагрузка на сеть и настройки программ.
Не покажет она и качество маршрута до сайтов в интернете. Если медленно открываются только внешние ресурсы, а внутри сети всё быстро, ищите причину дальше роутера. Вообще, не ожидайте от одной команды ответа на все вопросы: ethtool закрывает лишь начальный участок цепочки между компьютером и ближайшим устройством.
Наконец, в виртуальных машинах и контейнерах значения могут быть условными: виртуальный адаптер сообщает скорость, не связанную с реальным кабелем. Для таких случаев важнее проверять физический хост.