nameserver 127.0.1.1 в resolv.conf не исчезнет!

Я прочитал, что в моем файле /etc/resolv.conf должно быть nameserver 127.0.1.1, только если у моей машины есть собственный DNS-сервер. Поскольку это не так, то это вызывает проблемы. Но независимо от того, что я делаю, я не могу избавиться от этого!

Вот что я сделал до сих пор:

  1. Добавление nameserver 192.168.1.3 в /etc/resolvconf/resolv.conf.d/base файл. (192.168.1.3 - это DNS нашей сети).
  2. Бег: sudo resolvconf --enable-updates.
  3. Бег: sudo resolvconf -u.
  4. Бег: 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! Откуда этот адрес?

60
задан 26 May 2015 в 11:03

4 ответа

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
0
ответ дан 26 May 2015 в 11:03

Возможно, что 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.

Эта конфигурация по умолчанию работает правильно, поэтому если Ваша ситуация не является особенной, необходимо восстановить конфигурацию по умолчанию.

Для восстановления конфигурации по умолчанию проследите, чтобы

  • /etc/resolvconf/resolv.conf.d/head содержал только resolvconf текст заголовка, состоящий из двух строк, запускающихся с # символ
  • ,/etc/resolvconf/resolv.conf.d/base является пустым файлом
  • /etc/resolvconf/resolv.conf.d/tail, пустой файл
  • /etc/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
0
ответ дан 26 May 2015 в 11:03

В моем случае был нет dns=dnsmasq строка в /etc/NetworkManager/NetworkManager.conf файл и /etc/resolv.conf был все еще перезаписан Администратором сети, чтобы иметь только nameserver 127.0.1.1

Фиксация должна была восстановить символьную ссылку для надлежащего обновления:

sudo ln -sf /run/resolvconf/resolv.conf /etc/resolv.conf
1
ответ дан 22 November 2019 в 23:38

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

nameserver 127.0.1.1 in resolv.conf won't go away

Удалите этот файл и создайте его заново:

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

nameserver 127.0.1.1 in resolv.conf won't go away

Теперь вы увидите, что ссылки больше нет, а ваш статический файл /etc/resolv.conf присутствует. .

sudo ls -la /etc/resolv.conf

nameserver 127.0.1.1 in resolv.conf won't go away

Теперь, чтобы настроить resolvconf НЕ для повторной генерации файла по умолчанию /etc/resolv.conf, чтобы ваш статический файл сохранялся после перезагрузки, выполните следующую команду :

sudo dpkg-reconfigure resolvconf

НА первом экране нажмите клавишу Tab, чтобы выбрать НЕТ

configure resolv.conf to persist after reboot

НА втором экране нажмите клавишу Tab, чтобы выбрать OK, и нажмите Enter.

configure /etc/resolv.conf to persist after reboot

Ваш файл /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

0
ответ дан 1 May 2020 в 01:08

Другие вопросы по тегам:

Похожие вопросы: