Когда сброс кэша на Mac имеет смысл
Кэш DNS в macOS хранит недавно полученные соответствия между именами сайтов и адресами. Обычно он экономит время, но иногда мешает: сайт переехал на другой сервер, а Mac упорно обращается по старому адресу; вы только что сменили DNS-серверы, а ответы приходят прежние; правили файл hosts и не видите результата.
Симптомы бывают такими: страница не открывается только на этом компьютере, тогда как телефон в той же сети её показывает; браузер пишет о невозможности найти сервер, хотя интернет работает; сайт открывается, но показывает устаревшую версию. Во всех этих случаях сброс кэша стоит попробовать первым, потому что он безопасен и занимает секунды.
Команда сброса и её составные части
Откройте «Терминал» и выполните две команды подряд, обычно в одной строке: dscacheutil -flushcache и killall -HUP mDNSResponder. Первая очищает кэш службы каталогов, вторая отправляет сигнал перезапуска системному демону, который отвечает за разрешение имён. На современных версиях macOS именно вторая команда важнее, но выполняют обе, так как это стандартная практика.
Для выполнения понадобятся права администратора: система запросит пароль при использовании sudo перед командой. Вводимые символы пароля на экране не отображаются, это нормально. В случае успеха терминал ничего не выведет, и отсутствие сообщений здесь означает, что всё прошло штатно. Если вы видите ошибку об отсутствии команды, проверьте, нет ли опечатки.
Как убедиться, что сброс сработал
Молчаливый успех неудобен для проверки, поэтому проверяйте результат по эффекту. Запросите адрес нужного сайта командой dig или nslookup и сравните ответ с тем, что видят другие устройства. Если адреса совпали, локальный кэш больше не искажает картину.
Затем откройте сайт в браузере. Если он всё равно ведёт себя по-старому, кэш macOS не единственный виновник. Проверьте файл hosts: он читается раньше DNS, и запись в нём перекрывает любые ответы. Посмотреть его можно текстовым редактором с правами администратора, ища строки с нужным доменом.
Что ещё держит старые адреса
Браузеры хранят внутренний кэш имён, и он не очищается командой терминала. Полностью закройте программу и запустите заново, а если проблема осталась, сбросьте внутренний кэш браузера способом из отдельной инструкции. Некоторые приложения, особенно мессенджеры и клиенты синхронизации, держат соединения открытыми и не перечитывают адреса, пока их не перезапустят.
Кроме того, роутер тоже может кэшировать ответы. Если у вас есть подозрение, что старая запись прячется там, перезапуск роутера очистит и её. Тогда стоит проверить с другого устройства в той же сети.
Ошибки и осторожность
Не стоит выполнять сброс кэша по десять раз подряд: это не усиливает эффект. Не копируйте команды из источников, которые не называют версию системы: в очень старых выпусках macOS команды отличались. Если вы не уверены, вызовите справку по системе или посмотрите версию в разделе «Об этом Mac».
Когда ничего не помогло, сравните ответ вашего DNS-сервера с ответом другого: запрос dig с указанием внешнего сервера покажет, актуальна ли запись вообще. Возможно, она ещё не обновилась у самого провайдера DNS, и никакие сбросы на вашем компьютере не помогут.
Если работаете на ноутбуке с несколькими пользователями, помните, что команды сбрасывают кэш всей системы, а не отдельной учётной записи. Поэтому сброс затрагивает и других, но неприятных последствий не несёт: записи просто наполнятся заново.
Сброс кэша при работе с несколькими сетями
Если вы часто переключаетесь между домашней сетью, офисной и мобильной точкой доступа, кэш иногда хранит ответы, полученные в другой среде. Внутренние имена офисной сети в домашней не разрешаются, а закэшированные значения продолжают возвращаться. Перед диагностикой на новом месте сбросьте кэш и убедитесь, что у сетевой службы выбраны правильные DNS-серверы. Это отнимает минуту, но исключает целый класс странных ошибок, когда компьютер как будто помнит прошлое подключение.