Вопрос или проблема
После запуска управляемого DHCP экземпляра в AWS я внес изменения в файл /etc/network/interfaces для пользовательского nameserver и строк поиска DNS:
auto lo
auto eth0
iface lo inet loopback
dns-nameservers 1.1.1.1 9.9.9.9
dns-search flapjacks.io flapjacks.net
iface eth0 inet dhcp
Я надеялся, что смогу перезапустить сервис, чтобы resolv.conf отразил эти изменения, но я не знаю, какой сервис перезапустить… изменения, однако, отображаются после перезагрузки. Кто-нибудь может сказать, какой сервис должен их обновить?
Я предлагаю попробовать:
sudo ifdown eth0 && sudo ifup -v eth0
Опция -v
для детального вывода должна обеспечить достаточный вывод, чтобы увидеть, что процесс успешно завершен.
Вы можете выполнить следующие команды:
sudo resolvconf --enable-updates
sudo resolvconf -u
sudo systemctl restart resolvconf.service
sudo systemctl restart systemd-resolved.service
Чтобы увидеть, какие DNS-серверы в настоящее время используются (для Ubuntu 22.04+):
resolvectl status
Ответ или решение
Теория
Файл /etc/resolv.conf
является критическим элементом в конфигурации сетевого стека любой Unix/Linux системы, так как он определяет, какие DNS-серверы должны использоваться для преобразования доменных имен в IP-адреса. В вашем случае, вы хотите обновить этот файл после внесения изменений в файл /etc/network/interfaces
, который управляет сетевыми интерфейсами системы. Ваши изменения связаны с настройкой DNS-серверов и строк поиска DNS. Однако после внесения изменений вы обнаружили, что они вступают в силу только после перезагрузки системы.
Изменения в /etc/network/interfaces
требуют, чтобы сетевой интерфейс был перезагружен, чтобы новый конфигурационный файл был считан должным образом. Однако перезагрузка всей системы часто нецелесообразна, особенно в производственных средах, поэтому важно понимать, как грамотно обновить соответствующие служебные процессы.
Пример
Вы указали, что добавили следующие строки в файл /etc/network/interfaces
:
auto lo
auto eth0
iface lo inet loopback
dns-nameservers 1.1.1.1 9.9.9.9
dns-search flapjacks.io flapjacks.net
iface eth0 inet dhcp
Эти настройки указывают, что для интерфейса eth0
, работающего в режиме DHCP, надо использовать DNS-серверы с адресами 1.1.1.1
и 9.9.9.9
, а также домены flapjacks.io
и flapjacks.net
для строк поиска DNS.
Применение
Чтобы обновить файл /etc/resolv.conf
без перезагрузки системы, вы можете выполнить несколько шагов.
-
Перезапуск интерфейса: Попробуйте выключить и вновь включить сетевой интерфейс
eth0
с помощью команды:sudo ifdown eth0 && sudo ifup -v eth0
Параметр
-v
обеспечивает вывод подробной информации, что позволяет убедиться, что процесс завершился успешно. Обратите внимание, что командыifdown
иifup
могут не сработать, если они не настроены в системе. В таких случаях стоит использоватьip
илиnmcli
, если вы используете NetworkManager. -
Ручное обновление конфигурации резолвера: В некоторых системах может быть установлен пакет
resolvconf
, управляющий файлом/etc/resolv.conf
. В таком случае выполните следующие команды:sudo resolvconf --enable-updates sudo resolvconf -u
-
Перезагрузка служб: Некоторые современные дистрибутивы Linux используют
systemd-resolved
для управления DNS. Попробуйте перезапустить соответствующие службы:sudo systemctl restart systemd-resolved.service
Если установлен пакет
resolvconf
, можно также перезапустить его:sudo systemctl restart resolvconf.service
-
Проверка текущей настройки DNS: Чтобы убедиться, что DNS-сервера успешно обновлены, используйте команду:
resolvectl status
Это покажет текущие DNS-сервера и резервные настройки, которые используются системой.
Помощь команды resolvectl
(начиная с Ubuntu 22.04 и выше) позволяет организовать вывод текущих настроек DNS и убедиться в актуальности обновлений.
Таким образом, приведенные выше шаги обеспечивают возможность обновления DNS-конфигурации без необходимости перезагрузки всей системы. Это критически важно для минимизации времени простоя и обеспечения непрерывной работы сервисов, критически зависящих от сетевого взаимодействия.
В случае успешного выполнения всех действий, измененные вами настройки DNS должны быть учтены системой, и обновления в файле /etc/resolv.conf
вступят в силу немедленно.