Linux

Диагностика сетевых проблем в Linux: практическое руководство

Подробный гайд по диагностике и устранению сетевых неполадок в Linux. Включает проверку интерфейсов, тестирование связности, анализ DNS и диагностику портов.

Обновлено 9 апреля 2026 г.
15-30 мин
Средняя
FixPedia Team
Применимо к:Ubuntu 22.04+Debian 12+CentOS StreamFedora 38+

Введение

Сетевые проблемы — одна из самых частых задач, с которыми сталкиваются администраторы и пользователи Linux. Неработающий интерфейс, недоступные ресурсы, медленное соединение — всё это требует системного подхода к диагностике. В этом гайде собраны основные команды и методы, которые помогут быстро найти причину неполадок и восстановить работу сети.

Статья охватывает диагностику на всех уровнях: от физического подключения до DNS и файрвола. Все примеры работают в современных дистрибутивах Ubuntu, Debian, CentOS и Fedora.

Подготовка

Перед началом диагностики убедитесь, что у вас есть доступ к терминалу с правами суперпользователя (для некоторых команд). Также полезно знать:

  • IP-адрес вашего компьютера
  • IP-адрес шлюза (роутера)
  • адреса DNS-серверов (обычно предоставляются провайдером или настраиваются автоматически)

Если вы подключены через WiFi, сначала убедитесь, что беспроводной адаптер включён и ассоциирован с точкой доступа.

Шаг 1: Проверка состояния сетевых интерфейсов

Начните с просмотра всех сетевых интерфейсов и их текущего состояния:

ip link show

Вы увидите список интерфейсов (обычно eth0 или enp0s3 для проводных, wlan0 или wlp2s0 для беспроводных, lo — локальный интерфейс). Обратите внимание на строку состояния:

  • UP, LOWER_UP — интерфейс включён и работает
  • DOWN — интерфейс отключён
  • NO-CARRIER — кабель не подключён или проблемы с физическим соединением

Если интерфейс в состоянии DOWN, включите его:

sudo ip link set eth0 up

Для получения подробной информации об IP-адресах выполните:

ip addr show

Здесь вы увидите назначенные IP-адреса, маску подсети и состояние интерфейса. Если адрес отсутствует (нет строки inet), это объясняет проблемы с сетью.

Шаг 2: Тестирование базового подключения

После проверки интерфейсов переходите к тестированию связности. Сначала пропингуйте локальный шлюз:

ping -c 4 192.168.1.1

⚠️ Важно: замените 192.168.1.1 на реальный IP-адрес вашего роутера. Узнать его можно командой ip route | grep default.

Если пинг проходит успешно (вы видите ответы от шлюза), переходите к тестированию внешнего подключения:

ping -c 4 8.8.8.8

Мы используем Google DNS (8.8.8.8) потому, что этот адрес всегда доступен и редко блокируется. Отсутствие ответов означает проблему с маршрутизацией или файрволом.

💡 Совет: для непрерывного мониторинга используйте ping без ключа -c. Нажмите Ctrl+C для остановки.

Шаг 3: Диагностика маршрутизации

Если пинг до шлюза работает, но до внешних адресов — нет, проблема в маршрутизации. Просмотрите таблицу маршрутов:

ip route show

Типичный вывод:

default via 192.168.1.1 dev eth0 proto dhcp
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100

Первая строка — маршрут по умолчанию (шлюз для всего исходящего трафика). Вторая — локальная сеть. Если маршрут по умолчанию отсутствует, интернет работать не будет.

Добавить шлюз вручную можно так:

sudo ip route add default via 192.168.1.1

Но это временное решение — после перезагрузки настройки сбросятся. Лучше настроить DHCP или прописать статический маршрут в конфигурации системы.

Шаг 4: Проверка DNS

Когда пинг по IP-адресам работает, но сайты не открываются, — это классический признак проблем с DNS. Сначала проверьте, какие DNS-серверы используются:

cat /etc/resolv.conf

Современные дистрибутивы (systemd-resolved) могут не использовать этот файл напрямую. Проверьте текущие DNS:

resolvectl status

Теперь протестируйте разрешение имён:

nslookup ya.ru

или

dig ya.ru

Если команды возвращают ошибку или не находят адрес, проблема в DNS-серверах. Временное решение — использовать публичные DNS (например, Google 8.8.8.8 или Cloudflare 1.1.1.1):

sudo resolvectl dns eth0 8.8.8.8 1.1.1.1

Для постоянной настройки отредактируйте файл /etc/netplan/*.yaml (Ubuntu) или создайте конфигурацию в NetworkManager.

Шаг 5: Анализ открытых портов и служб

Иногда проблема не в подключении, а в том, что нужная служба не работает или слушает не тот порт. Просмотрите все открытые порты:

ss -tulpn

Ключи означают:

  • -t — TCP-порты
  • -u — UDP-порты
  • -l — только слушающие
  • -p — показать процессы

Вы увидите таблицу с адресами, портами и именами процессов. Например:

LISTEN  0  511  0.0.0.0:22   0.0.0.0:*  users:(("sshd",pid=1234))

Если нужный порт (например, 80 для веб-сервера) отсутствует в списке, проверьте, запущена ли соответствующая служба:

sudo systemctl status nginx

Шаг 6: Проверка файрвола

Брандмауэр может блокировать как входящие, так и исходящие соединения. Проверьте текущие правила.

Для iptables:

sudo iptables -L -v -n

Для ufw (Ubuntu):

sudo ufw status verbose

Для firewalld (CentOS, Fedora):

sudo firewall-cmd --list-all

💡 Совет: если вы не уверены в настройках файрвола, временно отключите его для теста, а затем настройте правила корректно.

Отключить файрвол временно:

# ufw
sudo ufw disable

# firewalld
sudo systemctl stop firewalld

# iptables (требует перечисления всех правил)
sudo iptables -F

Проверка результата

После выполнения шагов убедитесь, что сеть работает:

  1. Интерфейс включёнip link show должен показывать статус UP
  2. Есть IP-адресip addr показывает адрес в вашей подсети
  3. Пинг до шлюза работает — ответы от роутера
  4. Пинг до интернета работает — ответы от 8.8.8.8
  5. DNS работаетnslookup ya.ru возвращает IP-адрес

Если всё перечисленное выполняется — сеть работает корректно.

Возможные проблемы

Нет IP-адреса после перезагрузки Проверьте, что служба DHCP-клиента работает: sudo systemctl status systemd-networkd или NetworkManager. Для статического IP настройте конфигурацию в /etc/netplan/ или через NetworkManager.

Соединение устанавливается, но обрывается Проверьте качество кабеля (для проводного подключения) или сигнал WiFi. Используйте iwconfig для беспроводного адаптера и sudoiwlist wlan0 scan для поиска сетей.

Скорость очень низкая Запустите тест скорости и проверьте загрузку интерфейса: ip -s link. Проблема может быть в дуплексе (полный/полудуплекс) — настройте вручную: sudo ethtool -s eth0 speed 100 duplex full.

Часто задаваемые вопросы

Как быстро проверить, работает ли сеть в Linux?
Почему сайт не открывается, хотя интернет работает?
Как узнать, какие порты открыты и слушаются?
Как определить, где теряются пакеты?

Полезное

Проверка состояния сетевых интерфейсов
Тестирование базового подключения
Диагностика маршрутизации
Проверка DNS
Анализ открытых портов
Проверка файрвола

Эта статья помогла вам решить проблему?

Похожее

Настройка сети Ubuntu: руководство по сетевым интерфейсам

В этом руководстве подробно описано, как настроить сеть в Ubuntu, включая выделение статического и динамического IP-адресов, проверку подключения и устранение распространенных проблем. После выполнения инструкций вы сможете вручную управлять сетевыми настройками системы.

Как исправить проблемы Wi-Fi в Linux: пошаговое руководство

В этом гайде мы расскажем, как диагностировать и исправить сбои Wi-Fi в Linux. После выполнения инструкции вы сможете стабильно подключаться к беспроводным сетям и устранять распространённые ошибки.

Настройка брандмауэра Linux: полное пошаговое руководство

В этом руководстве вы научитесь настроить брандмауэр в Linux, используя популярные инструменты UFW и firewalld. После выполнения инструкции вы сможете контролировать сетевой трафик и защитить систему.