Я прочитал, что в моем файле /etc/resolv.conf
должно быть nameserver 127.0.1.1
, только если у моей машины есть собственный DNS-сервер. Поскольку это не так, то это вызывает проблемы. Но независимо от того, что я делаю, я не могу избавиться от этого!
Вот что я сделал до сих пор:
nameserver 192.168.1.3
в /etc/resolvconf/resolv.conf.d/base
файл. (192.168.1.3 - это DNS нашей сети). sudo resolvconf --enable-updates
. sudo resolvconf -u
. sudo service network-manager restart
(просто чтобы убедиться). Тем не менее, когда я открываю файл /etc/resolv.conf
, он говорит: nameserver 127.0.1.1
! Кто-нибудь знает, что не так?
Обратите внимание, что это на самом деле 127.0.1.1
! И я понятия не имею, почему это не 127.0.0.1
!
Даже когда я обновляю /etc/resolv.conf
вручную и заменяю его на что-то еще, sudo resolvconf -u
вернет его обратно к 127.0.1.1
! Откуда этот адрес?
NetworkManager является программой, которая (через resolvconf утилиту) вставляет адрес 127.0.1.1
в resolv.conf
. NM вставляет тот адрес, если, только если это настроено для запуска экземпляра dnsmasq программы для служения в качестве локального передающего сервера имен. Это dnsmasq экземпляр прислушивается к запросам в адресе 127.0.1.1.
, Если Вы не хотите использовать локальный передающий сервер имен тогда, настраивают NetworkManager, чтобы не запустить dnsmasq экземпляр и не вставить тот адрес. В /etc/NetworkManager/NetworkManager.conf
комментируют строку dns=dnsmasq
sudo nano /etc/NetworkManager/NetworkManager.conf
[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq
и перезапускают услуги NetworkManager.
sudo service network-manager restart
В этом режиме, обновления NetworkManager /etc/resolv.conf
(все еще через resolvconf) для включения адресов сервера имен NetworkManager имеет для активных соединений.
, Если Вы хотите отключить resolvconf механизм для обновления resolv.conf и просто использовать статический resolv.conf файл, сделайте следующее.
sudo rm -f /etc/resolv.conf # Delete the symbolic link
sudo nano /etc/resolv.conf # Create static file
# Content of static resolv.conf
nameserver 8.8.4.4
nameserver 8.8.8.8
Возможно, что resolvconf неправильно конфигурируется. Это особенно вероятно, если Вы играли вокруг с его конфигурационными файлами, действительно не понимая, как resolvconf и NetworkManager работают.
Для справочной информации, прочитайте resolvconf документацию и сообщение в блоге StГ©phane Graber.
https://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04 /
Первый необходимо знать, что и Рабочий стол Ubuntu и Сервер Ubuntu по умолчанию имеют resolvconf, установленный и активированный. Resolvconf служит основой для того, чтобы динамично обновить/etc/resolv.conf файл организованным и обратимым способом.
1118-секундный необходимо знать, что Рабочему столу Ubuntu по умолчанию установили NetworkManager и активированный. По умолчанию NetworkManager запускает экземпляр dnsmasq для служения в качестве локального передающего сервера имен. NetworkManager-управляемый dnsmasq экземпляр прислушивается к запросам в 127.0.1.1. Когда NetworkManager запускает dnsmasq экземпляр, это говорит resolvconf вставлять адрес127.0.1.1
в resolv.conf. Как упомянуто в другом ответе при конфигурировании NetworkManager для не запуска локального передающего экземпляра сервера имен тогда он не запустит локальный передающий сервер имен и не скажет resolvconf вставлять адрес 127.0.1.1
в resolv.conf.
Эта конфигурация по умолчанию работает правильно, поэтому если Ваша ситуация не является особенной, необходимо восстановить конфигурацию по умолчанию.
Для восстановления конфигурации по умолчанию проследите, чтобы
#
символ ../run/resolvconf/resolv.conf
Для достижения этого, выполните следующие команды.
sudo su
dpkg-reconfigure resolvconf # And answer `Yes` to agree to dynamic updates
cd /etc/resolvconf/resolv.conf.d
echo '# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN' > head
rm -f base tail original
:> base
:> tail
исходная конфигурация NetworkManager должна иметь
[main]
...
dns=dnsmasq
...
в/etc/NetworkManager/NetworkManager.conf. Это - разумный выбор отключить NetworkManager-управляемый локальный передающий сервер имен путем комментирования dns=dnsmasq
строка.
[main]
...
#dns=dnsmasq
...
После выполнения всего этого желательно перезапустить машину для убирания устаревших информационных записей сервера имен.
sudo reboot
В моем случае был нет dns=dnsmasq
строка в /etc/NetworkManager/NetworkManager.conf
файл и /etc/resolv.conf
был все еще перезаписан Администратором сети, чтобы иметь только nameserver 127.0.1.1
Фиксация должна была восстановить символьную ссылку для надлежащего обновления:
sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf
Ubuntu 16.04 + Ubuntu 18.04 Server — Настройте файл /etc/resolv.conf для сохранения после перезагрузки.
На сервере Ubuntu 16.04 нет /etc/NetworkManager/NetworkManager. conf
.
Выполнение следующей команды покажет вам, что файл /etc/resolv.conf
связан с файлом /run/resolvconf/resolv.conf
:
sudo ls -la /etc/resolv.conf
Удалите этот файл и создайте его заново:
sudo rm -f /etc/resolv.conf
sudo echo '#== My Static /etc/resolv.conf File
#== ===============================
nameserver 8.8.8.8
nameserver 8.8.4.4' > /etc/resolv.conf
Теперь вы увидите, что ссылки больше нет, а ваш статический файл /etc/resolv.conf
присутствует. .
sudo ls -la /etc/resolv.conf
Теперь, чтобы настроить resolvconf НЕ для повторной генерации файла по умолчанию /etc/resolv.conf
, чтобы ваш статический файл сохранялся после перезагрузки, выполните следующую команду :
sudo dpkg-reconfigure resolvconf
НА первом экране нажмите клавишу Tab, чтобы выбрать НЕТ
НА втором экране нажмите клавишу Tab, чтобы выбрать OK, и нажмите Enter.
Ваш файл /etc/resolv.conf
сохранится после перезагрузки сервера.
Сервер Ubuntu 18.04
Если вы добавите ips в файл /etc/netplan/50-cloud-init.yaml
, скорее всего, вам придется применить новые настройки с помощью netplan применить
или netplan --debug применить
. Это приведет к воссозданию ссылки /etc/resolve.conf
на ../run/resolvconf/resolv.conf
. Если это произойдет, просто rm -f /etc/resolv.conf
и заново создайте его, как описано выше.
Теперь вам нужно chattr
файл следующим образом:
chattr +i /etc/resolv.conf
Ваш файл /etc/resolv.conf
сохранится после перезагрузки сервера.
Если вам нужно отредактировать файл, не забудьте перевернуть chattr
следующим образом:
chattr -i /etc/resolv.conf
Теперь вы можете редактировать /etc /resolve.cfg