Использование DNS в Linux осуществляется с помощью набора подпрограмм в библиотеке C, которые обеспечивают доступ к системе доменных имен Интернета (DNS ). Файл конфигурации распознавателя(resolv.conf
)содержит информацию, которая считывается подпрограммами распознавателя при первом их вызове процессом. Короче говоря, каждый процесс, запрашивающий DNS, будет читать /etc/resolv.conf
через библиотеку. NSS располагается поверх этого и настраивается с помощью /etc/nsswitch.conf
.
Конфигурация DNS Linux находится в файле /etc/resolv.conf
, НО существует ряд программ/служб, которые хотят автоматически управлять и обрабатывать файл конфигурации DNS в /etc/resolv.conf
. В некоторых ситуациях вы можете захотеть управлять этим файлом самостоятельно. Каждая программа/служба, управляющая DNS, имеет свои собственные файлы конфигурации, такие как/etc/dnsmasq.conf
(для службы dnsmasq ), и добавляет конфигурацию DNS при изменении соединения и/или других событиях... быстрое решение — заблокировать файл конфигурации DNS с помощью chattr +i /etc/resolv.conf
, но в некоторых случаях это не рекомендуется, лучшим решением будет правильно настроить все программы/службы, использующие DNS, например (dnsmasq/network -manager/resolvconf/etc.)
Вот исчерпывающий список настроек , чтобы вернуть контроль над resolv.conf и избежать его перезаписи(как отключить/настроить DNS из другого места, кроме resolv.conf)обратите внимание, что resolvconf является независимой программой от resolv.conf, также в зависимости от вашей системы/конфигурации у вас может не быть одной или многих программ, перечисленных здесь.
Файлы конфигурации
cat /etc/resolvconf/resolv.conf.d/head
nameserver 8.8.4.4
cat /etc/resolvconf/resolv.conf.d/base
nameserver 8.8.4.4
Обновить конфигурацию
sudo resolvconf -u
Отключить resolvconf
systemctl disable --now resolvconf.service
Файлы конфигурации
cat /etc/dnsmasq.conf
server=1.1.1.1
server=8.8.4.4
Обновить конфигурацию
sudo systemctl restart dnsmasq.service
Файлы конфигурации
/etc/NetworkManager/*
Отключить DNS
$ cat /etc/NetworkManager/conf.d/no-dns.conf
[main]
dns=none
Включить DNS
$ cat /etc/NetworkManager/conf.d/dns.conf
[main]
dns=default
[global-dns]
searches=example.com
[global-dns-domain-*]
Использовать разрешенный сервис
$ cat /usr/lib/NetworkManager/conf.d/resolved.conf
[main]
dns=systemd-resolved
Использовать resolvconf
$ cat /usr/lib/NetworkManager/conf.d/resolvconf.conf
[main]
rc-manager=resolvconf
Обновить конфигурацию
systemctl restart NetworkManager.service
Файлы конфигурации
$ cat /etc/network/interfaces
#nameservers
# or dns-search like so
# dns-search x.y
dns-nameservers 4.4.4.4 8.8.8.8
Обновление конфигурации
reboot
Файлы конфигурации
$ cat /etc/dhcp3/dhclient.conf
supersede domain-name-servers <dns_ip_address1>,<dns_ip_address2>;
Обновление конфигурации
reboot
Отключить rdnssd
systemctl disable --now rdnssd.service
Отключение разрешено
systemctl disable --now systemd-resolved.service
Файлы конфигурации
/etc/sysconfig/network/config
Отключить сетевую конфигурацию
cat /etc/sysconfig/network/config
NETCONFIG_DNS_POLICY=""
Обновление конфигурации
reboot
Пример конфигурации /etc/resolv.conf
#Cloudflare
nameserver 1.0.0.1
#Google
#nameserver 8.8.8.8
#nameserver 8.8.4.4
#Cloudflare
#nameserver 1.1.1.1
#Classic Config
#nameserver 192.168.1.1
#search lan
Хорошо, я не знаю почему, но отключение опции быстрой загрузки в биосе решило проблему.
Восстановление загрузки -ничего странного не показало. Поэтому я решил немного напортачить с опцией биоса. Немного загадочно для меня, но это работает.
спасибо