🌐 Как сделать постоянными изменения DNS в resolv.conf на Linux

by itisgood

Прочтите это руководство, чтобы узнать, как внести постоянные изменения DNS в resolv.conf на Linux.

Согласно man resolv.conf, resolv.conf – это файл конфигурации резолвера.

Resolver – это набор процедур в библиотеке C, которые обеспечивают доступ к системе доменных имен Интернета (DNS).

Файл предназначен для чтения человеком и содержит список ключевых слов со значениями, которые предоставляют различные типы информации о резолвере.

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

Если этот файл не существует, будет опрошен только сервер имен (nameserver) на локальном компьютере, а список search будет содержать имя локального домена, определенное по имени хоста.

Внесем постоянные изменения DNS в resolv.conf

Внесем постоянные изменения DNS в resolv.conf

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

Согласно комментариям, сделанным в файле, файл является динамическим. «DO NOT EDIT THIS FILE BY HAND — YOUR CHANGES WILL BE OVERWRITTEN».

Итак, возьмем, к примеру, если вы хотите добавить DNS-сервер в свой Linux-сервер, вы обычно обновляете этот файл, указывая IP-адрес сервера имен, который должен запрашивать резолвер.

См. Приведенную ниже команду, которая обновляет файл resolv.conf общедоступным первичным DNS-сервером Google DNS, выполнив такую команду:

echo "nameserver 8.8.8.8" > /etc/resolv.conf

Использование фреймворка Resolvconf

Resolvconf – это платформа для обновления системной информации о серверах DNS.

Он настраивается как посредник между программами, которые предоставляют эту информацию (такими как ifup и ifdown, DHCP-клиенты, демон PPP и локальные серверы имен) и программами, которые используют эту информацию, такими как кэши DNS и библиотеки resolver).

В дистрибутивах Ubuntu/Debian вы можете установить resolvconf, выполнив команду ниже;

sudo apt install resolvconf

После установки фреймворк стартует и запускается при загрузке системы.

Затем отредактируйте файл конфигурации /etc/resolvconf/resolv.conf.d/base и введите настройки DNS.

Пример настройки:

sudo vim /etc/resolvconf/resolv.conf.d/base
domain itisgood.ru
nameserver 8.8.8.8
nameserver 8.8.4.4

Затем обновите файл /etc/resolv.conf, чтобы внести постоянные изменения в DNS:

sudo resolvconf -u

Обновление настроек DNS-сервера в dhclient.conf

Если вы используете DHCPd для автоматического назначения IP-адреса, отредактируйте файл /etc/dhcp/dhclient.conf и добавьте следующую строку;

supersede domain-name-servers IP1, IP2;

Замените IP1 и IP2 соответствующими IP-адресами DNS:

vim /etc/dhcp/dhclient.conf
supersede domain-name-servers 8.8.8.8, 8.8.4.4;

Сохраните файл и выйдите.

Теперь, если вы запустите dhclient, ваш /etc/resolv.conf будет обновлен с использованием серверов DNS, определенных в dhclient.conf.

Вы можете использовать опцию prepend вместо supersede, чтобы добавить дополнительные IP-адреса к IP-адресу по умолчанию, предоставленному интернет-провайдером.

Больше информации:

man dhclient.conf

Как уcтановить IP-адрес сервера имен в настройках вашего интерфейса.

Отредактируйте файл конфигурации сетевого интерфейса и добавьте адрес сервера имен.

В Ubuntu 18.04/20.04 вы должны обновить файл конфигурации Netplan, например:

sudo vim /etc/netplan/01-network-manager-all.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
          wlp0s20f3:
                  dhcp4: no
                  addresses: [192.168.100.80/24]
                  gateway4: 192.168.100.1
                  nameservers:
                          addresses: [8.8.8.8]

Мы устанавили DNS на публичный адрес DNS-сервера Google, 8.8.8.8.

В вашем случае все может быть иначе.

Применим изменения:

sudo netplan apply
На Debian и <= Ubuntu 16.04;

You may also like

Leave a Comment