Как настраивать и устранять неполадки сетей в Linux
10:12, 25.05.2026
На любом сервере под управлением Linux могут возникать определенные проблемы, и для их решения очень важно иметь под рукой полезные методы и инструменты. Неважно, какой именно дистрибутив Linux вы используете, поскольку основные процессы и настройки достаточно универсальны. Именно поэтому мы решили поделиться несколькими важными командами, которые помогут в устранении неполадок.
Если ваш сервер Linux недоступен, у вас все равно должна быть возможность войти в панель управления или подключиться через VNC. После входа проверьте подключение к Интернету. Это можно сделать следующим образом:
ping -c 4 8.8.8.8
Если сервер не может связаться ни с одним адресатом, возможно, есть проблемы с конфигурацией. Итак, начнем процесс с проверки сетевых настроек.
Проверьте свои сетевые настройки
Первое, что следует сделать, — это проверить сетевые интерфейсы. Чтобы проверить состояние всех интерфейсов, ip addr требуется команда. С ее помощью вы можете проверить, включены ли такие критически важные соединения, как eth0. После обнаружения отключенных интерфейсов вы можете активировать их с помощью ifup. Для перезапуска следует использовать следующие команды: ifdown –force и ifup.
После использования команды ip addr вы увидите состояние каждого интерфейса. Чтобы включить отключенные интерфейсы, воспользуйтесь следующим:
sudo ifup <название интерфейса>
После включения всех интерфейсов повторите команду ping. Если проблема не решена, проверьте, присвоены ли интерфейсам IP-адреса.
Для перезапуска любого проблемного интерфейса используйте:
sudo ifdown <название интерфейса>
sudo ifup <название интерфейса>
Если это не поможет, рекомендуется попробовать:
sudo ifdown --force <название интерфейса>
sudo ifup <название интерфейса>
Если это помогло, отлично; если нет, мы поможем вам с другими возможными способами устранения неполадок.
Просмотрите файл конфигурации сети
Большинство настроек сети хранится в файлах, и изменения можно внести, открыв их в текстовом редакторе. Для систем на базе Ubuntu и Debian это можно сделать так:
sudo nano /etc/network/interfaces
В Red Hat и CentOS информация о сетевых интерфейсах распределена между несколькими файлами. Интерфейсом по умолчанию обычно является eth0.
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
Если после открытия этих файлов вы заметите, что информация в них не соответствует исходной функциональности, вам следует отредактировать файлы. Вы можете перезапустить интерфейсы, воспользовавшись рекомендациями, о которых мы уже упоминали, с помощью команд ifdown и ifup. Это следует сделать после внесения необходимых изменений в файлы.
Проверьте конфигурацию DNS-сервера
Если сервер пропингует IP-адрес, но не может подключиться к домену, это может быть связано с проблемой DNS. Чтобы проверить распознавание доменного имени, воспользуйтесь командой:
ping upcloud.com
Затем проверьте, правильно ли настроена конфигурация DNS. Если домен не отвечает, проблема может быть связана с тем, что доменное имя не распознается как IP-адрес. В этом случае лучше проверить записи DNS:
sudo cat /etc/resolv.conf
Список должен содержать как минимум одно имя, а все DNS-серверы по умолчанию должны иметь одинаковый IP-адрес. DNS-серверы предоставляются автоматически протоколом DHCP, и нет необходимости в ручной настройке.
Если этот список пуст, не добавляйте его вручную, но в некоторых системах Debian воспользуйтесь следующей командой:
sudo resolvconf -u
Но эта команда будет работать только при условии, что у вас установлен resolv.conf; если нет, воспользуйтесь:
sudo nano /etc/resolv.conf
На следующем шаге добавьте следующие строки и сохраните файл:
nameserver 8.8.8.8
nameserver 8.8.4.4
Если после команды обновления файл resolv.conf пуст, добавьте имена серверов в файл интерфейсов.
sudo nano /etc/network/interfaces
Следующую информацию следует добавить после раздела eth0:
iface eth0 inet dhcp
dns-nameservers 94.237.127.9
Затем сохраните файл со всеми изменениями и перезапустите сетевую службу с помощью:
sudo service networking restart
Для пользователей Red Hat и CentOS процесс может несколько отличаться. Если файл resolv.conf пуст, вы можете добавить две записи DNS. Чтобы открыть файл, воспользуйтесь следующей командой:
sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0
Отредактированный файл должен выглядеть так:
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=8.8.8.8
DNS2=8.8.4.4
После выхода из редактора перезапустите интерфейс.
Проведите тесты двустороннего соединения
Чтобы выполнить ping-тест сервера через Интернет, откройте командную строку и введите следующую команду. Публичный IP-адрес сервера можно проверить в панели управления UpCloud:
ping <публичный IP-адрес сервера>
Проверка подключения к Интернету с помощью команды ping на другой веб-сайт с сервера может быть выполнена следующим образом:
ping 8.8.8.8
В случае, если в учетной записи развернут другой сервер, а проблема заключается в интерфейсе, предназначенном для частного IP-адреса. Тогда лучшим вариантом является отправка команды ping на сервер с и на частный IP-адрес. Если команда ping не работает, рекомендуется перезапустить сетевые службы.
Для пользователей Ubuntu и Debian команда выглядит так:
sudo service networking restart
Для систем Red Hat и CentOS используйте такую команду:
sudo service network restart
Для Ubuntu 14.04 и более поздних версий команду следует запускать для каждого интерфейса, как показано ниже:
sudo ifdown eth0 && sudo ifup eth0
После завершения перезапуска выполните ping в обоих направлениях. Если ping работает только в одном направлении, рекомендуется проверить настройки брандмауэра.
Определите место сбоя соединения
Если описанные выше варианты не помогли решить проблему, на помощь могут прийти такие инструменты, как tracepath или mtr. С помощью этих команд можно определить место сбоя в сети.
Для пользователей Ubuntu нужна такая команда:
mtr 8.8.8.8
Для пользователей Debian команда такая:
traceroute -4 8.8.8.8
Для пользователей CentOS необходима такая команда:
tracepath 8.8.8.8
В разных дистрибутивах Linux команды отличаются, и результат вывода также несколько отличается.
Проверка правил брандмауэра и доступа
Чтобы проверить, блокируют ли правила брандмауэра соединение, следует проверить все. Для дистрибутивов Red Hat следующая команда отобразит правила брандмауэра:
sudo iptables -L
Результат будет в виде таблицы брандмауэра, где будут перечислены правила, по которым трафик разрешен, а по которым — заблокирован.