Я наконец-то перешел на 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 для обработки этого в голове, хвосте или основании? Если есть, есть ли примеры, которые я могу использовать для настройки на моем сервере.
Любая помощь очень ценится.
Просто введите команду
dns-search google.com && dns-nameservers (sample: 8.8.8.8)
в вашей конфигурации /etc/network/interfaces
. затем перезагрузите сеть.
это должно работать.
Английский перевод:
Мой решен. "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
Для Ubuntu Server 18 Netplan - новая утилита для настройки сети.
# cd /etc/netplan
Затем отредактируйте запись адресов серверов имен в файле yaml (используйте правильный отступ). Например, если вы используете DNS-серверы Google:
nameservers:
addresses: [8.8.8.8,8.8.4.4]
Для перезапуска службы
# netplan apply
. https://www.techrepublic.com/article/how-to-set-dns-nameservers-in-ubuntu-server-18-04/
Вероятно, лучше, чтобы ваш 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
Я нашел это самое простое исправление. Если у вас есть файлы resolv.conf и resolvconf, они будут сталкиваться друг с другом. Вам необходимо удалить файл resolv.conf, который перезаписывается при каждой перезагрузке. Поместите сервер имен 8.8.8.8 8.8.4.4 внизу файла resolvconf и затем выполните команду sudo rm /etc/resolv.conf
, чтобы избавиться от файла. Затем выполните перезагрузку, и все заработает.
Если вы используете 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 .
Добавьте записи в /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
Другие решения не работали для меня в моей системе 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`
Domain
с дополнительными доменами для поиска: DOMAIN="yourcompany.com intnet.yourcompany.com"
Сохраните, выйдите из системы и снова войдите в систему. Теперь NetworkManager должен иметь строку в \etc\resolve.conf
:
search rn.yourcompany.com yourcompany.com intnet.yourcompany.com
добавьте в последнюю строку, например:
nameserver 8.8.8.8
Откройте терминал и введите
sudo chattr +i /etc/resolv.conf
, + + позаботится о том, чтобы файл не перезагружался при загрузке. [ 116]
Отменить вышеуказанное
sudo chattr -i /etc/resolv.conf
Для более
man chattr
добавьте ваш сервер имен в файл /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
Это может быть какой-то странной причудой в моей машине, но у кого-то еще может быть такой же угловой случай.
Я пробовал многочисленные способы, чтобы мои серверы имен 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. Я не могу этого объяснить (может кто-то?), Но это может помочь кому-то застрять в одном месте.
Для меня приведенные выше ответы были неадекватными по следующим причинам:
resolvconf
, просто /etc/resolv.conf
. chattr +i
для блокировки resolv.conf
кажется слишком хакерским. Мне нужно, чтобы Puppet мог свободно вносить изменения, когда это необходимо. /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.
Как и во многих других ответах, это связано с установкой 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
Пожалуйста, посмотрите на страницу руководства 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.
Существуют и другие специальные файлы (голова и хвост), они могут помочь вам достичь того, что вы хотите.
Вероятно, это вызвано настройкой 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
Я думаю, что ответом является проверка вашего /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
(даже если этот скрипт устарел, он все еще работает).
Та конфигурация объявляется в /etc/default/bind9
RESOLVCONF=no|yes
нет = не применяют условие в init.d
bind9
да, или другое значение = переопределение resolv.conf
Эта проблема accures, когда Вы устанавливаете bind9
и не заботьтесь о проверке обо всех конференциях.
Иначе должен настроить 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 в основном блоге
Просто скопируйте свой 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 бесполезно.
Используя resolvconf
и отключение systemd-resolved.service
(это работает на меня человечность 19.04):
Установка resolvconf
sudo apt install resolvconf
Добавление серверов имен
Открытый /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
Обновление resolv.conf
sudo resolvconf -u
Отключить systemd-resolved.service
и перезагрузка. nameserver 127.0.0.53
не записан в /etc/resolv.conf
.
sudo systemctl disable systemd-resolved.service
sudo reboot
Готово!