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

Thank you for reading this post, don't forget to subscribe!

Соглас­но 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 HANDYOUR CHANGES WILL BE OVERWRITTEN».

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

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

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

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

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

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

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

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

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

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

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

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

supersede domain-name-servers IP1IP2;

Заме­ни­те 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, например:

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

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

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

На Debian и <= Ubuntu 16.04;