====== Настройка 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|здесь]].