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

17

Я испытываю проблему с разрешением имен в 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. Итак, похоже, что проблема в том, что resol.conf не записывается правильно? Какой пакет / код отвечает за запись в resolv.conf? Есть ли конкретный пакет, который я могу посмотреть на открытые вопросы?

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

Кеннет Кунц
источник
2
Если все работает нормально, когда вы используете DHCP, то какая «проблема» в том, что вы хотите, чтобы предложения «исправили». Как выглядит ваша локальная сеть? Какой тип роутера вы используете? (Что на 192.168.1.1?) Какие DNS-серверы вы указываете при использовании статического IP?
иррациональный Джон
1
Обновленное название, чтобы более точно отразить симптомы и добавить больше результатов
Кеннет Кунц
+1 за редактирование вопроса и заголовка, чтобы улучшить их, даже если у вас уже был свой ответ!
иррациональный Джон
1
Добавлена ​​ссылка istream на изменения в dns в ubuntu 12.04.
Кеннет Кунц

Ответы:

16

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

dns-nameservers [IP address(es) of your DNS]     
dns-search      [your dns-search strings (optional)]
ukjola
источник
Отлично. Это работает!
Кеннет Кунц
Что странно, хотя в 11.10 мне не нужно было указывать dns-nameservers.
Кеннет Кунц
Это верно. В 12.04 Ubuntu начала использовать resolvconf для обработки resolv.conf. Это resolvconf, который читает dns-nameserversопцию в / e / n / i.
Jdthood
1

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

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

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

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

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

иррациональный Джон
источник
Спасибо за решение. Тем не менее, я не использую рабочий стол.
Кеннет Кунц
@kennethkoontz Я не понимаю. Вы используете сервер Ubuntu? Если вы не используете обычную настольную установку 12.04, отредактируйте ваш вопрос и добавьте в него эту информацию.
иррациональный Джон
2
Извините за путаницу. Я должен был сказать: «Я не использую настольную версию. Я использую серверную версию». Я буду обновлять вопрос пост, чтобы устранить двусмысленность.
Кеннет Кунц
0

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

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

Simón
источник
0

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

В связи с этим, почему в мире resolvconf был добавлен на сервер ed ... ПОЧЕМУ !! ??!?

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

/ и т.д. / сеть / интерфейсы

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

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

Важный параметр - «DNS-серверы имен».

jbowen7
источник