Файл конфигурации Resolv перезаписывается после перезагрузки

Обновлено: 21.11.2024

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

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

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

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

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

Согласно комментариям, сделанным в файле, файл является динамическим. «НЕ РЕДАКТИРУЙТЕ ЭТОТ ФАЙЛ ВРУЧНУЮ — ВАШИ ИЗМЕНЕНИЯ БУДУТ ПЕРЕЗАПИСЫВАТЬСЯ».

Возьмите, к примеру, если вы хотите добавить DNS-сервер на свой компьютер с Linux, вы обычно обновляете этот файл, указывая IP-адрес сервера имен, который должен запрашивать преобразователь. См. приведенную ниже команду, которая обновляет файл resolv.conf общедоступным первичным DNS-сервером для Google DNS, выполнив команду, например;

Если вы внесете какие-либо изменения, например, перезагрузите систему или запустите команду dhclient, добавленная выше строка исчезнет.

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

Существует несколько способов внесения постоянных изменений DNS в файл resolv.conf в Linux.

Использовать структуру Resolvconf

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

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

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

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

Сохраните и закройте файл конфигурации.

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

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

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

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

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

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

Установите IP-адрес сервера имен в настройках интерфейса

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

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

Мы устанавливаем DNS на общедоступный адрес DNS-сервера Google, 8.8.8.8. В вашем случае это может быть иначе.

Если вы тщетно пытались подключить статический DNS к Ubuntu, Джек Валлен покажет вам, как это можно легко сделать с помощью одного файла конфигурации.

Если вы похожи на меня, вы предпочитаете использовать сторонние DNS-серверы на своих компьютерах (например, Google или OpenDNS). Для этого вы настраиваете свои сетевые подключения через приложение сетевого менеджера для использования статического IP-адреса (в комплекте со шлюзом, сетевой маской и двумя DNS-серверами). Настроив это, вы проверяете файл /etc/resolv.conf и обнаруживаете, что он содержит только одну запись:

Несмотря на то, что это работает, вы можете обнаружить, что DNS разрешается не так быстро, как хотелось бы, или что у вас нет дополнительных элементов управления, которые поставляются, например, с учетной записью OpenDNS.

Так как же предотвратить перезапись этой записи resolv.conf в Ubuntu? Позвольте мне показать вам.

Статичность

Первое, что вы должны сделать, это настроить сетевое подключение как статическое. Это можно сделать в графическом интерфейсе Edit Connections. Щелкните значок сети на панели задач, а затем щелкните Изменить подключения.В окне «Сетевые подключения» выберите подключение для редактирования и нажмите кнопку «Изменить». В появившемся окне нажмите IPv4 или IPv6 (в зависимости от того, что используется в вашей сети), выберите «Вручную» и введите необходимую информацию (рис. A).

Рисунок А

Заполнив необходимую информацию, нажмите Сохранить. Теперь вы настроили свой статический IP-адрес. Остался последний шаг, который вы должны сделать.

маска DNS

Система dnsmasq обеспечивает сетевую инфраструктуру для небольших сетей (например, DNS, DHCP, объявление маршрутизатора и загрузку по сети). Это инструмент, который отвечает за перезапись файла resolv.conf. Чтобы этого не произошло, вам нужно открыть окно терминала и ввести команду sudo nano /etc/NetworkManager/NetworkManager.conf. В этом файле найдите строку:

Закомментируйте эту строку, чтобы она выглядела так:

Сохраните и закройте файл.

Наконец, вы должны перезапустить NetworkManager с помощью команды:

sudo /etc/init.d/network-manager перезапустить

Если вы проверите свой файл /etc/resolv.conf, вы должны увидеть, что теперь он сохраняет статические DNS-серверы, которые вы установили в редакторе сетевых подключений (рис. B).

Рисунок Б

Вы можете перезапустить сеть или перезагрузить компьютер, и статические адреса DNS, наконец, сохранятся.

Дальше

Как человек, который почти всегда устанавливает статические DNS-адреса на компьютерах с Linux, я чувствую, что пришло время редактору соединений добавить щелкаемую опцию для включения/отключения dnsmasq. Вместо того, чтобы прятать эту опцию в файле конфигурации (который менее чем очевиден), почему бы не сделать это проще? Когда пользователь решает установить статический адрес DNS в графическом интерфейсе, следует исходить из того, что статический адрес будет учитываться, а не перезаписываться.

См. также

    (TechRepublic) (TechRepublic) (TechRepublic) (TechRepublic)

Опубликовано: 22 февраля 2017 г., 7:30 по тихоокеанскому времени. Изменено: 22 февраля 2017 г., 6:28 по тихоокеанскому стандартному времени.

Читайте также: