#Как работает TTL
TTL (time to live) — время в секундах, в течение которого резолверы (провайдера, Google DNS, роутер, браузер) хранят ответ. Если запись раньше имела TTL 86400 (сутки), то после изменения часть пользователей будет видеть старый адрес до суток: кеш не обновится, пока не истечёт предыдущий TTL. Уменьшение TTL помогает только для следующих изменений и только если оно было сделано заранее. Кроме того, изменение может «не применяться» из-за того, что вы редактируете записи не у того провайдера: NS-серверы домена могут указывать на другой DNS-хостинг.
#Причины
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Старый TTL ещё не истёкБыло 86400. | Разные пользователи видят разное. | Подождите. |
| Запись изменена не у того провайдераNS на другом DNS-хостинге. | Авторитетный сервер отдаёт старое. | Меняйте у реального провайдера NS. |
| Кеш роутера или браузераЛокальный. | Только у вас старый адрес. | Сбросьте кеш, перезагрузите роутер. |
| Дублирующая записьДве A-записи. | Часть запросов идёт на старый IP. | Удалите лишнюю. |
| Смена NS ещё не распространиласьДелегирование обновляется до 24–48 часов. | whois показывает новые NS, dig старые. | Подождите. |
| Ошибка в записиОпечатка в IP. | Адрес неверный. | Исправьте. |
#Порядок
- Проверьте, на каких серверах NS делегирован доменЭто действие выполняет владелец домена. Откройте панель регистратора и посмотрите раздел «Домены → DNS-серверы/NS» (названия зависят от компании); запишите опубликованные NS. Затем в терминале Linux/macOS выполните
dig NS example.com +short, а в Windows —nslookup -type=NS example.com, заменив example.com вашим доменом. Сравните список с DNS-панелью, где редактируется зона: правки в другой, неделегированной зоне не увидят посетители. Если NS отличаются, сначала уточните у регистратора, какие серверы обслуживают домен. - Убедитесь, что запись изменена именно тамВойдите в панель поставщика DNS, на которого указывают опубликованные NS домена, и откройте зону домена. Найдите запись по полному имени и типу (например,
www+ A), проверьте новое значение и сохранение. Затем опросите один из авторитетных NS запросомdig @ИМЯ_NS ИМЯ_ДОМЕНА A +noall +answer, заменив оба имени и тип на фактические; заполнять заглушки буквально нельзя. Если NS отдаёт старый ответ, исправляйте именно эту зону, а не сбрасывайте DNS-кеш посетителя. - Запросите запись напрямую у авторитетного сервера, минуя кешДля владельца домена: сначала выясните фактические NS у регистратора. На Linux/macOS откройте «Терминал» и выполните
dig @ns1.example.net example.com A +noall +answer, заменив имя NS и домен на реальные, а A — на тип изменённой записи. Данные в ответе должны совпадать с новой записью DNS-панели; запрос напрямую к NS обходит кеш публичного рекурсивного DNS. Если запись там старая или не найдена — исправляйте зону у поставщика DNS, а не ждите кеш. - Сравните с ответами публичных резолверовОткройте терминал Linux/macOS и по очереди выполните
dig @1.1.1.1 example.com A +noall +answerиdig @8.8.8.8 example.com A +noall +answer. Замените example.com и тип A на свои. В Windows используйтеnslookup -type=A example.com 1.1.1.1, затем с 8.8.8.8. Сверьте IP и оставшийся TTL с ответом авторитетного сервера. Разные ответы при правильной авторитетной записи обычно указывают на разные состояния кеша; повторяйте проверку после окончания прежнего TTL. - Подождите окончания старого TTLTTL означает срок, в течение которого рекурсивный DNS может хранить прежний ответ. В терминале Linux/macOS выполните
dig @1.1.1.1 example.com A +noall +answer, заменив example.com и тип A на свои. В первой колонке после имени показан оставшийся TTL в секундах на данном DNS-сервере; другой сервер может иметь иной срок. Если авторитетный сервер уже отдаёт новое значение, не меняйте запись повторно: дождитесь истечения прежнего TTL, затем повторите запрос. - Сбросьте локальный кеш DNS и кеш браузераОчистка локального DNS полезна, только если запись уже изменена у авторитетного сервера, а этот компьютер продолжает находить старый адрес. В Windows нажмите «Пуск», введите
cmd, откройте «Командная строка» и выполнитеipconfig /flushdns(сообщение об успешной очистке кеша). В macOS откройте «Терминал» и выполнитеsudo dscacheutil -flushcache, затемsudo killall -HUP mDNSResponderс паролем администратора; команды не показывают подробный вывод. В Linux с systemd-resolved выполнитеresolvectl flush-caches(права зависят от настроек). Выберите только вариант своей ОС и снова откройте нужный сайт; чужие кеши этим не очищаются. - Перед будущими изменениями заранее уменьшите TTL до 300 секундЭто подготовка к следующей миграции, а не способ ускорить уже закешированное изменение. За время не меньше прежнего TTL до плановой смены адреса откройте DNS-панель авторитетной зоны, выберите нужную запись и уменьшите TTL, например до 300 секунд (если провайдер позволяет). Сохраните и проверьте опубликованное TTL командой
dig example.com A +noall +answer. После миграции и стабилизации верните обычное значение. Текущее ожидание старых кешей сокращено не будет. - Проверьте, что у домена нет дублирующих записейВ DNS-панели зоны откройте список ресурсных записей и выберите имя, тип (A, AAAA, CNAME, MX или TXT) и значение, которое намеревались изменить. Сверьте имя записи: символ
@обычно означает корень домена, аwww— поддомен; интерфейсы могут автоматически добавлять доменное имя. Сохраните запись и затем запросите её у авторитетного сервера, чтобы проверить публикацию именно этой версии. - Команды для отдельных ситуацийВыберите только подходящий вариант. Это не одна последовательность: часть команд диагностирует проблему, а часть меняет настройки или данные.
Локальную очистку DNS выполняйте только для вашей ОС. Windows: «Командная строка» → ipconfig /flushdns; macOS: «Терминал» → sudo dscacheutil -flushcache, затем sudo killall -HUP mDNSResponder; Linux с systemd-resolved: «Терминал» → resolvectl flush-caches. Это альтернативы, не последовательность для исполнения на одном компьютере. Кешы чужих DNS-провайдеров очистить так нельзя.
dig +trace example.ru A#Проверка онлайн
Сервисы https://dnschecker.org/ и https://www.whatsmydns.net/ показывают ответы серверов в разных странах. Если везде новая запись, а у вас старая, виноват локальный кеш. Если ответы различаются, процесс распространения ещё идёт. Помните, что некоторые провайдеры игнорируют низкий TTL и кешируют записи дольше, поэтому для критичных переключений планируйте окно с запасом.