resolv.conf не устанавливается при перезагрузке, если сеть настроена на статический IP

resolv.conf не устанавливается при перезагрузке, если сеть настроена на статический IP

У меня возникла проблема с разрешением имен в Ubuntu 12.04 Server edition при настройке компьютера на использование статического IP-адреса.

В /etc/network/interfaces:

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.1.28
netmask 255.255.255.0
gateway 192.168.1.1

Запуск $ sudo apt-get upgradeприводит к ошибке «Не удалось получить...»:

. . . W: Failed to fetch http://us.archive.ubuntu.com/ubuntu/dists/precise-backports/universe/i18n/Translation-en_US Something wicked happened resolving 'us.archive.ubuntu.com:http' (-5 - No address associated with hostname)
[...]

Когда я изменяю свой /etc/network/interfaces на:

auto eth0
iface eth0 inet dhcp

Все работает отлично.

Изучение /etc/resolv.conf дает еще несколько подсказок.

В случаях, когда я получал проблему разрешения, resolv.conf был пустым; не были указаны серверы имен. Затем я переключился на DHCP со статического и перезапустил сеть; /etc/resolv.conf был изменен на: 'nameserver 192.168.1.1'.

Переключение обратно с DHCP на статический и перезапуск не удаляют запись сервера имен. Но когда я перезапустил систему со статическим набором, resolv.conf был пуст. Когда я перезапустил систему с набором DHCP, resolv.conf имеет сервер имен 192.168.1.1. Итак, похоже, проблема в том, что resolve.conf не записывается правильно? Какой пакет/код отвечает за запись в resolv.conf? Есть ли конкретный пакет, который я могу посмотреть в открытых проблемах?

ОБНОВЛЕНИЕ: istream опубликовал хорошую статью, в которой обсуждаются изменения в resolve.conf в 12.04. http://www.stgraber.org/2012/02/24/dns-in-ubuntu-12-04/

решение1

Согласностраница руководства resolvconf(пример приведен на странице руководства), добавьте следующее в файл /etc/network/interfaces в вашей статической конфигурации:

dns-nameservers [IP address(es) of your DNS]     
dns-search      [your dns-search strings (optional)]

решение2

Вы уверены, что указали 192.168.1.1значение DNS при настройке статического IP-адреса?

Я не знаю, как это сделать из командной строки, но с помощью System Settings -> NetworkGUI тоже должно работать, нет? Я просто думаю, что вы хотите что-то вроде скриншота ниже? Или я не понимаю, что вы пытаетесь сделать?

Конфигурация сети со статическим IP, маршрутом по умолчанию, DNS-сервером

Примечание: не обращайте внимания на значения в левом окне. Это просто мои значения из DHCP. Я не стал сохранять статическую конфигурацию, так как просто пытался проиллюстрировать то, о чем думал.

Кстати, я использовал, 192.168.1.1потому что это то, что вы использовали. Но вы также можете использовать IP-адреса для любых допустимых DNS-серверов. Например, 8.8.8.8and/or 208.67.222.222также должно работать.

решение3

Если вы не хотите (или не можете) использовать апплет Network Manager для настройки сетевых параметров, я нахожу правильный способ настройки"статичный"Конфигурация IP, когда у вас нет доступного DHCP-сервера, заключается в статической аренде на dhclient.conf. Там вы должны указать сервер имен, который будет записан в resolv.confфайл, когда dhclient вернется к статике.

Однако, если вы не хотите пачкать руки, я все же рекомендую использовать графический интерфейс, чтобы указать адрес DNS-сервера в настройках IP вашего соединения, как вhttps://askubuntu.com/a/127537/33305.

решение4

OP использует серверную версию. NetworkManager не применяется... хотя кто знает, может быть, его добавят, просто чтобы усложнить сервер.

И вообще, почему resolvconf был добавлен в серверную версию? ЗАЧЕМ!!??!?

В любом случае, чтобы ответить на ваш вопрос, добавьте:

/etc/сеть/интерфейсы

что-то вроде этого:

auto eth0 inet static
     dns-nameservers ns1.mydnsservers.com ns2.mydnsservers.com

Важная опция — «dns-nameservers».

Связанный контент