Как включить строки в resolv.conf, которые не будут потеряны при перезагрузке?

Я наконец-то перешел на 12.04 с 7.10. У меня есть одна последняя часть для завершения, но я в тупике. Я использую Puppet на каждом сервере, и в прошлом я включал адрес сервера имен и имя поискового домена для puppetmaster в resolv.conf.

search puppetmaster.com
nameserver 192.168.1.XXX

В 12.04 resolv.conf перезаписывается при перезагрузке. Я не могу использовать статический IP-адрес для них, поэтому использование / etc / network / interfaces для помощи мне не имеет смысла.

# 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
nameserver 127.0.0.1

Есть ли способ получить resolvconf для обработки этого в голове, хвосте или основании? Если есть, есть ли примеры, которые я могу использовать для настройки на моем сервере.

Любая помощь очень ценится.

175
задан 19 April 2013 в 18:35

20 ответов

Просто введите команду

dns-search google.com && dns-nameservers (sample: 8.8.8.8)

в вашей конфигурации /etc/network/interfaces. затем перезагрузите сеть.

это должно работать.

0
ответ дан 19 April 2013 в 18:35

Английский перевод:

Мой решен. "only 12.4"

Я заметил, что если вы добавите dns-nameserver в интерфейсы, которые не используют сервер разрешения имен, то благодаря помощи, найденной здесь, удалось решить проблему.

http://manpages.ubuntu.com/manpages/lucid/man8/resolvconf.8.html

Чтобы не изменять resolv.conf при редактировании вручную, сделайте это в терминал:

sudo resolvconf –disable-updates

после:

sudo resolvconf -a eth0 # or your network Interfas

, затем вручную отредактируйте /run/resolvconf/resolv.conf

, добавив максимум два DNS-сервера. спасибо П.С. не забудьте перезапустить:

sudo /etc/init.d/networking restart

Оригинальный текст:

соло Ubuntu 12,4

Mi solucion.

Он предоставляет доступ к DNS-серверу имен и интерфейсов.

Gracias a la ayuda encontrada en esta pagina он решает проблему.

http://manpages.ubuntu.com/manpages/lucid/man8/resolvconf.8.html

Para hacer que resolv.conf no cambie cuando la editamos manualmente hacemos esto en la Terminal:

sudo resolvconf –disable-updates

отчаивается:

sudo resolvconf -a eth0 # o tu interfas de red

luego editamos manualmente /run/resolvconf/resolv.conf

agregando un maximo de 2 DNS-сервера. Saludos P.D. нет olvidar reiniciar:

sudo /etc/init.d/networking restart
0
ответ дан 19 April 2013 в 18:35

Для Ubuntu Server 18 Netplan - новая утилита для настройки сети.

# cd /etc/netplan

Затем отредактируйте запись адресов серверов имен в файле yaml (используйте правильный отступ). Например, если вы используете DNS-серверы Google:

nameservers:
    addresses: [8.8.8.8,8.8.4.4]

Для перезапуска службы

# netplan apply

См. https://netplan.io/

.

https://www.techrepublic.com/article/how-to-set-dns-nameservers-in-ubuntu-server-18-04/

0
ответ дан 19 April 2013 в 18:35

Вероятно, лучше, чтобы ваш DNS-сервер мог разрешить «марионетку» по правильному адресу, а также чтобы ваш DHCP-сервер передавал адрес DNS-сервера и список поиска, либо (если у вас статические IP-адреса) что-то вроде следующего в /etc/network/interfaces.

iface eth0 inet static
    address 192.168.3.3
    netmask 255.255.255.0
    gateway 192.168.3.1
    dns-search example.com
    dns-nameservers 192.168.3.45 192.168.8.10

Но если вы хотите сделать это через файлы конфигурации resolvconf, вам нужно отредактировать /etc/resolvconf/resolv.conf.d/base. В этом файле введите ваши данные, как в resolv.conf.

nameserver 192.168.1.XXX

Затем скажите resolvconf для регенерации resolv.conf.

sudo resolvconf -u
0
ответ дан 19 April 2013 в 18:35

Я нашел это самое простое исправление. Если у вас есть файлы resolv.conf и resolvconf, они будут сталкиваться друг с другом. Вам необходимо удалить файл resolv.conf, который перезаписывается при каждой перезагрузке. Поместите сервер имен 8.8.8.8 8.8.4.4 внизу файла resolvconf и затем выполните команду sudo rm /etc/resolv.conf, чтобы избавиться от файла. Затем выполните перезагрузку, и все заработает.

0
ответ дан 19 April 2013 в 18:35

Если вы используете DHCP, отредактируйте /etc/dhcp/dhclient.conf, чтобы добавить дополнительные DNS-серверы:

prepend domain-name-servers 12.34.56.78, 12.34.56.79;

Клиент DHCP перезаписывает dns-nameservers в etc/network/interfaces, а я думаю в /etc/resolvconf/resolv.conf.d/base. [ 117]

Это работало для меня на сервере Ubuntu 14.04.3.

Подробную информацию смотрите в вики Debian NetworkConfiguration .

0
ответ дан 19 April 2013 в 18:35

Добавьте записи в /etc/resolvconf/resolv.conf.d/head

echo 'search puppetmaster.com' | sudo tee -a /etc/resolvconf/resolv.conf.d/head
echo 'nameserver 192.168.1.XXX' | sudo tee -a /etc/resolvconf/resolv.conf.d/head

и выполните следующую команду

sudo resolvconf -u
0
ответ дан 19 April 2013 в 18:35

Другие решения не работали для меня в моей системе Fedora 20. Моя конкретная проблема заключалась в том, что строка «search» в /etc/resolv.conf была перезаписана. Вот что это исправило. (Предполагается, что NetworkManager создает строку search rn.yourcompany.com, и вы хотите, чтобы она была search rn.yourcompany.com yourcompany.com intnet.yourcompany.com:

1. Используйте команду "ifconfig", чтобы узнать, какой интерфейс представляет интерес:

[ 110]

2. Войдите в систему и перейдите в каталог сетевых устройств конфигурации системы:

$ sudo su -[sudo] 
password for youruser:
# cd /etc/sysconfig/networking/devices`
  1. Используйте свой любимый доступный редактор, чтобы добавить строку Domain с дополнительными доменами для поиска:

DOMAIN="yourcompany.com intnet.yourcompany.com"

Сохраните, выйдите из системы и снова войдите в систему. Теперь NetworkManager должен иметь строку в \etc\resolve.conf:

search rn.yourcompany.com yourcompany.com intnet.yourcompany.com
0
ответ дан 19 April 2013 в 18:35

добавьте в последнюю строку, например:

nameserver 8.8.8.8

Откройте терминал и введите

sudo chattr +i /etc/resolv.conf

, + + позаботится о том, чтобы файл не перезагружался при загрузке. [ 116]

Отменить вышеуказанное

sudo chattr -i /etc/resolv.conf

Для более

man chattr
0
ответ дан 19 April 2013 в 18:35

добавьте ваш сервер имен в файл /etc/resolvconf/resolv.conf.d/head. Файл содержит сообщение, которое вы получили:

этот файл должен выглядеть следующим образом после добавления 8.8.8.8

root@hvnatvcc: ~ # cat /etc/resolvconf/resolv.conf.d/head 
# 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
nameserver 8.8.8.8
0
ответ дан 19 April 2013 в 18:35

Это может быть какой-то странной причудой в моей машине, но у кого-то еще может быть такой же угловой случай.

Я пробовал многочисленные способы, чтобы мои серверы имен ISP были включены в /etc/resolv.conf, но безуспешно:

  • Я включил их в /etc/network/interfaces и перезапустил сетевое взаимодействие. Они не появились в /etc/resolv.conf.

  • Я поместил их в /etc/resolv.conf явно, но, конечно, они были перезаписаны. Они появились в /run/resolvconf/interface/eth0.inet, но так и не добрались до /etc/resolv.conf.

  • Я попытался настроить resolvconf для динамических обновлений. Без изменений.

Наконец я где-то читал, что, если локальный компьютер (127.0.0.1) обнаруживается в /etc/resolv.conf, любые другие серверы имен не включаются.

В отчаянии я отредактировал /run/resolvconf/interface/lo.named, удалил единственную строку в нем (nameserver 127.0.0.1) и перезапустил: ifdown eth0 && ifup eth0.

Затем в файл /etc/resolv.conf были впервые включены мои ISP-серверы имен! Я запустил service network-manager restart, чтобы посмотреть, стабильно ли он, и /etc/resolv.conf все еще включает в себя мои ISP-серверы имен. Перезагрузился только для того, чтобы убедиться, и он все еще там , но /run/resolvconf/interface/lo.named получил сброс на: nameserver 127.0.0.1.

Любопытно, что перезапуск сети все еще работает: /etc/resolv.conf по-прежнему содержит мои серверы имен ISP. Я не могу этого объяснить (может кто-то?), Но это может помочь кому-то застрять в одном месте.

0
ответ дан 19 April 2013 в 18:35

Для меня приведенные выше ответы были неадекватными по следующим причинам:

  • Я не использую resolvconf, просто /etc/resolv.conf.
  • Использование chattr +i для блокировки resolv.conf кажется слишком хакерским. Мне нужно, чтобы Puppet мог свободно вносить изменения, когда это необходимо.
  • AFAIK, редактирование /etc/network/interfaces не предотвращает перезапись resolv.conf; он просто указывает серверы имен, которые должны быть записаны. Для меня указание серверов имен не имеет смысла. Я пытаюсь установить options timeout:1 и options attempts:1 в моем файле resolv.conf.

Лучшее решение , которое я нашел, переопределяет поведение по умолчанию dhclient с использованием задокументированных хуков.

Создайте новый файл в /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate со следующим содержимым:

#!/bin/sh
make_resolv_conf() {
    :
}

Затем сделайте файл исполняемым:

chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate

Теперь, когда dhclient запускается - либо при перезагрузке, либо когда вы вручную запускаете sudo ifdown -a ; sudo ifup -a - он загружает этот скрипт nodnsupdate. Этот скрипт переопределяет внутреннюю функцию make_resolv_conf(), которая обычно переписывает resolv.conf, и вместо этого ничего не делает.

Это работало для меня в Ubuntu 12.04.

0
ответ дан 19 April 2013 в 18:35

Как и во многих других ответах, это связано с установкой resolvconf в вашей системе.

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

/etc/resolvconf/resolv.conf.d/

. ] файл. Все, что вы положите туда, будет написано в верхней части /etc/resolv.conf

Так что все пойдет примерно так:

# echo nameserver 8.8.8.8 >> /etc/resolvconf/resolv.conf.d/head
# resolvconf --enable-updates
# resolvconf -u
0
ответ дан 19 April 2013 в 18:35

Пожалуйста, посмотрите на страницу руководства resolvconf. Вы можете принудительно включить определенные настройки DNS, создав, например, /etc/resolvconf/resolv.conf.d/base:

  /etc/resolvconf/resolv.conf.d/base
          File containing basic resolver information.  The lines  in  this
          file  are  included in the resolver configuration file even when
          no interfaces are configured.

Существуют и другие специальные файлы (голова и хвост), они могут помочь вам достичь того, что вы хотите.

0
ответ дан 19 April 2013 в 18:35

Вероятно, это вызвано настройкой DHCP при первой установке Ubuntu. Попробуйте этот трехэтапный процесс для решения этой проблемы с автоматической настройкой.

Сначала

Отредактируйте конфигурацию вашего интерфейса, расположенную в: /etc/network/interfaces

Добавьте эту строку ниже iface lo inet loopback:

dns-nameservers yourdns youraltdns

В качестве примера для Google DNS, вы можете использовать это:

dns-nameservers 8.8.8.8 8.8.4.4

Секунда

Отредактируйте файл конфигурации DHCP, расположенный по адресу:

/etc/dhcp/dhclient.conf

Отметьте синтаксис как комментарий используя # в каждой строке или просто удалите каждый запрос name-server. В 16.04 от вас может не потребоваться вносить какие-либо изменения здесь.

Третий

Перезагрузите сеть с помощью этой команды:

/etc/init.d/networking restart

В 16.04:

sudo ifdown -a
sudo ifup -a
0
ответ дан 19 April 2013 в 18:35

Я думаю, что ответом является проверка вашего /etc/dhcp/dhclient.conf, т.е. не запрашивайте dns-nameservers у вашего клиента dhcp .

Затем обновите ваш /etc/network/interfaces

auto eth0
iface eth0 inet dhcp
dns-search google.com
dns-nameservers dnsserverip

Тогда ваш resolv.conf будет автоматически настроен так, как вы хотите.

Добавьте к dns-search, а затем запустите /etc/init.d/networking restart (даже если этот скрипт устарел, он все еще работает).

0
ответ дан 19 April 2013 в 18:35

Та конфигурация объявляется в /etc/default/bind9

RESOLVCONF=no|yes

нет = не применяют условие в init.d bind9

да, или другое значение = переопределение resolv.conf

Эта проблема accures, когда Вы устанавливаете bind9 и не заботьтесь о проверке обо всех конференциях.

-2
ответ дан 19 April 2013 в 18:35

Иначе должен настроить resolvconf (8) для использования домена локального поиска и серверов имен прежде, чем запросить предоставленные DHCP области поиска и серверы имен. Это выполняется путем создания /etc/resolvconf.conf (sudo nano /etc/resolvconf.conf):

search_domains="nono.com"
name_servers="1.1.1.1 1.0.0.1"

Спасибо Brian Cunnie в основном блоге

0
ответ дан 22 October 2019 в 10:02

Просто скопируйте свой resolve.conf и удалите resolvconf pacage и отредактируйте/etc/resolv.conf файл к тому, что Вы хотите.

apt-get remove -y resolvconf
echo 'nameserver 8.8.8.8' > /etc/resolv.conf

Мы должны иметь право принять решение не использовать плохое программное обеспечение как resolvconf.

Между прочим, поле поиска в/etc/resolv.conf бесполезно.

0
ответ дан 22 October 2019 в 10:02

Используя resolvconf и отключение systemd-resolved.service (это работает на меня человечность 19.04):

  1. Установка resolvconf

    sudo apt install resolvconf
    
  2. Добавление серверов имен

    Открытый /etc/resolvconf/resolv.conf.d/base с Вашим текстовым редактором я использую vim.

    sudo vim /etc/resolvconf/resolv.conf.d/base
    

    затем, добавьте серверы имен в открытом файле, напр.:

    nameserver 1.1.1.1
    nameserver 1.0.0.1
    
  3. Обновление resolv.conf

    sudo resolvconf -u
    
  4. Отключить systemd-resolved.service и перезагрузка. nameserver 127.0.0.53 не записан в /etc/resolv.conf.

    sudo systemctl disable systemd-resolved.service
    sudo reboot
    

Готово!

Источник

0
ответ дан 22 October 2019 в 10:02

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

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