Ubuntu resolv conf что за файл. Автоматическое конфигурирование интерфейса с использованием DHCP

resolver - это набор функций из библиотеки Си, который предоставляет доступ к системе доменных имён интернет (DNS). Файл настройки определителя (resolver) содержит информацию, которая читается функциями разрешения имён при первом их вызове процессом. Файл разрабатывался в понятном человеку формате, и содержит список ключевых слов со значениями, которые предоставляют различного рода информацию для функций разрешения имён. Файл настройки считается надёжным источником информации DNS (например, информация об AD-бите DNSSEC будет возвращаться в неизменном виде из этого источника).

Если этот файл не существует, то будет опрашиваться только служба имён на локальной машине; доменное имя определяется из имени узла, а домен поиска создаётся из имени домена.

Поддерживаются следующие параметры настройки:

nameserver IP-адрес сервера имён Задает интернет-адрес сервера имён, на который надо переправлять все запросы, или в виде адреса IPv4 (в точечном формате), или в виде адреса IPv6 в формате с двоеточиями (и, возможно, точками), определённом в RFC 2373. Может быть указано до MAXNS (в настоящее время 3, см. ) серверов имён, повторяя каждый раз ключевое слово. Если указано несколько серверов, функции разрешения имён будут обращаться к серверам имен в порядке перечисления. Если в файле нет строк nameserver , то функции разрешения имён используют сервер имён на локальной машине. (Функции разрешения имён работают по следующему алгоритму: попробовать обратиться к первому указанному серверу имён. Если нет ответа в отведённое время, попробовать обратиться к следующему серверу, и т.д. пока не будет исчерпан список серверов.) domain локальное доменное имя Для большинства запросов имён с доменом можно использовать короткие имена относительно локального домена. Если значение равно ".", то это считается корневым доменом. Если строки domain в файле настройки нет, домен определяется из локального имени узла, возвращаемого gethostname (2); доменной частью считается всё после первой точки ".". Наконец, если имя узла не содержит доменной части, то предполагается корневой домен. search список поиска Список поиска обычно определяется по имени локального домена; по умолчанию он содержит только имя локального домена. Это можно изменить, перечислив имена доменов, в которых нужно вести поиск, с ключевым полем search через пробел или символ табуляции. При разрешении запросов имён, в которых меньше точек чем указано в ndots (по умолчанию 1), будет использован каждый компонент пути поиска пока не будет найдено соответствующее имя. Список поиска сейчас может содержать не более шести доменов и не может быть длиннее 256 символов. sortlist Вызывает сортировку адресов, возвращаемых функцией gethostbyname (3). Список сортировки задается в виде пар IP-адрес/маска сети. Маску сети указывать не обязательно --- по умолчанию используется естественная маска сети. IP-адрес и необязательная маска сети разделяются косой чертой. В списке можно указывать до 10 пар. Пример:

sortlist 130.155.160.0/255.255.240.0 130.155.0.0

options С помощью параметров изменяются некоторые внутренние переменные функций определения имён. Синтаксис options параметр ...

где параметр может иметь следующие значения:

debug Задаёт RES_DEBUG в _res.options (только, если glibc собрана с поддержкой отладки; смотрите resolver (3)). ndots: n Задаёт минимальное количество точек, которые должны обязательно присутствовать в имени, переданном функции res_query (3) (см. resolver (3)) прежде чем будет выполнен начальный абсолютный запрос . По умолчанию n равно 1, поэтому если в имени есть точки, сначала имя пытаются разрешить как абсолютное, прежде чем добавлять к нему элементы из списка поиска . Значение этого параметра внутренне доходит до 15. timeout: n Задаёт промежуток времени, который функции определения имён будут ждать ответа от удалённого сервера имён перед тем как повторить запрос другому серверу имён. Измеряется в секундах, по умолчанию RES_TIMEOUT (в настоящее время равно 5, см. ). Значение этого параметра внутренне доходит до 30. attempts: n Задаёт количество раз, которое функции определения имён будут посылать запрос серверам имён перед тем как закончить работу и вернуть ошибку вызывавшему их приложению. По умолчанию равно RES_DFLRETRY (в настоящее время 2, см. ). Значение этого параметра внутренне доходит до 5. rotate Задаёт значение RES_ROTATE в _res.options , что приводит к циклическому выбору указанных серверов имён. Это приводит к распределению нагрузки среди серверов, чтобы исключить использование каждый раз только первого сервера всеми клиентами. no-check-names Задаёт значение RES_NOCHECKNAME в _res.options , что приводит к выключению в современном BIND проверки в поступающих именах узлов и почтовых именах недопустимых символов, таких как символы подчёркивания (_), не-ASCII или управляющие символы. inet6 Задаёт значение RES_USE_INET6 в _res.options . Это приводит к выполнению запроса AAAA раньше запроса A внутри функции gethostbyname (3), и отображению ответов IPv4 в "туннелированную форму" IPv6, если записи AAAA не были обнаружены, но есть запись типа A. ip6-bytestring (начиная с glibc 2.3.4) Задаёт значение RES_USE_BSTRING в _res.options . Это приводит к поиску обратной записи IPv6, используя формат значимых битов, описанный в RFC 2673; если этот параметр не задан, то используется полубайтовый формат. ip6-dotint /no-ip6-dotint (начиная с glibc 2.3.4) Устанавливает/сбрасывает значение RES_NOIP6DOTINT в _res.options . Если указан сброс (ip6-dotint ), то выполняется поиск обратной записи IPv6 (устарел) в зоне ip6.int ; если задана установка (no-ip6-dotint ), то по умолчанию выполняется поиск обратной записи IPv6 в зоне ip6.arpa . По умолчанию этот параметр установлен. edns0 (начиная с glibc 2.6) Задаёт значение RES_USE_EDNSO в _res.options . Включает поддержку расширений DNS, описанных в RFC 2671. single-request (начиная с glibc 2.10) Задаёт значение RES_SNGLKUP в _res.options . По умолчанию, glibc начиная с версии 2.9 выполняет поиск по IPv4 и IPv6 параллельно. Некоторые приложения DNS-серверов не могут обработать такие запросы должным образом и делают паузу между ответами на запрос. Этот параметр отключает данное поведение, что заставляет glibc делать запросы IPv6 и IPv4 последовательно (что замедляет процесс определения имени). single-request-reopen (начиная с glibc 2.9) Задаёт RES_SNGLKUPREOP в _res.options . Для разрешения имён используется единый сокет для запросов A а AAAA. Некоторая аппаратура ошибочно посылает обратно только один ответ. Когда это происходит, клиент остаётся ждать второго ответа. Указание этого параметра изменяет такое поведение так, что если два запроса с одного порта не обрабатываются правильно, то сокет будет закрыт и открыт новый перед посылкой второго запроса. no-tld-query (начиная с glibc 2.14) Задаёт значение RES_NOTLDQUERY в _res.options . Этот параметр указывает res_nsearch () не пытаться определить неполное имя как если бы это домен верхнего уровня. Данный параметр может привести к проблемам, если сайт указал «localhost» как TLD, но содержит localhost в одном или более элементах списка поиска. Данный параметр не действует, если не установлен RES_DEFNAMES или RES_DNSRCH. use-vc (начиная с glibc 2.14) Задаёт RES_USEVC в _res.options . Данный параметр включает принудительное использование TCP для запросов DNS.

Ключевые слова domain и search являются взаимоисключающими. Если они указаны более одного раза, то используется значение последнего.

Значение ключевого слова search в системном файле resolv.conf может быть изменено назначением переменной окружения для определённого процесса LOCALDOMAIN списка доменов, разделённых пробелами.

Значение ключевого слова options в системном файле resolv.conf может быть дополнено назначением переменной окружения для определённого процесса RES_OPTIONS списка вышеописанных в options параметров настройки функций определения имён.

Ключевое слово и значение должны быть в одной строке, и кроме того, ключевое слово(например, nameserver ), должно быть в начале строки. Значение должно отделяться от ключевого слова пробельным символом.

Строки, в которых в первой колонке содержится точка с запятой (;) или символ решётки (#), считаются комментариями.

Table of Contents

Настройка интерфейса Ethernet

Основную настройку сети можно выполнить, редактируя конфигурационный файл interfaces , который располагается в /etc/network/interfaces . Здесь Вы можете задать IP адресс сетевой карты (или использовать DHCP), настроить маршрутизацию, IP masquerading, установить маршрут по умолчанию и многое другое.

Для того что бы интерфейс автоматически инициализировался при загрузке, не забудьте добавить строчку "auto".

man interfaces .

Автоматическое конфигурирование интерфейса с использованием DHCP

Если Вы хотите использовать DHCP вам необходимо написать следующие:

auto eth0 allow-hotplug eth0 iface eth0 inet dhcp

Ручное конфигурирование интерфейса

Если Вы хотите сконфигурировать вручную, например задать шлюз по умолчанию (так же опционально можно задать: сеть, широковещательный адрес или шлюз):

auto eth0 iface eth0 inet static address 192.168.0.7 netmask 255.255.255.0 gateway 192.168.0.254

Если вы хотите добавить IPv6 адрес, то напишете следующие:

iface eth0 inet6 static address 2001:db8::c0ca:1eaf netmask 64 gateway 2001:db8::1ead:ed:beef

Полный список опций можно найти в man interfaces .

Настройка скорости и дуплекса

Частые ошибки автоматического согласования режимов работы, свидетельствуют о проблемах с кабелем. Следует проверить физическое состояние кабельного оборудования (отсутствие повреждений итп), прежде чем предполагать несовместимость алгоритмов автосогласования. Если Вы выключите автосогласование и установите скорость и дуплекс вручную, то интерфейс на другом конце кабеля будет считать что автосогласование не поддерживается и установит скорость 10Mbs и полудуплексный режим передачи. Для того чтобы не было ошибок в работе, при ручной настройки Вам необходимо убедиться что оба интерфейса работают на одинаковых скоростях и установлен одинаковый режим дуплекса.

Если Вы хотите вручную установить скорость и режим дуплекса интерфейса. Здесь описаны основные шаги:

    установите пакеты ethtool и net-tools , так вы получите программы ethtool и mii-tool . Одна или обе из них могут работать с Вашим интерфейсом.

    Убедитесь что у Вас есть запасной вариант доступа к системе, на случай если сеть перестанет работать и ssh соединение будет не доступно.

  • Определите интерфейс, который Вы будете настраивать (чаше всего это eth0) и замените в следующих командах eth0 на Ваш интерфейс.
  • Попробуйте определить текущую скорость и режим дуплекса.

      Для начала выполните, как root ethtool eth0 , и Вы увидите строчки "Speed:" и "Duplex:", если нет то ethtool возможно не поддерживает Ваше устройство.

      Попробуйте выполнить как root mii-tool -v eth0 и убедиться, что вывод выглядит правильно. Если нет, то mii-tool не поддерживает ваше устройство

      Если ни одна из них не поддерживается, то Вы можете попробовать установить параметры напрямую в модуле драйвера ядра. Определить какой драйвер у Вас используется можно из вывода команд dmesg и lsmod . Вы можете попробовать выполнить modinfo MODULENAME что бы узнать возможные параметры. (можно использовать modinfo даже если модуль не загружен) ToDo : where does one set kernel module parameters?

  • Дальше, попробуйте изменить настройки используемого интерфейса. Вам необходимо быть root:

      ethtool -s eth0 autoneg off speed 100 duplex full (задаёт 100 Mbps и full duplex)

      mii-tool -F 100baseTx-FD eth0 (same assumption)

В каждом случае, перепроверьте применились ли настройки которые Вы изменили, затем попробуйте отправить какие-нибудь данные из системы, чтобы убедиться что NIC работает правильно.

    Если одна из этих команд успешно настроила Вашу сетевую карту, можно добавить эти параметры в /etc/network/interfaces чтобы они применялись во время загрузки при поднятии интерфейса. Однако, перед этим Вам следует понять что некоторые драйвера отличаются от других. Когда модуль драйвера загружен, сетевая карта может начать автосогласование, без какого либо способа остановить его (особенно с драйверами которые не принимают параметры). Параметры из файла interfaces могут применяются в момент, когда автосогласование уже наполовину выполнено. Что бы избежать этого можно добавить задержку выполнения команд ethtool и mii-tool . Например:

iface eth0 inet static address ... netmask ... gateway ... up sleep 5; ethtool -s eth0 ...

    Или аналоги команды mii-tool .

  • Перезагрузите компьютер чтобы убедится что всё работает правильно, и приготовитесь вмешаться (Ctrl-Alt-Del и затем загрузиться в однопользовательском режиме через LILO или GRUB) если что-то не работает.

Переключение интерфейса в режим моста без IP адреса

Чтобы создать сетевой интерфейс без IP адреса используйте ручной метод и команды pre-up и post-down

iface eth0 inet manual pre-up ifconfig $IFACE up post-down ifconfig $IFACE down

Задание серверов имён (DNS)

Перед тем как компьютер сможет подключится внешнему сетевому ресурсу (например веб-серверу), он должен преобразовать буквенное-цифровое имя (такое как сайт) в числовой адрес сети (например 140.211.166.4). (В Интернет идентификации компьютера в сети используется структурированный числовой IP адрес.)

Библиотека C и другие библиотеки за списком серверов имён обращаются к файлу /etc/resolv.conf . В простейшем случае Вы можете отредактировать этот файл, записав в него список серверов имён. Но, следует отметить, что различные программы динамической конфигурации будут рады переписать ваши настройки:

    Программа resolvconf

    Демон network-manager

  1. DHCP клиенты

В большинстве ситуаций необходимо отредактировать файлы конфигураций этих программ.

В более сложных ситуациях, более правильным будет использование программы resolvconf , но для простых конфигураций она избыточена.

Конфигурационный файл resolv.conf

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

Файл resolv.conf обычно содержит IP адреса серверов имён (DNS) которые будут пытаться перевести имена в адрес для любого узла доступного в сети. Там будут строчки содержащие, примерно, следующие:

nameserver 12.34.56.78 nameserver 12.34.56.79

В этом примере, система исопользует сервера имён с IP адресами 12.34.56.78 и 12.34.56.79 . Просто отредактируйте этот файл и введите IP адреса нужных Вам серверов, после слова nameserver . Можно добавить ещё строчки, если у Вас больше 2 серверов имён.

Не используйте этот метод если у Вас установлена программа resolvconf

Конфигурационный файл resolv.conf имеет множество других опций для определения режимов преобразования имён. См. man resolv.conf .

Программа resolvconf

Программа resolvconf следит за информацией о доступных на данных момент серверов имён. Не следует путать её с одноимённым конфигурационным файлом resolv.conf . Программа resolvconf является опциональной для систем Debian.

Конфигурационный файл resolv.conf содержит информацию о серверах имён, которые используются в системы. Однако, когда множеству программ необходимо динамически изменять файл resolv.conf они начинают мешать друг другу и файл становиться не синхронизируемым (out-of-sync). Программа resolvconf решает эту проблему. Она является посредником между программами которые поставляют информацию о серверах имён (например dhcp клиент) и программами которые используют эту информацию (например резолвер).

Если resolvconf правильно установлена, конфигурационный файл resolv.conf заменяется символьной ссылкой на файл /etc/resolvconf/run/resolv.conf и резолвер использует файл, который динамически генерируется программой resolvconf .

Программа resolvconf , в общем случае, необходима когда в системе присутствуют программы которым необходимо часто изменять информацию о серверах имён. В простых системах где нет таких программ, достаточно просто файла resolv.conf .

Если программа resolvconf установлена, то Вам не следует вручную редактировать файл resolv.conf , так как он будет динамически меняться программами в системе. Если Вам необходимо вручную задать сервера имён (например при статически сконфигурированном интерфейсе), добавьте в конфигурационный файл interfaces следующую строчку:

dns-nameservers 12.34.56.78 12.34.56.79

Разместите эту строчку в описании интерфейса iface , сразу после указания шлюза gateway . IP адрес сервера имёны необхожимо ввести после слова dns-nameservers . Если IP адресов несколько то они разделяются пробелом. Не забудьте написать " s " в конце слова dns-nameservers .

Программа resolvconf была добавлена в Debian сравнительно недавно и многие старые программы необходимо обновить и переконфигурировать для правильно работы. Если у Вас возникли проблемы, смотрите файл /usr/share/doc/resolvconf/README . Он содержит полную информацию по работе resolvconf с другими программами.

Конфигурирование DNS для network-manager

Предупреждение: Этот раздел не был протестирован с актуальной версией network-manager. Пожалуйста протестируйте и удалите это сообщение. Примечание: В этом разделе описаны примеры применяемые в системах подобных Red Hat, а не Debian.

Если Вы используете NetworkManager , настройки располагаются в файле /etc/sysconfig/network-scripts/ifcfg-* . Например так:

DNS1=127.0.0.1 DNS2=8.8.8.8 DNS3=8.8.4.4

Через графический интерфейс это можно сделать так:

    Systems menu > Preferences > Network Connections.

  1. Выберете соединение (на вкладке Wired(проводное) или Wireless(беспроводное)) и нажмите Edit.
  2. На вкладке IPv4 Settings измените метод получения адреса “Automatic (DHCP)” на какой-нибудь другой. Например, “Automatic (DHCP) addresses only” is likely to be appropriate.
  3. Введите через пробел адреса DNS серверов в поле “DNS servers”.
  4. Нажмите “Apply.” Примечание, Ваш DHCP клиент может отменить эти настройки;

    Этот раздел основан на http://code.google.com/speed/public-dns/docs/using.html , где Вы можете найти более детальное описание.

DHCP Client Configuration

Example: dhclient3 uses /etc/dhcp/dhclient.conf . The setting you want is

supersede domain-name-servers 12.34.56.78, 12.34.56.79 prepend domain-name-servers 12.34.56.78, 12.34.56.79

See the dhclient.conf(5) manual page for details.

Howto use vlan (dot1q, 802.1q, trunk) (Etch, Lenny)

Manual config

modprobe 8021q apt-get install vlan vconfig add eth0 222 # 222 is vlan number ifconfig eth0.222 up ifconfig eth0.222 mtu 1496 #optional if your network card doesn"t support MTU 1504B ifconfig eth0.222 10.10.10.1 netmask 255.255.255.0

Caveats when using bridging and vlan

#/etc/network/interfaces auto eth0 bri0 iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 iface eth0.110 inet manual vlan-raw-device eth0 iface bri0 inet static address 192.168.110.1 network 192.168.110.0 netmask 255.255.255.0 broadcast 192.168.110.255 bridge_ports eth0.110 bridge_stp on bridge_maxwait 10

If you are using a brigded VLAN setup, which is probably useful for networking in virtualization environments, take care to only attach either a bridge device or VLAN devices to an underlying physical device - like shown above. Attaching the physical interface (eth0) to a bridge (eg. bri1) while using the same physical interface on apparently different VLANs will result in all packets to remain tagged. (Kernel newer than 2.6.37 and older than 3.2).

Network init script config

Into /etc/modules add line:

8021q

In /etc/network/interfaces to section iface add parameter:

vlan-raw-device eth0

The interface name should be the raw interface name (the same as specified by vlan-raw-device), then a dot, then the VLAN ID, for example eth0.100. It can instead be "vlan" then the VLAN ID, for example vlan100. In either case, the VLAN ID is on the end, and this is the only place that it is configured. Eg:

auto eth0.222 iface eth0.222 inet static address 10.10.10.1 netmask 255.255.255.0 network 10.10.10.0 broadcast 10.10.10.255 vlan-raw-device eth0

Howto create fault tolerant bonding with vlan (Etch)

debian_bonding.dia

Howto configure one of the above server active backup bonding 3 vlan {vlan10,vlan20,vlan30} Debian networking without SPOF without native vlan.

aptitude install vlan ifenslave-2.6

Network config

Cisco switch interface example config

interface GigabitEthernet1/2 description eth1 switchport switchport trunk encapsulation dot1q switchport trunk allowed vlan 10,20,30 switchport mode trunk no ip address no cdp enable spanning-tree portfast trunk

bonding with active backup

Create a file /etc/modprobe.d/bonding.conf containing:

alias bond0 bonding options bonding mode=active-backup miimon=100 downdelay=200 updelay=200 primary=eth1

/etc/network/interfaces

# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto bond0 iface bond0 inet manual up ifconfig bond0 0.0.0.0 up slaves eth1 eth0 auto vlan10 iface vlan10 inet static address 10.10.10.12 netmask 255.255.0.0 network 10.10.0.0 broadcast 10.10.255.255 vlan-raw-device bond0 gateway 10.10.0.1 dns-search hup.hu dns-nameservers 10.10.0.2 auto vlan20 iface vlan20 inet static address 10.20.10.12 netmask 255.255.0.0 network 10.20.0.0 broadcast 10.20.255.255 vlan-raw-device bond0 auto vlan30 iface vlan30 inet static address 10.30.10.12 netmask 255.255.0.0 network 10.30.0.0 broadcast 10.30.255.255 vlan-raw-device bond0

Multiple IP addresses on One Interface

Interface aliasing allows one interface to have multiple IP addresses. This is useful when more than one server is to be visible via the Internet. Note that virtual hosts can support multiple Apache servers with a single IP address. Apache responds to the domain name supplied by the client in the HTTP header. In many other situations, one external IP is needed for each server using a port.

auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.1.42 netmask 255.255.255.0 gateway 192.168.1.1 auto eth0:0 allow-hotplug eth0:0 iface eth0:0 inet static address 192.168.1.43 netmask 255.255.255.0 auto eth0:1 allow-hotplug eth0:1 iface eth0:1 inet static address 192.168.1.44 netmask 255.255.255.0

An alias interface should not have "gateway" or "dns-nameservers"; dynamic IP assignment is permissible.

The above configuration is the previous traditional method that reflects the traditional use of ifconfig to configure network devices. ifconfig has introduced the concept of aliased or virtual interfaces. Those types of virtual interfaces have names of the form interface:integer and ifconfig treats them very similarly to real interfaces.

Nowadays ifupdown uses ip utility from the iproute2 package instead of ifconfig . The newer ip utility does not use the same concept of aliases or virtual interfaces. However, it supports assigning arbitrary names to the interfaces (they"re called labels). ifupdown uses this feature to support aliased interfaces while using ip .

Also, ifupdown supports specifying multiple interfaces by repeating iface sections with the same interface name. The key difference from the method described above is that all such sections are treated by ifupdown as just one interface, so user can"t add or remove them individually. However, up /down commands, as well as scripts, are called for every section as it used to be.

This /etc/network/interfaces text assigns three IP addresses to eth0.

auto eth0 allow-hotplug eth0 iface eth0 inet static address 192.168.1.42 netmask 255.255.255.0 gateway 192.168.1.1 iface eth0 inet static address 192.168.1.43 netmask 255.255.255.0 iface eth0 inet static address 192.168.1.44 netmask 255.255.255.0

Сервера DNS используются системой для преобразования сложных для запоминания IP адресов в простые доменные имена. Это делается потому что людям сложно запоминать несколько никак не связанных цифр, но очень просто запомнить слово.

Когда компьютеру нужно узнать IP адрес какого-либо домена, он отправляет запрос известному ему DNS серверу. Эти сервера могут быть получены автоматически от роутера по DHCP или же заданы в ручную. В этой статье мы рассмотрим как выполняется настройка DNS Ubuntu 16.04 и более старых версиях.

Раньше, для настройки DNS серверов, которые будут использоваться системой было достаточно внести адреса нужных серверов в файл /etc/resolv.conf. Но сейчас всей конфигурацией сети в Ubuntu управляет NetworkManager, а этот файл теперь представляет собой только ссылку на файл NetworkManager.

Этот способ до сих пор работает, но в нем вы можете настроить DNS на LiveCD, или до перезагрузки. После перезагрузки все настройки собьются и придется все делать заново. Поэтому, чтобы все сохранилось нужно выполнять все действия через интерфейс NetworkManager. Сначала откройте контекстное меню для значка сети на панели и выберите "Изменить подключения" :

Выберите ваше подключение и нажмите "Изменить" :

В открывшемся окне перейдите на вкладку "Параметры IPv4" :

Затем, в поле "Способ настройки" выберите "Автоматически (DHCP, только адрес)" :

Теперь немного ниже появиться поле "Серверы DNS" , где вам нужно прописать нужные серверы, можно несколько адресов через запятую. Например, можно указать сервера от Google:

Собственно, это все, но есть еще один способ настройки через консоль, если этот не сработал или вы предпочитаете работать из консоли.

Настройка DNS через терминал Ubuntu

В Ubuntu есть унифицированный интерфейс настройки сети, который настраивается через конфигурационный файл /etc/network/interfaces. Сначала смотрим список сетевых интерфейсов:

ls /sys/class/net/

Откройте файл для редактирования и найдите в нем имя своего сетевого интерфейса, например, auto enp0s3, если такой секции нет, ее нужно добавить:

sudo vi /etc/network/interfaces

auto enp0s3
iface enp0s3 inet dhcp

Затем, добавьте в эту секцию строчку:

dns-nameserver 8.8.8.8

Здесь адрес 8.8.8.8 - это адрес вашего DNS сервера. Но эта настройка сработает, только если ваш DHCP клиент не пытается назначить адрес самостоятельно. Чтобы указать DNS адрес на уровне DHCP сервера нужно добавить такую строчку в конфигурационный файл /etc/dhcp/dhclient.conf:

sudo vi /etc/dhcp/dhclient.conf

supersede domain-name-servers 8.8.8.8

Здесь тоже адрес 8.8.8.8 означает адрес DNS сервера. Для верности, вы можете добавить свои адреса DNS серверов в файл /etc/resolvconf/resolv.conf.d/base:

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

nameserver 8.8.8.8

Чтобы настройки вступили в силу необходимо перезапустить сеть:

sudo systemctl restart networking

Возможно, даже лучше будет если вы полностью перезагрузите компьютер. Теперь вы можете открыть /etc/resolv.conf и посмотреть применялся ли новый адрес DNS:

Как видите, в моем примере все заработало. Подобно этому выполняется настройка dns linux для любого дистрибутива.

Выводы

В этой небольшой статье мы рассмотрели как выполняется настройка DNS Ubuntu 16.04 через графический интерфейс или терминал. В Ubuntu автоматической настройкой DNS могут заниматься множество утилит и это создает некоторые проблемы при настройке, но со всем можно разобраться. Надеюсь, эта информация была полезной для вас.

Об авторе

Основатель и администратор сайта сайт, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux интересуюсь всем, что связано с информационными технологиями и современной наукой.

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

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-сервер смог разрешить «марионетку» на правильный адрес, а также для того, чтобы ваш DHCP-сервер раздавал адрес DNS-сервера 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

Я думаю, что ответ проверяет ваш /etc/dhcp/dhclient.conf , т. /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 (даже если этот скрипт устарел, он все еще работает).

Вероятно, это связано с настройкой 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

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

В третьих

Перезагрузите сеть, используя следующую команду:

/etc/init.d/networking restart

Sudo ifdown -a sudo ifup -a

Посмотрите resolvconf страницу 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.

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

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

  • Я не использую resolvconf , просто 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 sudo ifdown -a ; sudo ifup -a – он загружает этот скрипт nodnsupdate . Этот скрипт переопределяет внутреннюю функцию, называемую make_resolv_conf() , которая обычно перезаписывает resolv.conf и вместо этого ничего не делает.

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

добавьте ваш сервер имен в файл /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 , но никогда не /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. Я не могу объяснить это (может кто-то?), Но это может помочь кому-то застрять в том же месте.

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

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

$ ifconfig: : em2:

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

$ sudo su - password for youruser: # cd /etc/sysconfig/networking/devices`

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

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

Search rn.yourcompany.com yourcompany.com intnet.yourcompany.com

Как и многие другие ответы, это связано с установкой 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

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

Nameserver 8.8.8.8

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

Sudo chattr +i /etc/resolv.conf

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

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

Sudo chattr -i /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 тоже.

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

Подробнее см. В Вики- версии NetworkConfiguration Debian .

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

Sudo echo "search puppetmaster.com" >> /etc/resolvconf/resolv.conf.d/head sudo echo "nameserver 192.168.1.XXX" >> /etc/resolvconf/resolv.conf.d/head

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

Sudo resolvconf -u

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

Просто поставьте

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

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

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

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

RESOLVCONF=no|yes

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

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

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

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

Я решил. «всего 12,4»

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

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

Sudo resolvconf -a eth0 # or your network Interfas

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

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

Sudo /etc/init.d/networking restart

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

соло ubuntu 12.4

Он visto que si agregas los dns-nameserver en interface esta no toma los server de resolucion de nombres

Gracias a la ayuda encontrada en esta pagina он resuelto el problema.

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 PD no olvidar reiniciar:

Sudo /etc/init.d/networking restart



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: