🌐 Как сделать постоянными изменения DNS в resolv.conf на Linux
Прочтите это руководство, чтобы узнать, как внести постоянные изменения 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:
Обновление настроек DNS-сервера в dhclient.conf
Если вы используете DHCPd для автоматического назначения IP-адреса, отредактируйте файл /etc/dhcp/dhclient.conf и добавьте следующую строку;
supersede domain-name-servers IP1, IP2;
Замените IP1 и IP2 соответствующими IP-адресами DNS:
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.
В вашем случае все может быть иначе.
auto wlp0s20f3 iface wlp0s20f3 inet static address 192.168.100.80 netmask 255.255.255.0 dns-nameservers 8.8.8.8
Перезапустите сеть, чтобы изменения вступили в силу;
systemctl restart networking
На CentOS и аналогичных производных отредактируйте соответствующий интерфейс следующим образом.
Замените INTERFACE своим именем интерфейса.
nmcli con mod INTERFACE ipv4.dns 8.8.8.8
Также отключите управление сетевым интерфейсом с помощью демона NetworkManager.
echo "NM_CONTROLLED=no" >> /etc/sysconfig/network-scripts/ifcfg-INTERFACE
nmcli con down INTERFACE nmcli con up INTERFACE
Теперь у вас должен быть установлен статический DNS.
На этом мы завершаем наше руководство о том, как внести постоянные изменения DNS в resolv.conf на Linux.
man resolv.conf
man resolvconf