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
Анализ открытых портов
Проверка файрвола

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