Вопрос или проблема
На моем Ubuntu 16.04 файл /etc/resolv.conf меняется при каждом запуске системы.
cat /etc/resolv.conf
nameserver 127.0.0.1
У Network Manager правильный DNS сервер 192.168.1.1.
Я удалил bind9 и все связанные пакеты.
Нет специальных настроек в папках rc или rc.local.
Нет опций dns-nameserver в /etc/network/interfaces
.
Я что-то пропустил? Какое приложение может автоматически изменять этот файл?
Я не помню, когда это началось, но resolv.conf — это системный файл, который генерируется автоматически.
Все (более конкретно, статические настройки из предыдущих resolv.conf) добавлять сюда нужно в /etc/resolvconf/resolv.conf.d/base
.
Убедитесь, что служба resolvconf работает, включите ее:
sudo systemctl start resolvconf.service
Затем введите:
sudo nano /etc/resolvconf/resolv.conf.d/head
Добавьте или измените необходимые DNS-серверы, сохраните изменения, затем измените resolv.conf и закройте файл.
Не забудьте установить ваш DNS в Network Manager в соответствии с тем, что вы указали в resolv.conf.
Вы используете DHCP?
- Возможно, ваш DHCP-сервер отправляет неверные указатели на имена серверов?
- У вас есть пользовательский dhcp.conf, который использует свою собственную конфигурацию DNS-серверов и игнорирует DHCP-сервер?
Если вы не используете DHCP:
- Вы прочитали и поняли https://askubuntu.com/questions/627899/nameserver-127-0-1-1-in-resolv-conf-wont-go-away?
- У вас есть механизм шаблонизации?
Ответ или решение
Уважаемый пользователь,
Проблема с тем, что файл /etc/resolv.conf
сбрасывается на неправильные DNS-серверы после перезагрузки системы, достаточно распространена, особенно в системах, использующих NetworkManager
и динамическое получение IP-адресов через DHCP. Давайте рассмотрим возможные причины и способы решения этой проблемы.
1. Управление resolv.conf
Файл /etc/resolv.conf
является автоматически сгенерированным и может изменяться различными службами. Убедитесь, что у вас правильно настроены следующие моменты:
-
NetworkManager: Убедитесь, что в настройках вашего
NetworkManager
правильно указаны DNS-серверы. Это можно сделать через графический интерфейс или с помощью командной строки:nmcli device show | grep DNS
Если настройки неверные, измените их в параметрах подключения.
-
resolvconf:
resolvconf
– это инструмент, который управляет файлами конфигурации DNS. Убедитесь, что службаresolvconf
запущена и активна:sudo systemctl start resolvconf.service sudo systemctl enable resolvconf.service
Чтобы добавить правильные DNS-серверы, вы можете редактировать файл
head
:sudo nano /etc/resolvconf/resolv.conf.d/head
Добавьте свои DNS-серверы в этот файл, после чего выполните:
sudo resolvconf -u
2. DHCP-настройки
Если вы используете DHCP для получения сетевых настроек, убедитесь, что ваш DHCP-сервер не выдает неправильные DNS-серверы. Проверьте настройки на вашем маршрутизаторе или DHCP-сервере:
- Если DHCP-сервер настроен на передачу специфичных DNS-серверов, они могут перезаписывать ваши настройки.
- Проверьте также настройки своего DHCP-клиента (обычно в
/etc/dhcp/dhclient.conf
), чтобы изменить поведение DHCP.
3. Проверка наличия других сервисов
Иногда другие сервисы могут мешать работе:
-
Systemd-resolved: В Ubuntu могут работать различные службы для управления DNS. Проверьте, включен ли
systemd-resolved
, и проверьте его конфигурацию.systemctl status systemd-resolved
-
Убедитесь, что в системных файлах не осталось конфигураций, которые могут конфликтовать с работой службы DNS.
4. Устранение проблем
Если проблемы продолжаются, рассмотрите следующие шаги:
-
Проверьте лог-файлы системы на наличие ошибок, связанных с сетевыми службами:
journalctl -xe
-
Периодически перезапускайте службы
NetworkManager
иresolvconf
, чтобы применить изменения:sudo systemctl restart NetworkManager sudo systemctl restart resolvconf
Заключение
Следуя указанным выше шагам, вы сможете устранить проблему с автоматическим сбросом файла /etc/resolv.conf
. Если возникнут дополнительные сложности, не стесняйтесь обращаться за помощью.
С наилучшими пожеланиями,
[Ваше имя]
Эксперт по сетевым технологиям