К эш DNS – это временная база данных, в которой хранится информация о предыдущих поисках DNS. Другими словами, всякий раз, когда вы посещаете веб-сайт, ваша ОС и веб-браузер будут вести учет домена и соответствующего IP-адреса. Это исключает необходимость повторяющихся запросов к удаленным DNS-серверам и позволяет вашей ОС или браузеру быстро разрешать URL-адреса веб-сайта.

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

В этой статье приведены инструкции по очистке кеша DNS в разных операционных системах и веб-браузерах.

Очистить/удалить кэш DNS в Windows

Процесс очистки DNS-кэша одинаков для всех версий Windows. Вам нужно открыть командную строку с правами администратора и запустить ipconfig /flushdns.

Windows 10 и Windows 8

Чтобы очистить кэш DNS в Windows 10 и 8, выполните следующие действия:

  1. Введите cmd в строке поиска Windows.
  2. ipconfig /flushdns

    Windows 7

    Чтобы очистить кэш DNS в Windows 7, выполните следующие действия:

    1. Нажмите на кнопку Пуск.
    2. Введите cmd в текстовое поле поиска меню «Пуск».
    3. Щелкните правой кнопкой мыши на командной строке и выберите Запуск от имени администратора. Это откроет окно командной строки.
    4. В командной строке введите следующую строку и нажмите Enter:

      ipconfig /flushdns

      В случае успеха система вернет следующее сообщение:

      Windows IP Configuration Successfully flushed the DNS Resolver Cache.

    Очистить/удалить кэш DNS в Linux

    В Linux отсутствует кэширование DNS на уровне ОС, если не установлена ​​и не запущена служба кэширования, такая как Systemd-Resolved, DNSMasq или Nscd. Процесс очистки DNS-кэша отличается в зависимости от дистрибутива и службы кэширования, которую вы используете.

    Systemd Resolved

    В большинстве современных дистрибутивов Linux, таких как , используется системный разрешенный сервис для кэширования записей DNS.

    Чтобы узнать, запущена ли служба, выполните:

    sudo systemctl is-active systemd-resolved.service

    Если служба работает, команда напечатает active, иначе вы увидите inactive.

    Чтобы очистить DNS-кэш Systemd Resolved, вы должны ввести следующую команду.

    sudo systemd-resolve --flush-caches

    В случае успеха команда не возвращает никакого сообщения.

    Dnsmasq

    Dnsmasq – это облегченный сервер кэширования имен DHCP и DNS.

    Если ваша система использует DNSMasq в качестве сервера кеширования, для очистки кеша DNS вам необходимо перезапустить службу Dnsmasq:

    sudo systemctl restart dnsmasq.service

    sudo service dnsmasq restart

    Nscd

    Nscd – это демон кэширования, и он является предпочтительной системой кэширования DNS для большинства дистрибутивов на основе RedHat.

    Если ваша система использует Nscd, для очистки кеша DNS вам необходимо перезапустить службу Nscd:

    sudo systemctl restart nscd.service

    sudo service nscd restart

    Очистить/удалить кэш DNS на MacOS

    Команда очистки кэша в MacOS немного отличается в зависимости от используемой версии. Команда должна быть запущена как пользователь с правами системного администратора (пользователь sudo).

    Чтобы очистить кэш DNS в MacOS, выполните следующие действия:

    1. Откройте Finder.
    2. Перейдите в Приложения> Утилиты> Терминал. Это откроет окно терминала.
    3. В командной строке введите следующую строку и нажмите Enter:

      sudo killall -HUP mDNSResponder

      Введите свой пароль sudo и снова нажмите Enter. В случае успеха система не возвращает никаких сообщений.

    Для более ранних версий MacOS команда очистки кэша отличается.

    MacOS версии 10.11 и 10.9

    sudo dscacheutil -flushcache sudo killall -HUP mDNSResponder

    MacOS версия 10.10

    sudo discoveryutil mdnsflushcache sudo discoveryutil udnsflushcaches

    MacOS версии 10.6 и 10.5

    sudo dscacheutil -flushcache

    Очистить /удалить кэш DNS браузера

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

    Google Chrome

    Чтобы очистить DNS-кеш Google Chrome, выполните следующие действия:

    1. Откройте новую вкладку и введите в адресную строку Chrome: chrome://net-internals/#dns.
    2. Нажмите кнопку «Очистить кэш хоста».

    Если это не работает для вас, попробуйте очистить кэш и куки.

    1. Нажмите, CTRL+Shift+Del чтобы открыть диалоговое окно «Очистить данные просмотра».
    2. Выберите диапазон времени. Выберите «Все время», чтобы удалить все.
    3. Установите флажки «Файлы cookie и другие данные сайта» и «Кэшированные изображения и файлы».
    4. Нажмите кнопку «Очистить данные».

    Этот метод должен работать для всех браузеров на основе Chrome, включая Chromium, Vivaldi и Opera.

    FireFox

    Чтобы очистить DNS-кэш Firefox, выполните следующие действия:

    1. В верхнем правом углу щелкните значок гамбургера, ☰чтобы открыть меню Firefox:
    2. Нажмите на ⚙ Options (Preferences)ссылку.
    3. Нажмите на вкладку «Конфиденциальность и безопасность» или «Конфиденциальность» слева.
    4. Прокрутите вниз до Historyраздела и нажмите на Clear History…кнопку.
    5. Выберите временной диапазон, чтобы очистить. Выберите «Все», чтобы удалить все.
    6. Выберите все поля и нажмите «Очистить сейчас».

    Если это не работает для вас, попробуйте следующий метод и временно отключите кэш DNS.

    1. Откройте новую вкладку и введите about:configв адресную строку Firefox.
    2. Найдите network.dnsCacheExpiration, временно установите значение 0 и нажмите ОК. После этого измените значение по умолчанию и нажмите ОК.
    3. Найдите network.dnsCacheEntries, временно установите значение 0 и нажмите ОК. После этого измените значение по умолчанию и нажмите ОК.

    Заключение

    Вы узнали, как очистить или очистить кэш DNS в операционных системах Windows, Linux и MacOS.

    Linux и MacOS могут использовать команду dig для запроса DNS и устранения проблем с DNS.

    Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Выпуск WordPress 5.3 улучшает и расширяет представленный в WordPress 5.0 редактор блоков новым блоком, более интуитивным взаимодействием и улучшенной доступностью. Новые функции в редакторе […]

После девяти месяцев разработки доступен мультимедиа-пакет FFmpeg 4.2, включающий набор приложений и коллекцию библиотек для операций над различными мультимедиа-форматами (запись, преобразование и […]

  • Новые функции в Linux Mint 19.2 Cinnamon

    Linux Mint 19.2 является выпуском с долгосрочной поддержкой, который будет поддерживаться до 2023 года. Он поставляется с обновленным программным обеспечением и содержит доработки и множество новых […]

  • Вышел дистрибутив Linux Mint 19.2

    Представлен релиз дистрибутива Linux Mint 19.2, второго обновления ветки Linux Mint 19.x, формируемой на пакетной базе Ubuntu 18.04 LTS и поддерживаемой до 2023 года. Дистрибутив полностью совместим […]

  • Доступны новые сервисные релизы BIND, которые содержат исправления ошибок и улучшения функций. Новые выпуски могут быть скачано со страницы загрузок на сайте разработчика: […]

    Exim – агент передачи сообщений (MTA), разработанный в Кембриджском университете для использования в системах Unix, подключенных к Интернету. Он находится в свободном доступе в соответствии с […]

    После почти двух лет разработки представлен релиз ZFS on Linux 0.8.0, реализации файловой системы ZFS, оформленной в виде модуля для ядра Linux. Работа модуля проверена с ядрами Linux c 2.6.32 по […]

  • В WordPress 5.1.1 устранена уязвимость, позволяющая получить контроль над сайтом
  • Комитет IETF (Internet Engineering Task Force), занимающийся развитием протоколов и архитектуры интернета, завершил формирование RFC для протокола ACME (Automatic Certificate Management Environment) […]

    Некоммерческий удостоверяющий центр Let’s Encrypt, контролируемый сообществом и предоставляющий сертификаты безвозмездно всем желающим, подвёл итоги прошедшего года и рассказал о планах на 2019 год. […]

  • Вышла новая версия Libreoffice – Libreoffice 6.2
  • С каждым годом скорость интернета - как последней мили, так и магистральных каналов становится все выше. Лишь одно неизменно - латентность уже уперлась в физические ограничения: скорость света в оптоволокне - около 200тыс километров в секунду, и соответственно, быстрее чем за ~150ms ответ от сервера через атлантический океан не получить в обозримой перспективе (хотя конечно есть изыски, вроде оптоволокна с воздушной сердцевиной или радиорелейной связи, но это для простых смертных едва-ли доступно).

    Когда мы пытаемся например из России открыть web-сайт, расположенный в США (его NS сервера вероятно там же), и домен не нашелся в DNS-кэше вашего провайдера - то ждать придется долго даже на гигабитном интернете, возможно даже целую секунду: пока мы через океан получим имена NS серверов домена, пока разрезолвим их IP, пока отправим и получим собственно сам DNS запрос…

    Пару лет назад Google завела свои публичные DNS сервера, а для агитации перехода на них - они разработали утилитку NameBench , которая прогоняет тесты DNS по вашей истории серфинга и показывает, насколько Google DNS быстрее DNS сервера вашего провайдера.

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

    PDNSD

    pdnsd - кэширующий DNS proxy. Помимо банального кэширования DNS запросов (с возможностью жестко задавать минимальный TTL - может быть нужно на очень плохом интернете), он умеет отсылать запрос одновременно на несколько «родительских» DNS серверов, и отдавать клиенту первый вернувшийся ответ.

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

    Ставится в Ubuntu - банальным apt-get.

    Пара моментов в конфиге

    global { perm_cache=10240; //Максимальный размер кэша в килобайтах. //По дефолту было 1024, все записи у меня не влазили. cache_dir="/var/cache/pdnsd"; [...] min_ttl=60m; // Минимальное время сохранения записи в кэше. //Даже если TTL придет меньше 60минут - будет 60минут max_ttl=1w; // Максимальное время сохранения записи в кэше neg_ttl=5m; //Время кеширования отрицательных ответов (т.е. если домен не найден) [..] par_queries=3; //Количество одновременно опрашиваемых "родительских" DNS серверов } server { label = "main"; ip = 85.21.192.5 //Тут 4 сервера, если первые 3 не ответят, то будет отправлен запрос на 4-й, 213.234.192.7 //Первые 2 сервера - это сервер вашего провайдера, и какого-нибудь соседнего, 8.8.4.4 //Это Google Public DNS - у них закэшировано все редкое и резолвят они быстро, 8.8.8.8 ; [..] }

    В принципе, кэширование можно сделать менее агрессивным (min_ttl=1m например), но за год работы проблем особых не возникло. В случае проблем - при желании можно вытереть одну запись из кэша:
    sudo pdnsd-ctl record 3.14.by delete или сразу все:
    sudo pdnsd-ctl empty-cache

    Результаты тестирования в NameBench



    Видим, что для 50% запросов ответ мы получаем менее чем за 10мс, для 85% быстрее Google Public DNS, ну а дальше результаты естественно совпадают с гуглом.

    По результатам тестов NameBench нам радостно сообщает:

    8.8.8.8 Slower replica of SYS-192.167.0.98 8.8.4.4 Slower replica of SYS-192.167.0.98

    Таким образом, умный кэширующий DNS прокси с параллельными запросами - позволяет ускорить даже 100-мегабитный интернет. А уж для медленных (радио)линков с большой латентностью и потерей пакетов - и вовсе разница может быть как между небом и землей.

    С каждым годом скорость интернета - как последней мили, так и магистральных каналов становится все выше. Лишь одно неизменно - латентность уже уперлась в физические ограничения: скорость света в оптоволокне - около 200тыс километров в секунду, и соответственно, быстрее чем за ~150ms ответ от сервера через атлантический океан не получить в обозримой перспективе (хотя конечно есть изыски, вроде оптоволокна с воздушной сердцевиной или радиорелейной связи, но это для простых смертных едва-ли доступно).

    Когда мы пытаемся например из России открыть web-сайт, расположенный в США (его NS сервера вероятно там же), и домен не нашелся в DNS-кэше вашего провайдера - то ждать придется долго даже на гигабитном интернете, возможно даже целую секунду: пока мы через океан получим имена NS серверов домена, пока разрезолвим их IP, пока отправим и получим собственно сам DNS запрос…

    Пару лет назад Google завела свои публичные DNS сервера, а для агитации перехода на них - они разработали утилитку NameBench , которая прогоняет тесты DNS по вашей истории серфинга и показывает, насколько Google DNS быстрее DNS сервера вашего провайдера.

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

    PDNSD

    pdnsd - кэширующий DNS proxy. Помимо банального кэширования DNS запросов (с возможностью жестко задавать минимальный TTL - может быть нужно на очень плохом интернете), он умеет отсылать запрос одновременно на несколько «родительских» DNS серверов, и отдавать клиенту первый вернувшийся ответ.

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

    Ставится в Ubuntu - банальным apt-get.

    Пара моментов в конфиге

    global { perm_cache=10240; //Максимальный размер кэша в килобайтах. //По дефолту было 1024, все записи у меня не влазили. cache_dir="/var/cache/pdnsd"; [...] min_ttl=60m; // Минимальное время сохранения записи в кэше. //Даже если TTL придет меньше 60минут - будет 60минут max_ttl=1w; // Максимальное время сохранения записи в кэше neg_ttl=5m; //Время кеширования отрицательных ответов (т.е. если домен не найден) [..] par_queries=3; //Количество одновременно опрашиваемых "родительских" DNS серверов } server { label = "main"; ip = 85.21.192.5 //Тут 4 сервера, если первые 3 не ответят, то будет отправлен запрос на 4-й, 213.234.192.7 //Первые 2 сервера - это сервер вашего провайдера, и какого-нибудь соседнего, 8.8.4.4 //Это Google Public DNS - у них закэшировано все редкое и резолвят они быстро, 8.8.8.8 ; [..] }

    В принципе, кэширование можно сделать менее агрессивным (min_ttl=1m например), но за год работы проблем особых не возникло. В случае проблем - при желании можно вытереть одну запись из кэша:
    sudo pdnsd-ctl record 3.14.by delete или сразу все:
    sudo pdnsd-ctl empty-cache

    Результаты тестирования в NameBench



    Видим, что для 50% запросов ответ мы получаем менее чем за 10мс, для 85% быстрее Google Public DNS, ну а дальше результаты естественно совпадают с гуглом.

    По результатам тестов NameBench нам радостно сообщает:

    8.8.8.8 Slower replica of SYS-192.167.0.98 8.8.4.4 Slower replica of SYS-192.167.0.98

    Таким образом, умный кэширующий DNS прокси с параллельными запросами - позволяет ускорить даже 100-мегабитный интернет. А уж для медленных (радио)линков с большой латентностью и потерей пакетов - и вовсе разница может быть как между небом и землей.

    Назначение DNS это перевод доменных имен, легко запоминаемых человеком в IP адреса которые понимают компьютеры, этот процесс называется-Разрешение имен.
    Что нам даст установка собственного кеширующего DNS сервера?!
    Это немного ускорит отклик сайтов + Linux не очень хорошо воспринимает имена NetBios, а ведь иногда приходится находить компьютеры или принтеры внутри локальной сети, а хочется это делать по именам.
    Запоминать IP адреса- не удобно, а постоянно лазить к журнал работы DHCP сервера- тоже не наш метод. Вот для таких случаев и нужен DNS в локальной сети.
    Сама установка пакета bind9 не отличается сложностью, затыки, обычно возникают на стадии его конфигурирования, т.к. после легко читаемых конфигурационных файлов системы, на человека сваливается непонятный синтаксис, кстати, очень похожий на язык программирования С. Т.к. сервер будет работать внутри локальной сети, то не имеет смысла переносить его в chroot окружение и вся настройка занимает совсем немного времени.
    На этом, лирическую часть, можно завершить, переходим к установке и настройке.
    Установим DNS сервер Bind9:
    sudo apt-get install bind9
    После завершения, закачки и установки, нам необходимо отредактировать его конфигурационный файл:
    sudo nano /etc/bind/named.conf.options
    Находим секцию, она находится в самом начале конфигурационного файла, кроме нее там больше ничего нет…

    Options { directory "/var/cache/bind"; // If there is a firewall between you and nameservers you want // to talk to, you may need to fix the firewall to allow multiple // ports to talk. See http://www.kb.cert.org/vuls/id/800113 // If your ISP provided one or more IP addresses for stable // nameservers, you probably want to use them as forwarders. // Uncomment the following block, and insert the addresses replacing // the all-0"s placeholder. // forwarders { // 0.0.0.0; // }; auth-nxdomain no; # conform to RFC1035 listen-on-v6 { any; }; };

    Секция forwarders, отвечает за то, куда будет передаваться DNS запрос на разрешение имени, в случае если его нет в собственной базе. Последнее время меня совсем не радует, работа этих серверов у провайдера по этому можно подключить сторонние например гугловские, запомнить IP очень легко 8.8.8.8, на его примере я и буду вести настройку, но никто не мешает использовать, те что вам нравятся больше.

    Редактируем секцию, для начала с нее нужно снять комментарии и добавить сторонние DNS, если есть необходимость добавить несколько серверов, например на тот случай если сервер google не выдержит ваших запросов и поломается:), то IP других серверов можно написать в столбик, тогда можно добиться более значительной отказоустойчивости.
    forwarders { 8.8.8.8; 193.58.251.251; //Российская служба DNS -SkyDNS };
    В эту секцию лучше вписать IP того сервера который у вас указан в файле /etc/resolv.conf или вписать туда в секцию nameserver этот IP
    Сохраняем изменения и выходим
    Перезапускаем сервер и проверяем
    Набираем в командной строке nslookup mail.ru
    Должно выдать:

    Non-authoritative answer: Name: mail.ru Addresses: 94.100.191.202
    Это говорит о том, что наш сервер не является, главным в обслуживании этой зоны (mail.ru), но запросы добавил в кеш!
    Теперь нужно создать ДНС зону для нашей сети чтобы машины могли находить различные сетевые сервисы - могут быть, например, сетевые принтеры, они могут быть как самостоятельными так и расшаренными на других рабочих станциях.
    Нашу зону можно назвать orgname –т.е. название организации.
    Первым делом создаем зону, для этого отредактируем named.conf.local

    Sudo nano /etc/bind/named.conf.local
    и добавим в него следующее:
    zone "orgname" { type master; file "/etc/bind/db.orgname"; };
    Сохраняем и выходим
    Теперь нам необходимо создать файл настройки зоны
    sudo nano /etc/bind/db.orgname
    и вставляем в него следующее:
    (Прошу отнестись внимательно к синтаксису конфигурационного файла, даже точки имеют значение)

    @ IN SOA orgname. root.orgname. (20101015 4h ; время обновления -4 часа 1h ; повтор каждый час 1w ; как долго хранить информацию -1 неделю 1d) ; TTL (время жизни) записи - 1 день @ IN NS orgname. ; имя сервера имен @ IN A 192.168.10.1 ; A - запись - IP адрес нашего ДНС сервера который обслуживает эту зону, @ означает что это корневая зона. * IN CNAME @ printer IN A 192.168.10.25 ; Можно создать ДНС запись сетевого принтера который находится по адресу 192.168.10.25

    Теперь, при добавлении нового сетевого устройства, вам необходимо сделать 2 вещи:
    1) Зарезервировать IP адрес на DHCP сервере, о том, как это сделать, можно прочитать в статье-
    2) Создать DNS зону для этого IP, вида devicename IN A XXX.XXX.XXX.XXX. Где: devicename-сетевое имя устройства; XXX.XXX.XXX.XXX-его IP адрес который зарезервирован на DHCP сервере.

    Теперь нам необходимо отредактировать файл resolv.conf

    Sudo nano /etc/resolv.conf

    И вписать туда:

    Nameserver 127.0.0.1

    Все что там было можно закоментировать поставив #

    Перезапускам сервер

    Сделано это для того чтобы сервер искал все в собственной базе, а уже потом BIND будет перенаправлять запросы к серверу 8.8.8.8 IP которого вписан в директиве forwarders .

    Теперь можно проверять работоспособность:

    Если тестирование происходит из под Windows:
    ping devicename.orgname

    Если тестируем из под Linux:
    ping devicename.orgname -c 4
    Должны пойти пинги на тот IP который вы указали вместо XXX.XXX.XXX.XXX

    На этом настройку DNS сервера можно завершить.