1) Не следует вручную обновлять resolv.conf, так как все изменения будут перезаписаны данными, предоставляемыми вашим локальным DHCP-сервером. Если Вы хотите, чтобы он был статическим, запустите sudo dpkg-reconfigure resolvconf
и ответьте "нет" на динамические обновления. Если Вы хотите добавить туда новые записи, отредактируйте /etc/resolvconf/resolv.conf.d/base
и запустите sudo resolvconf -u
, он добавит Ваши записи и записи DHCP-сервера.
2) Попробуйте отредактировать свои /etc/network/interfaces и добавить туда свои записи, например,
auto eth0
iface eth0 inet dhcp
dns-search google.com
dns-nameservers dnsserverip
, а затем перезапустите /etc/init.d/networking restart
или sudo ifdown -a
и sudo ifup -a
3) Ваша система использует udhcp, которая является очень маленькой DHCP клиентской программой. Клиент udhcp договаривается об аренде с DHCP сервером и уведомляет набор скриптов при получении или потере лизинга. Вы можете прочитать об использовании здесь или просто отредактировать этот скрипт (как вы это сделали).
Я тоже столкнулся с этим. Комментируя Name-Server
Server
.
Кроме того, я не использую ResolvConf
, просто /etc/resolv.conf
.
Я не пытался использовать Chattr + I
, чтобы заблокировать resolv.conf
, потому что кажется слишком хакей. Кроме того, я хочу, чтобы марионетка была возможность модифицировать resolv.conf
при необходимости.
Лучшее решение я обнаружил, что он переопределяет поведение по умолчанию DHClient
, используя его документированные крюки.
Создайте новый файл на /etc/dhcp/dhclient-enter-hooks.d/nodnsuppdate
со следующим содержимым:
#!/bin/sh
make_resolv_conf() {
:
}
Затем сделайте исполняемый файл:
chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
теперь, когда DHClient Runs - - либо при перезагрузке или при запуске вручную Sudo ifdown -a; sudo ifup -a
- он загружает этот скрипт NodnsUpdate
. Этот скрипт переопределяет внутреннюю функцию, называемую make_resolv_conf ()
, которая обычно перезаписи resolv.conf
и вместо этого ничего не делает.
Это работало для меня на Ubuntu 12.04.
Ubuntu 16.04
Если сетевые интерфейсы для вашего экземпляра сервера контролируются DHCP, программа dhclient перезапишет ваш файл /etc/resolv.conf
при каждом перезапуске сетевой службы.
Вы можете решить эту проблему, отредактировав файл /etc/dhcp/dhclient.conf
и добавив операторы замены для имя-домена , поиск домена и серверы доменных имен следующим образом:
supersede domain-name "local.com";
supersede domain-search "local.com";
supersede domain-name-servers 192.168.56.103;
В данном конкретном случае сервер имен расположен по адресу «192.168.56.103», а имя домена - «local.com»
. каждая строка заканчивается точкой с запятой, а имя домена заключено в двойные кавычки.
Para hacer que los cambios relacionados con el DNS en resolv.conf
sean permanentes, debe cambiar el archivo de configuración de DHCP llamado dhclient.conf
. Puede encontrar el archivo en /etc/dhcp/dhclient.conf
.
Abre el archivo para editarlo (no olvides usar sudo ). Verás líneas como estas:
#supersede domain-name "fugue.com home.vix.com";
#prepend domain-name-servers 127.0.0.1;
Elimine el “#” anterior y use el nombre de dominio -y/o los servidores de nombre de dominio --que desee. Guárdalo. Ahora los cambios relacionados con el DNS serán permanentes (, es decir, dentro del archivo resolv.conf
).
Los créditos van a:https://itsfoss.com/resolvconf-permanent-ubuntu/
перейти в этот каталог:
cd /etc/resolvconf/resolv.conf.d
Откройте файл с именем head и поместите туда IP-адреса или имена DNS. Откройте файл с именем tail и поместите туда домен. Перезагрузить.
В виртуальных машинах Azure /etc/resolv.conf
нельзя редактировать напрямую.
Попробуйте добавить записи DNS в файлы конфигурации сети /etc/sysconfig/network-scripts/ifcfg-eth0
и т. д., как показано ниже:
DOMAIN=example.com
DNS1=10.*.*.*
DNS2=10.*.*.*
DNS3=10.*.*.*
и перезапустите сетевую службу после сохранения файлов. вы увидите, что конфигурация также будет добавлена в resolve.conf.
В Ubuntu 18.04 используется NetworkManager. Вам нужно удалить файл resolv.conf и позволить NetworkManager сгенерировать его для вас.
Чтобы удалить файл в терминале, введите sudo rm -f /etc/resolv.conf
; это удалит файл для вас.
Перезагрузите систему, и NetworkManager создаст для вас файл resolv.conf.
Используйте приведенную ниже команду, чтобы предотвратить перезапись resolv.conf
или любого другого файла после перезагрузки:
chattr -V +i filename e.g chattr -V +i /etc/resolv.conf
Чтобы отменить изменение, используйте приведенную ниже команду:
chattr -i filename - to re-enable insert to the file
chattr
(Change Attribute )— это утилита командной строки Linux, которая используется для установки/отмены определенных атрибутов файла в системе Linux для защиты от случайного удаления или изменения важных файлов и папок, даже если вы вошли в систему как пользователь root. Пользователь.
Я не использую systemd -, только dhcpcd на виртуальной машине OVH под управлением Arch Linux.
При перезагрузке я всегда получал новый resolv.conf с «доменом openstacklocal» и DNS-сервером OVH. Комментирование -параметров для домена _имени _серверов и поиска домена _в /etc/dhcpcd.conf не помогло.
Наконец-то мне удалось остановить перезапись файла resolv.conf, поместив строку «nohook resolv.conf» в файл /etc/dhcpcd.conf. Я нашел это, прочитав "man dhcpcd.conf".