====== Настройка DNS в различных операционных системах ======
Для корректного разрешения в системе доменных имен, необходимо прописать в ней адреса DNS-серверов.
В различных ОС это делается по-разному. Ниже приведены примеры с указанием [[yggdrasil:dns:alfis#список_публичных_серверов|публичных серверов]] [[yggdrasil:dns:alfis|ALFIS]].
===== Системы c systemd-resolved =====
Этот способ подойдет для [[wpru>Ubuntu|Ubuntu]] 15.10+, [[wpru>Linux_Mint|Mint]] 18.0+ и других дистрибутивов на базе [[wpru>Debian|Debian]] версии 8 и выше, а так же, дистрибутивов, в которых [[wpru>Systemd|systemd]] установлен по-умолчанию ([[wpru>Red_Hat_Enterprise_Linux|RHEL]] 7+, [[wpru>CentOS|CentOS]] 7+, [[wpru>Fedora|Fedora]] 15+ и др.).
В файл ''%%/etc/systemd/resolved.conf%%'' нужно прописать следующее:
[Resolve]
DNS=302:db60::53 300:6223::53 302:7991::53 300:170::53
Domains=~.
здесь перечислены адреса DNS-серверов через пробел, //без указания номеров портов//.
в отдельных случаях можно отключить директиву
DNSStubListener=no
Далее нужно выполнить перезапуск службы systemd-resolved:
sudo systemctl restart systemd-resolved
===== Системы без systemd =====
Способ подойдет для систем, где для конфигурирования основного системного резолвера используется файл ''%%/etc/resolv.conf%%'' ([[wpru>Slackware|Slackware]], [[wpru>Debian|Debian]] и др.).
В файл ''%%/etc/resolv.conf%%'' нужно прописать следующее:
nameserver 302:db60::53
nameserver 300:6223::53
nameserver 302:7991::53
nameserver 300:170::53
Выборка DNS осуществляется с верхнего в списке.\\
На случай отключения пира Yggdrasil, можно добавить аварийный CloudFlare и переключаться на него по тайм-ауту 5 секунд:
nameserver 301:5eb5:f061:678e::53
nameserver 1.1.1.1
options timeout:5
Дополнительные опции ''%%resolv.conf%%'' описаны в [[https://man7.org/linux/man-pages/man5/resolver.5.html|документации]].
**Примечание:** в некоторых случаях может потребоваться отключить для [[wpru>NetworkManager|NetworkManager]] управление резолвером (если NetworkManager присутствует в системе):\\
В файле ''%%/etc/NetworkManager/NetworkManager.conf%%'', в секции ''%%[main]%%'' добавляется строка:
dns=none
После этого внесенные изменения в ''%%/etc/resolv.conf%%'' не будут перезаписываться при перезагрузке (перезапуске NetworkManager).
==== dhcp/resolvconf ====
Если в системе используется динамическая конфигурация dhcp/resolvconf, следует обратить внимание на файл ''%%/etc/dhcp/dhclient.conf%%'' и закомментировать строки:
# domain-name, domain-name-servers, domain-search, host-name,
# dhcp6.name-servers, dhcp6.domain-search, dhcp6.fqdn, dhcp6.sntp-servers,
Затем, добавить соответствующие nameserver в ''%%/etc/resolvconf/resolv.conf.d/base%%'' и перезагрузить настройки:
resolvconf -u
Проверить результат можно командой ''%%dig%%'', в результирующем файле ''%%/etc/resolv.conf%%'' необходимый сервер должен быть расположен в начале списка.
===== Windows =====
Щёлкаем ПКМ по иконке "Сеть" в [[wpru>Область_уведомлений|системном трее]], выбираем "Центр управления сетями и общим доступом". В открывшемся окне нажимаем "Изменение параметров адаптера", щёлкаем ПКМ на адаптере Yggdrasil, выбираем "Свойства", в открывшемся окне выделяем "Протокол Интернета версии 6", нажимаем кнопку "Свойства", в поле "Предпочитаемый DNS-сервер" прописываем: 302:db60::53, в поле "Альтернативный DNS-сервер" прописываем 300:6223::53, нажимаем ОК во всех окнах, где есть эта кнопка.
Так же, в Windows настроить DNS можно из командной строки:
netsh interface ip set dns name="Имя подключения" static 302:db60::53
netsh interface ip set dns name="Имя подключения" 300:6223::53 index=2
Можно использовать такой [[wpru>VBScript|VB-скрипт]]:
Set oShell = CreateObject("Shell.Application")
oShell.ShellExecute "netsh.exe", "interface ip set dns name=""Подключение по локальной сети"" static 302:db60::53", "", "runas", 0
oShell.ShellExecute "netsh.exe", "interface ip add dns name=""Подключение по локальной сети"" 300:6223::53 index=2", "", "runas", 0
'возврат к значениям, устанавливаемым DHCP
'oShell.ShellExecute "netsh.exe", "interface ip set dnsservers name=""Подключение по локальной сети"" source=dhcp", "", "runas", 0
Пример [[wpru>PowerShell|PowerShell]]-скрипта:
Set-DnsClientServerAddress -InterfaceAlias "Yggdrasil" -ServerAddresses ("302:7991::53", "302:db60::53", "300:6223::53", "324:71e:281a:9ed3::53")
Если [[yggdrasil:Yggdrasil]] запускается, как системная служба, и вы хотите прописать DNS на адаптер Yggdrasil, то с помощью планировщика Windows можно создать задание, из которого будет запускаться нужный скрипт при активации нужного сетевого подключения. Пример можно посмотреть здесь: [[https://superuser.com/questions/262799/how-to-launch-a-command-on-network-connection-disconnection|How to launch a command on network connection/disconnection?]]
====== Очистка кэша DNS ======
В некоторых случаях, когда меняется IP-адрес, к которому привязано доменное имя (например, если в [[yggdrasil:dns:alfis|ALFIS]] перемайнили домен на новый адрес), система продолжает выдавать старый IP-адрес. Это связано с [[wpru>Кэш|кешированием]] данных DNS в вашей системе. В таких случаях нужно просто очистить кэш DNS.
Linux c systemd-resolved:
sudo systemd-resolve --flush-caches
Windows:
ipconfig /flushdns
Так же, может потребоваться очистить кэш браузера, которым вы пользуетесь.
Подробнее об этом можно почитать [[https://www.google.com/search?q=%D0%BA%D0%B0%D0%BA+%D0%BE%D1%87%D0%B8%D1%81%D1%82%D0%B8%D1%82%D1%8C+%D0%BA%D1%8D%D1%88+dns+%D0%B2+linux|здесь]] или [[https://www.google.com/search?q=%D0%BA%D0%B0%D0%BA+%D0%BE%D1%87%D0%B8%D1%81%D1%82%D0%B8%D1%82%D1%8C+%D0%BA%D1%8D%D1%88+dns+%D0%B2+windows|здесь]].