
У меня возникла проблема с разрешением имен в 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 -> Network
GUI тоже должно работать, нет? Я просто думаю, что вы хотите что-то вроде скриншота ниже? Или я не понимаю, что вы пытаетесь сделать?
Примечание: не обращайте внимания на значения в левом окне. Это просто мои значения из DHCP. Я не стал сохранять статическую конфигурацию, так как просто пытался проиллюстрировать то, о чем думал.
Кстати, я использовал, 192.168.1.1
потому что это то, что вы использовали. Но вы также можете использовать IP-адреса для любых допустимых DNS-серверов. Например, 8.8.8.8
and/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».