Ой, ничего не найдено!

К сожалению, по вашему запросу пока ничего нет (но это только пока!), зато вы можете подписаться на нашу замечательную email-рассылку, чтобы не пропустить самое интересное в будущем.

  • 24

Домен подключён, а сайт не открывается: DNS без мистики

Часть 5 из 14 · Серия «Хостинг без магии»

Домен зарегистрирован. Хостинг оплачен. Файлы загружены.

В панели хостинга сайт уже существует, SSL заказан, а рядом с доменом горит зелёная отметка:

Домен подключён

Владелец открывает адрес в браузере и видит:

  • страницу регистратора;
  • старый сайт;
  • ошибку «Сервер не найден»;
  • заглушку хостинга;
  • сайт без www, но ошибку с www;
  • правильный сайт через мобильный интернет и старый — через домашний Wi-Fi;
  • ошибку только на одном компьютере;
  • совершенно другой сервер при подключении по IPv6.

Начинается знакомая последовательность:

обновить страницу
перезапустить браузер
перезагрузить роутер
удалить и снова добавить домен
поменять DNS ещё раз
подождать «распространения»

Иногда сайт действительно начинает открываться. Но что именно произошло, остаётся неизвестным.

Старт без оплаты
Месяц хостинга бесплатно для новых проектов
Разместите сайт, проверьте скорость и оцените удобство Siteko.net. Просто выберите тариф и начните тестовый месяц.
Посмотреть тарифы

Из-за этого DNS выглядит как система, где изменения «летают по интернету» неопределённое количество времени, а результат зависит от удачи.

На самом деле процесс можно разложить на несколько отдельных вопросов:

  1. Какие DNS-серверы отвечают за домен?
  2. Какой IP-адрес они возвращают для нужного имени?
  3. Не хранит ли кто-то старый ответ в кэше?
  4. Принимает ли выбранный сервер запросы именно для этого домена?

Проверяя эти уровни по порядку, большинство проблем можно найти за несколько минут.

DNS не открывает сайт

DNS выполняет более узкую задачу: сопоставляет доменное имя с технической информацией, например IP-адресом сервера.

Упрощённо:

Пользователь вводит:
example.com

DNS сообщает:
203.0.113.25

Браузер подключается:
203.0.113.25

Веб-сервер выбирает:
сайт example.com

DNS не знает:

  • в какой папке лежит сайт;
  • установлен ли WordPress;
  • правильно ли настроен PHP;
  • работает ли база данных;
  • существует ли SSL-сертификат;
  • какой проект должен обслуживать веб-сервер;
  • возвращает ли приложение ошибку 500.
1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Он лишь помогает найти сервер или другой сетевой ресурс.

Поэтому правильная DNS-запись ещё не гарантирует работающий сайт. Но без правильной записи браузер до нужного сервера вообще не доберётся.

У DNS есть несколько участников

Когда вы вводите домен, браузер обычно не обращается напрямую к DNS-серверу владельца сайта.

Упрощённая цепочка выглядит так:

браузер

операционная система

локальный роутер

рекурсивный DNS-резолвер

корневая зона

зона доменной области

авторитетные DNS-серверы домена

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

На практике важны два типа серверов:

  • авторитетные — хранят актуальную конфигурацию домена;
  • рекурсивные — получают эти данные и кэшируют их для пользователей.
Старт без оплаты
Месяц хостинга бесплатно для новых проектов
Разместите сайт, проверьте скорость и оцените удобство Siteko.net. Просто выберите тариф и начните тестовый месяц.
Посмотреть тарифы

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

Уровень №1. Кто управляет DNS-зоной домена

Первое, что нужно проверить, — NS-записи.

NS расшифровывается как Name Server. Эти записи сообщают, какие авторитетные DNS-серверы отвечают за домен.

Пример:

example.com.    NS    ns1.hosting.example.
example.com.    NS    ns2.hosting.example.

Делегирование означает передачу ответственности за DNS-зону определённым авторитетным серверам. Чтобы делегирование начало действовать, родительская зона должна указывать на серверы, которым передана эта ответственность.

Где задаются NS-серверы

Обычно они задаются у регистратора домена.

Первый месяц за 0 рублей
Хостинг для сайта, который должен работать стабильно
Перенесите проект или запустите новый сайт на Siteko.net и протестируйте сервис без предоплаты.
Перейти к хостингу

Регистратор — компания, через которую зарегистрирован домен.

DNS-зона при этом может обслуживаться:

  • самим регистратором;
  • хостинг-провайдером;
  • отдельным DNS-провайдером;
  • CDN;
  • собственной DNS-инфраструктурой.

Важно различать два места:

Панель регистратора
→ определяет, кому делегирован домен

Панель DNS-провайдера
→ хранит A, AAAA, CNAME, MX, TXT и другие записи

Если у регистратора указаны DNS-серверы хостинга, редактировать A-запись в старой панели регистратора бесполезно. Она больше не является авторитетным источником.

Первая частая ошибка: запись изменили не в той панели

Представим:

У регистратора указаны:
ns1.hosting.example
ns2.hosting.example

Но владелец меняет A-запись в DNS-редакторе регистратора:

example.com → 203.0.113.25
1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Эта зона не используется. Интернет спрашивает записи у ns1.hosting.example и ns2.hosting.example.

В панели регистратора всё выглядит правильно, но авторитетные серверы продолжают возвращать старый IP.

Как проверить реальные NS

В Linux, macOS или Windows с установленным dig:

dig NS example.com

Короткий вывод:

dig +short NS example.com

Пример результата:

ns1.hosting.example.
ns2.hosting.example.

Через nslookup:

nslookup -type=NS example.com
Первый месяц за 0 рублей
Хостинг для сайта, который должен работать стабильно
Перенесите проект или запустите новый сайт на Siteko.net и протестируйте сервис без предоплаты.
Перейти к хостингу

Если результат не совпадает с панелью, возможны варианты:

  • изменение ещё кэшируется;
  • домен не был сохранён;
  • у регистратора произошла ошибка;
  • проверяется не тот домен;
  • делегирование настроено некорректно.

Вторая частая ошибка: NS смешаны

Иногда у домена указаны серверы двух разных провайдеров:

ns1.old-provider.example
ns2.old-provider.example
ns1.new-provider.example
ns2.new-provider.example

Если их DNS-зоны различаются, пользователи будут получать разные ответы.

Один авторитетный сервер скажет:

example.com → 192.0.2.10

Другой:

example.com → 203.0.113.25

Результат выглядит как случайность:

  • сайт то старый, то новый;
  • проблема появляется не у всех;
  • обновление страницы иногда меняет результат;
  • один публичный резолвер показывает один IP, другой — другой.
1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Все авторитетные серверы одной зоны должны отдавать согласованные данные.

Проверить каждый сервер отдельно:

dig @ns1.hosting.example example.com A
dig @ns2.hosting.example example.com A

Коротко:

dig +short @ns1.hosting.example example.com A
dig +short @ns2.hosting.example example.com A

Если ответы различаются, ждать бессмысленно: нужно исправить зоны или набор NS-серверов.

Уровень №2. На какой адрес указывает домен

После проверки NS переходим к записям адреса.

Для сайта чаще всего используются:

  • A;
  • AAAA;
  • CNAME.
1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Cloudflare описывает TTL как время, в течение которого DNS-резолвер может хранить ответ перед повторной проверкой, а CNAME — как ссылку одного имени на другое, которое в итоге должно привести к имени с действительной A- или AAAA-записью.

A-запись: IPv4-адрес

A-запись связывает имя с IPv4-адресом.

Пример:

example.com.    A    203.0.113.25

Проверить:

dig +short example.com A

Результат:

203.0.113.25

Если хостинг сообщил другой IP, домен направлен не туда.

Тестовый период
Оцените хостинг Siteko.net на своем проекте
Один бесплатный месяц поможет проверить панель, скорость и поддержку до оплаты следующего периода.
Открыть Siteko.net

Что означает имя @

В DNS-панелях корень зоны часто обозначается:

@

Для зоны example.com запись:

@    A    203.0.113.25

обычно означает:

example.com    A    203.0.113.25

Но некоторые панели ожидают:

  • пустое поле;
  • полное имя;
  • имя без конечной точки.

Следуйте формату конкретной панели.

AAAA-запись: IPv6-адрес

AAAA-запись связывает имя с IPv6-адресом.

1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Пример:

example.com.    AAAA    2001:db8::25

Проверка:

dig +short example.com AAAA

Если существует одновременно A и AAAA, часть пользователей может подключаться по IPv4, а часть — по IPv6.

Это создаёт неприятную ситуацию:

IPv4 → новый сервер
IPv6 → старый сервер

или:

IPv4 → сайт работает
IPv6 → соединение зависает

Почему нельзя забывать про старую AAAA-запись

Владелец меняет A-запись при переезде:

A → новый сервер
Подключение за минуту
Попробуйте Siteko.net бесплатно в течение месяца
Проверьте хостинг на реальном сайте: скорость, стабильность и поддержка доступны сразу после подключения.
Начать бесплатно

Но оставляет:

AAAA → старый сервер

На компьютере без IPv6 сайт работает правильно. На устройстве с IPv6 открывается старый сайт или появляется ошибка.

Проверять нужно оба типа:

dig +short example.com A
dig +short example.com AAAA

Если новый хостинг не предоставляет IPv6, ненужную AAAA-запись следует удалить.

Не стоит указывать случайный IPv6-адрес «на всякий случай».

CNAME: одно имя ссылается на другое

CNAME используется, когда одно доменное имя должно следовать за другим.

Первый месяц за 0 рублей
Хостинг для сайта, который должен работать стабильно
Перенесите проект или запустите новый сайт на Siteko.net и протестируйте сервис без предоплаты.
Перейти к хостингу

Например:

www.example.com.    CNAME    example.com.

Это означает:

www.example.com

example.com

203.0.113.25

Проверить:

dig +short www.example.com CNAME

Результат:

example.com.

Затем:

dig +short example.com A

CNAME не является перенаправлением браузера

При CNAME адрес в браузере не меняется.

1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Пользователь открывает:

www.example.com

DNS помогает найти сервер, но браузер продолжает отправлять HTTP-запрос для имени www.example.com.

Если нужно перенаправить пользователя:

www.example.com

example.com

требуется HTTP-редирект на стороне веб-сервера или приложения.

DNS-запись сама не создаёт редирект.

Корневой домен и www — разные имена

Записи:

example.com
www.example.com
Подключение за минуту
Попробуйте Siteko.net бесплатно в течение месяца
Проверьте хостинг на реальном сайте: скорость, стабильность и поддержка доступны сразу после подключения.
Начать бесплатно

нужно рассматривать отдельно.

Можно настроить:

example.com       A       203.0.113.25
www.example.com   CNAME   example.com

или:

example.com       A       203.0.113.25
www.example.com   A       203.0.113.25

Если настроено только одно имя, второе может не работать.

Проверка:

dig +short example.com A
dig +short www.example.com A
dig +short www.example.com CNAME

После DNS оба имени также должны быть добавлены в конфигурацию сайта и SSL-сертификат, если планируется их использование.

Тестовый период
Оцените хостинг Siteko.net на своем проекте
Один бесплатный месяц поможет проверить панель, скорость и поддержку до оплаты следующего периода.
Открыть Siteko.net

Поддомен — отдельное DNS-имя

Поддомен:

shop.example.com

не обязан автоматически указывать туда же, куда:

example.com

Для него нужна собственная запись:

shop    A    203.0.113.25

или:

shop    CNAME    example.com

Исключение — wildcard-запись:

*    A    203.0.113.25

Она может направлять неизвестные поддомены на один адрес, но не заменяет явные записи во всех сценариях.

Первый месяц за 0 рублей
Хостинг для сайта, который должен работать стабильно
Перенесите проект или запустите новый сайт на Siteko.net и протестируйте сервис без предоплаты.
Перейти к хостингу

Создавать wildcard без необходимости не стоит: опечатка в поддомене тоже начнёт вести на сервер, а диагностика станет менее очевидной.

Почему иногда отображается старый сайт

Если DNS возвращает старый IP, причина обычно одна из трёх:

  1. авторитетная запись не изменена;
  2. один из NS-серверов отдаёт старые данные;
  3. рекурсивный резолвер хранит старый ответ в кэше.

Проверка должна отделять эти ситуации.

Авторитетный ответ против кэшированного

Допустим, новые авторитетные серверы уже возвращают:

203.0.113.25

Но обычный запрос показывает:

192.0.2.10

Сначала узнаём NS:

dig +short NS example.com
1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Затем спрашиваем напрямую:

dig +short @ns1.hosting.example example.com A

И сравниваем с публичными резолверами:

dig +short @1.1.1.1 example.com A
dig +short @8.8.8.8 example.com A

Возможный результат:

Авторитетный сервер: 203.0.113.25
1.1.1.1:              203.0.113.25
8.8.8.8:              192.0.2.10

Это означает, что зона уже исправлена, но один резолвер пока использует кэшированный ответ.

Google Public DNS прямо отмечает, что после смены DNS-серверов или DNS-провайдера резолвер может возвращать старые, но ещё не просроченные данные.

Что такое TTL

TTL — Time to Live.

Подключение за минуту
Попробуйте Siteko.net бесплатно в течение месяца
Проверьте хостинг на реальном сайте: скорость, стабильность и поддержка доступны сразу после подключения.
Начать бесплатно

Он определяет, как долго резолвер может использовать сохранённый DNS-ответ перед повторным запросом к авторитетному серверу.

Пример:

example.com.    3600    A    203.0.113.25

Значение:

3600 секунд = 1 час

Если резолвер получил старый IP за минуту до изменения записи, он может продолжать использовать его почти ещё час.

TTL не является таймером полного обновления

Распространённое представление:

Мы поставили TTL 3600, значит через час весь интернет переключится.

Точнее сказать:

Старт без оплаты
Месяц хостинга бесплатно для новых проектов
Разместите сайт, проверьте скорость и оцените удобство Siteko.net. Просто выберите тариф и начните тестовый месяц.
Посмотреть тарифы

Каждый кэшированный ответ может храниться до истечения оставшегося TTL.

Разные резолверы запросили запись в разное время.

Поэтому один обновится сразу, другой — через 15 минут, третий — ближе к концу часа.

Новый TTL не действует на уже сохранённый ответ

Допустим, сейчас TTL равен:

86400 секунд

то есть суткам.

Владелец одновременно:

  1. меняет TTL на 300 секунд;
  2. меняет IP.

Резолвер, который уже сохранил старую запись с TTL 86400, не узнает о новом TTL до истечения старого ответа.

Старт без оплаты
Месяц хостинга бесплатно для новых проектов
Разместите сайт, проверьте скорость и оцените удобство Siteko.net. Просто выберите тариф и начните тестовый месяц.
Посмотреть тарифы

Поэтому перед плановым переездом TTL снижают заранее — пока старая запись ещё работает.

Как подготовить DNS к переезду

За день или другой разумный срок до переключения:

уменьшить TTL
например, до 300–600 секунд

После того как прежние длинные кэши успели истечь:

изменить A/AAAA/CNAME

После проверки нового сервера:

вернуть обычный TTL
например, 3600 секунд или больше

Слишком короткий TTL постоянно увеличивает число DNS-запросов. Слишком длинный затрудняет быстрые изменения.

Для обычного сайта час часто является понятным компромиссом, но конкретное значение зависит от требований проекта.

Подключение за минуту
Попробуйте Siteko.net бесплатно в течение месяца
Проверьте хостинг на реальном сайте: скорость, стабильность и поддержка доступны сразу после подключения.
Начать бесплатно

Что обычно называют «распространением DNS»

DNS-запись не отправляется одновременно на все устройства интернета.

Обычно происходят два отдельных процесса:

1. Изменение авторитетной зоны

Новый провайдер должен сохранить запись и синхронизировать её между своими авторитетными серверами.

2. Истечение старых кэшей

Рекурсивные резолверы продолжают использовать прежние ответы до истечения TTL.

Поэтому корректнее говорить не «запись распространяется», а:

авторитетные серверы уже обновлены,
а часть резолверов ещё хранит старые ответы

RFC 1034 описывает кэширование как фундаментальную часть DNS и указывает, что нулевой TTL запрещает кэширование, тогда как обычные значения позволяют использовать ранее полученные ответы.

Тестовый период
Оцените хостинг Siteko.net на своем проекте
Один бесплатный месяц поможет проверить панель, скорость и поддержку до оплаты следующего периода.
Открыть Siteko.net

Отрицательное кэширование: домена не было, а потом он появился

Кэшироваться может не только найденный IP.

Представим:

  1. пользователь открыл shop.example.com;
  2. записи ещё не существовало;
  3. резолвер получил ответ NXDOMAIN;
  4. запись добавили через минуту;
  5. у пользователя адрес продолжает «не существовать».

Это отрицательное кэширование.

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

Локальный DNS-кэш

Старый ответ может храниться:

  • в браузере;
  • в операционной системе;
  • в роутере;
  • в локальном корпоративном DNS;
  • у интернет-провайдера;
  • в публичном резолвере.

Очистка кэша компьютера не изменит данные у провайдера, но помогает исключить локальный уровень.

Старт без оплаты
Месяц хостинга бесплатно для новых проектов
Разместите сайт, проверьте скорость и оцените удобство Siteko.net. Просто выберите тариф и начните тестовый месяц.
Посмотреть тарифы

Очистка DNS-кэша в Windows

Откройте командную строку от имени пользователя или администратора:

ipconfig /flushdns

Ожидаемый ответ:

Successfully flushed the DNS Resolver Cache.

После этого полностью перезапустите браузер.

Проверить адрес:

nslookup example.com

Проверка DNS в Linux

На системах с systemd-resolved:

resolvectl query example.com

Очистка кэша:

sudo resolvectl flush-caches
1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Но конкретный способ зависит от используемой службы DNS-кэширования.

Проверить обычный ответ:

getent hosts example.com

И напрямую через dig:

dig example.com

Проверка DNS в macOS

Обычная проверка:

dig example.com

или:

dscacheutil -q host -a name example.com

Команды очистки локального кэша зависят от версии macOS. Часто используется сочетание очистки системного кэша и перезапуска DNS-службы.

1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Но прежде чем очищать что-либо, полезнее сравнить ответ с авторитетным сервером. Если он сам отдаёт старый IP, локальный кэш ни при чём.

Браузер может использовать собственный защищённый DNS

Современный браузер может отправлять DNS-запросы через DNS over HTTPS к выбранному сервису.

В результате:

  • nslookup показывает один IP;
  • браузер использует другой;
  • изменение системного DNS не влияет на браузер;
  • очистка системного кэша не решает проблему.

Для диагностики:

  • перезапустите браузер;
  • проверьте приватное окно;
  • временно отключите защищённый DNS;
  • сравните результат в другом браузере;
  • используйте curl с принудительным адресом.

Файл hosts может переопределить DNS

Файл hosts позволяет вручную связать имя с IP-адресом.

В Windows:

C:\Windows\System32\drivers\etc\hosts
Старт без оплаты
Месяц хостинга бесплатно для новых проектов
Разместите сайт, проверьте скорость и оцените удобство Siteko.net. Просто выберите тариф и начните тестовый месяц.
Посмотреть тарифы

В Linux и macOS:

/etc/hosts

Пример:

192.0.2.10 example.com

Пока строка существует, компьютер может игнорировать публичный DNS и открывать указанный сервер.

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

Проверяйте hosts, если:

  • проблема существует только на одном компьютере;
  • домен всегда открывает старый сервер;
  • публичные DNS показывают другой IP;
  • ранее сайт тестировали до переезда.

Как проверить новый сервер до изменения DNS

Необязательно сначала переключать домен, а потом узнавать, работает ли сайт.

Первый месяц за 0 рублей
Хостинг для сайта, который должен работать стабильно
Перенесите проект или запустите новый сайт на Siteko.net и протестируйте сервис без предоплаты.
Перейти к хостингу

Есть два удобных способа.

Временная запись в hosts

Добавляем:

203.0.113.25 example.com
203.0.113.25 www.example.com

После этого только данный компьютер будет открывать домен с нового IP.

Можно проверить:

  • главную страницу;
  • административную панель;
  • авторизацию;
  • изображения;
  • формы;
  • базу данных;
  • HTTPS, если сертификат уже выпущен;
  • редиректы.

После теста строку нужно удалить.

curl --resolve

Без изменения системного файла:

curl \
    --resolve example.com:80:203.0.113.25 \
    http://example.com/
1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Для HTTPS:

curl \
    --resolve example.com:443:203.0.113.25 \
    https://example.com/

Команда подключится к указанному IP, но отправит имя example.com.

Это важно: запрос к одному IP без доменного имени может открыть другой сайт на том же сервере.

Почему нельзя проверять сайт только по IP

На одном IP могут находиться сотни сайтов.

Веб-сервер выбирает нужный проект по имени из HTTP-запроса:

Host: example.com

Если открыть:

http://203.0.113.25/
Старт без оплаты
Месяц хостинга бесплатно для новых проектов
Разместите сайт, проверьте скорость и оцените удобство Siteko.net. Просто выберите тариф и начните тестовый месяц.
Посмотреть тарифы

сервер может показать:

  • заглушку;
  • первый настроенный сайт;
  • техническую страницу;
  • ошибку;
  • другой домен.

Это не доказывает, что example.com настроен неправильно.

Проверка должна сохранять доменное имя:

curl \
    --resolve example.com:80:203.0.113.25 \
    http://example.com/

DNS правильный, но открывается чужой сайт

Предположим:

dig +short example.com A

показывает нужный IP.

Но браузер открывает заглушку хостинга или другой проект.

Старт без оплаты
Месяц хостинга бесплатно для новых проектов
Разместите сайт, проверьте скорость и оцените удобство Siteko.net. Просто выберите тариф и начните тестовый месяц.
Посмотреть тарифы

Значит DNS свою задачу выполнил. Проблема находится на веб-сервере.

Возможные причины:

  • домен не добавлен в панель;
  • домен добавлен в другой аккаунт;
  • сайт привязан только к www;
  • корневая папка указана неверно;
  • сервер не знает имя example.com;
  • используется другой виртуальный хост;
  • домен добавлен как алиас не того сайта;
  • CDN направляет запрос на другой origin;
  • настройка ещё не применена на сервере.

Проверить заголовки:

curl -I http://example.com/

Подробное соединение:

curl -v http://example.com/

Принудительная проверка нужного сервера:

curl \
    -v \
    --resolve example.com:80:203.0.113.25 \
    http://example.com/

DNS правильный, но браузер пишет «Соединение отклонено»

Это уже не DNS-проблема.

Старт без оплаты
Месяц хостинга бесплатно для новых проектов
Разместите сайт, проверьте скорость и оцените удобство Siteko.net. Просто выберите тариф и начните тестовый месяц.
Посмотреть тарифы

Имя успешно преобразовалось в IP, но сервер:

  • не слушает порт 80;
  • блокирует соединение;
  • выключен;
  • находится за неверно настроенным firewall;
  • принимает только HTTPS;
  • недоступен по указанному IPv4 или IPv6.

Проверить:

curl -v http://example.com/

или:

curl -v https://example.com/

Если DNS не работает, ошибка будет похожа на:

Could not resolve host

Если адрес найден, но соединение невозможно:

Connection refused

или:

Connection timed out
1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Это разные уровни диагностики.

Почему старый сайт продолжает открываться после переезда

Даже после переключения DNS старый сервер может получать часть запросов.

Возможные причины:

  • старые кэши ещё не истекли;
  • осталась AAAA-запись;
  • один NS отдаёт старый IP;
  • CDN кэширует старую страницу;
  • файл hosts направляет на старый сервер;
  • старый домен используется в редиректе;
  • браузер показывает локально закэшированную страницу;
  • приложение генерирует ссылки на старый адрес;
  • DNS изменили только для www, но не для корня.

Поэтому старый хостинг не следует отключать сразу после изменения DNS.

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

Для динамического сайта при этом возникает другая проблема: заказы и данные могут поступать на два сервера. В статье о переезде разберём, как уменьшить это окно и синхронизировать изменения.

1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Что такое SOA и зачем его проверять

SOA — служебная запись DNS-зоны.

Она содержит параметры зоны, включая серийный номер, который часто меняется при обновлении конфигурации.

Проверка:

dig example.com SOA

Каждый авторитетный сервер:

dig @ns1.hosting.example example.com SOA
dig @ns2.hosting.example example.com SOA

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

Google Public DNS рекомендует при устойчивых старых ответах проверять SOA и сравнивать serial на авторитетных серверах: разные значения могут указывать на несогласованные данные зоны.

1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Как проверить всю цепочку через dig +trace

Команда:

dig +trace example.com

показывает последовательность запросов:

корневые серверы

серверы доменной зоны

авторитетные серверы example.com

A/AAAA-ответ

Она полезна, когда:

  • NS у регистратора настроены неверно;
  • часть делегирования отсутствует;
  • авторитетные серверы не отвечают;
  • нужно увидеть путь без обычного рекурсивного кэша.

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

Несуществующий домен и SERVFAIL — не одно и то же

NXDOMAIN

Означает, что запрошенного имени не существует.

Возможные причины:

  • запись не создана;
  • поддомен написан с ошибкой;
  • спрашивается не та зона;
  • отрицательный ответ ещё кэшируется.
Старт без оплаты
Месяц хостинга бесплатно для новых проектов
Разместите сайт, проверьте скорость и оцените удобство Siteko.net. Просто выберите тариф и начните тестовый месяц.
Посмотреть тарифы

SERVFAIL

Сервер не смог успешно получить или проверить ответ.

Возможные причины:

  • ошибка DNSSEC;
  • авторитетные серверы недоступны;
  • нарушение делегирования;
  • некорректный ответ зоны;
  • временный сбой DNS-инфраструктуры.

Пустой ответ

Имя может существовать, но не иметь записи запрошенного типа.

Например:

dig example.com AAAA

не возвращает адрес, хотя A-запись существует.

Поэтому важно смотреть не только текст ошибки браузера, но и конкретный DNS-код ответа.

Старт без оплаты
Месяц хостинга бесплатно для новых проектов
Разместите сайт, проверьте скорость и оцените удобство Siteko.net. Просто выберите тариф и начните тестовый месяц.
Посмотреть тарифы

DNSSEC: когда правильные записи всё равно не работают

DNSSEC добавляет проверку подлинности DNS-ответов.

Если DNSSEC включён у регистратора, а зона переехала к другому провайдеру без обновления криптографических данных, validating-резолверы могут возвращать:

SERVFAIL

При этом:

  • авторитетный сервер напрямую показывает правильную A-запись;
  • некоторые пользователи видят сайт;
  • другие не могут разрешить домен;
  • публичные резолверы ведут себя по-разному.

При смене DNS-провайдера нужно либо:

  • корректно обновить DNSSEC-параметры;
  • либо заранее отключить старую конфигурацию DNSSEC и включить новую после перехода.

Если вы не используете DNSSEC осознанно, не копируйте старые DS-записи наугад.

CDN и проксирование меняют видимый IP

Если домен подключён к CDN или reverse proxy, DNS может возвращать не IP вашего хостинга, а адреса сети посредника.

1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Это нормально:

пользователь

CDN

сервер хостинга

В таком случае команда:

dig +short example.com A

покажет адрес CDN.

Проверять origin-сервер нужно отдельно:

curl \
    --resolve example.com:443:ORIGIN_IP \
    https://example.com/

Для записей A, AAAA и CNAME некоторые DNS-провайдеры позволяют включать проксирование, при котором пользователю возвращаются адреса прокси-сети, а не исходного сервера.

Если CDN показывает старую версию сайта, проблема может быть не в DNS, а в кэше CDN.

Тестовый период
Оцените хостинг Siteko.net на своем проекте
Один бесплатный месяц поможет проверить панель, скорость и поддержку до оплаты следующего периода.
Открыть Siteko.net

MX-записи не направляют сайт

MX определяет серверы входящей почты.

Пример:

example.com.    MX    10 mail.example.com.

Изменение MX:

  • не направляет сайт;
  • не меняет A-запись;
  • не создаёт почтовый ящик;
  • не настраивает отправку писем приложением.

При переезде сайта можно оставить почту у старого провайдера, если MX-записи не менять.

И наоборот: смена NS переносит ответственность за всю DNS-зону. Если в новой зоне забыть MX и TXT-записи, сайт может заработать, а почта — перестать.

Поэтому перед сменой NS нужно перенести не только A-запись, но всю используемую DNS-конфигурацию.

Подключение за минуту
Попробуйте Siteko.net бесплатно в течение месяца
Проверьте хостинг на реальном сайте: скорость, стабильность и поддержка доступны сразу после подключения.
Начать бесплатно

Что нужно скопировать при смене DNS-серверов

Минимально проверьте:

  • A;
  • AAAA;
  • CNAME;
  • MX;
  • TXT;
  • SPF;
  • DKIM;
  • DMARC;
  • записи подтверждения сервисов;
  • поддомены;
  • SRV;
  • CAA;
  • wildcard-записи;
  • нестандартные API-имена.

Переезд DNS-зоны — не то же самое, что изменение одного IP.

Если новая зона содержит только:

example.com    A    203.0.113.25

могут перестать работать:

  • почта;
  • подтверждение домена;
  • сторонние сервисы;
  • мессенджеры;
  • корпоративные приложения;
  • поддомены;
  • панели;
  • API.

Типовые схемы подключения домена

Схема №1. DNS обслуживает хостинг

У регистратора:

NS → серверы хостинга

В панели хостинга:

A/AAAA/CNAME/MX/TXT
Первый месяц за 0 рублей
Хостинг для сайта, который должен работать стабильно
Перенесите проект или запустите новый сайт на Siteko.net и протестируйте сервис без предоплаты.
Перейти к хостингу

Преимущества:

  • всё настраивается в одном месте;
  • записи сайта и почты создаются автоматически;
  • проще для начинающего пользователя.

Недостатки:

  • при смене хостинга приходится переносить всю DNS-зону;
  • отключение услуги может повлиять на DNS;
  • нужно внимательно копировать почтовые записи.

Схема №2. DNS остаётся у регистратора

У регистратора:

NS → серверы регистратора

Там же:

A → IP хостинга
MX → почтовый провайдер
TXT → SPF/DKIM/DMARC

Преимущества:

  • при смене хостинга меняется только A/AAAA;
  • DNS не зависит от аккаунта хостинга;
  • проще сохранить почту отдельно.

Недостатки:

  • настройки находятся в нескольких панелях;
  • автоматическое добавление записей хостингом может не работать.
1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Схема №3. Отдельный DNS/CDN-провайдер

У регистратора:

NS → DNS/CDN-провайдер

У DNS-провайдера:

A/CNAME → хостинг
MX → почтовый сервис

Преимущества:

  • расширенное управление;
  • проксирование;
  • CDN;
  • аналитика;
  • независимость от хостинга;
  • удобные API.

Недостатки:

  • ещё один аккаунт и слой инфраструктуры;
  • возможна путаница между DNS и CDN-кэшем;
  • origin-IP может быть скрыт.

Ни одна схема не является универсально лучшей. Важно понимать, где находится авторитетная зона.

Как это устроено на Siteko. Штатная схема — первая: DNS-серверы хостинга ns1.siteko.net и ns2.siteko.net. Домен, зарегистрированный через Siteko, делегируется на них автоматически при заказе; для домена у стороннего регистратора достаточно указать эти же два сервера в его панели. Записи для сайта и почты создаются в зоне автоматически при добавлении домена в панель хостинга. Схемы №2 и №3 тоже работают: в этом случае в сторонней DNS-панели направьте A-запись на IP сервера хостинга — он виден в панели рядом с доменом.

Пошаговая диагностика: домен не открывает сайт

Шаг 1. Проверяем NS

dig +short NS example.com

Вопрос:

Это DNS-серверы той панели, где изменялись записи?
1 месяц бесплатно
Запустите сайт на Siteko.net без стартовых затрат
Быстрый хостинг, понятная панель и поддержка рядом с первого дня. Тестовый месяц доступен сразу после выбора тарифа.
Выбрать хостинг

Если нет — редактировалась неиспользуемая зона.

Шаг 2. Проверяем авторитетные серверы

dig +short @ns1.hosting.example example.com A
dig +short @ns2.hosting.example example.com A

Они должны отвечать одинаково.

Также проверяем IPv6:

dig +short @ns1.hosting.example example.com AAAA

Шаг 3. Проверяем обычные публичные резолверы

dig +short @1.1.1.1 example.com A
dig +short @8.8.8.8 example.com A

Если авторитетный сервер уже новый, а публичный резолвер старый, ждём истечения кэша или используем предоставляемую резолвером функцию очистки. Google Public DNS предоставляет отдельный инструмент сброса кэша и рекомендует при смене DNS-хостинга сначала очищать зарегистрированный домен, а затем поддомены.

Шаг 4. Проверяем A и AAAA отдельно

dig +short example.com A
dig +short example.com AAAA

Если AAAA указывает на старый сервер, исправляем или удаляем её.

Шаг 5. Проверяем www

dig +short www.example.com A
dig +short www.example.com AAAA
dig +short www.example.com CNAME

Корень и www должны быть настроены осознанно.

Первый месяц за 0 рублей
Хостинг для сайта, который должен работать стабильно
Перенесите проект или запустите новый сайт на Siteko.net и протестируйте сервис без предоплаты.
Перейти к хостингу

Шаг 6. Проверяем новый сервер напрямую

curl \
    --resolve example.com:80:203.0.113.25 \
    http://example.com/

Для HTTPS:

curl \
    --resolve example.com:443:203.0.113.25 \
    https://example.com/

Если сайт не работает даже при принудительном IP, DNS ни при чём.

Шаг 7. Проверяем обычный запрос

curl -v https://example.com/

Смотрим:

  • какой IP выбран;
  • установилось ли соединение;
  • какой сертификат получен;
  • какой HTTP-код вернулся;
  • куда ведёт редирект.

Шаг 8. Проверяем локальные переопределения

  • файл hosts;
  • защищённый DNS браузера;
  • VPN;
  • корпоративный прокси;
  • локальный DNS;
  • роутер;
  • кэш операционной системы.

Шаг 9. Сравниваем другую сеть

Откройте сайт:

  • через мобильный интернет;
  • через домашний Wi-Fi;
  • через другой публичный DNS;
  • с другого устройства.

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

Быстрый набор команд

DOMAIN="example.com"

echo "=== NS ==="
dig +short NS "$DOMAIN"

echo
echo "=== A ==="
dig +short A "$DOMAIN"

echo
echo "=== AAAA ==="
dig +short AAAA "$DOMAIN"

echo
echo "=== WWW ==="
dig +short A "www.$DOMAIN"
dig +short AAAA "www.$DOMAIN"
dig +short CNAME "www.$DOMAIN"

echo
echo "=== PUBLIC RESOLVERS ==="
dig +short @1.1.1.1 A "$DOMAIN"
dig +short @8.8.8.8 A "$DOMAIN"

echo
echo "=== SOA ==="
dig +short SOA "$DOMAIN"

После получения NS можно запросить каждый напрямую.

Подключение за минуту
Попробуйте Siteko.net бесплатно в течение месяца
Проверьте хостинг на реальном сайте: скорость, стабильность и поддержка доступны сразу после подключения.
Начать бесплатно

Таблица: симптом, причина и проверка

Симптом Вероятная причина Что проверить
Домен не существует Нет записи или кэшируется NXDOMAIN A/AAAA у авторитетного сервера
Открывается старый сайт Старый IP в DNS или кэше Авторитетный ответ и публичные резолверы
Сайт то старый, то новый NS-серверы отдают разные зоны Запросить каждый NS напрямую
Работает без www Для www нет записи A/AAAA/CNAME для www
Работает только с www Не настроен корневой домен A/AAAA для @
Работает через мобильную сеть Домашний резолвер хранит кэш Сравнить публичные DNS
Не работает только на одном ПК hosts, браузерный или системный кэш Локальные настройки
На части устройств старый сайт Старая AAAA-запись Проверить IPv6
DNS показывает верный IP, но открывается заглушка Домен не настроен на веб-сервере Проверить виртуальный хост
По IP работает, по домену нет Сервер не знает доменное имя Host-конфигурация сайта
Could not resolve host DNS не вернул адрес NS, A/AAAA и кэш
Connection refused Адрес найден, порт не обслуживается Веб-сервер и firewall
SERVFAIL Ошибка делегирования или DNSSEC NS, DS и авторитетные ответы
После смены NS пропала почта Не перенесены MX/TXT Скопировать всю DNS-зону
CDN показывает старую страницу Кэш посредника Проверить origin через --resolve

Что не следует делать

Не меняйте NS и A одновременно без необходимости

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

При возможности:

  1. подготовьте зону у нового DNS-провайдера;
  2. скопируйте все записи;
  3. проверьте их;
  4. смените NS;
  5. после стабилизации меняйте адрес сайта.

Не добавляйте четыре случайных NS-сервера

Дополнительные серверы полезны только тогда, когда обслуживают одну согласованную зону.

Смешивание провайдеров без синхронизации создаёт случайные ответы.

Не создавайте одновременно A и CNAME для одного имени

Обычный CNAME должен быть единственной записью такого назначения для данного имени; DNS-платформы часто запрещают сочетать его с A или AAAA для того же hostname.

Выберите одну понятную схему.

Подключение за минуту
Попробуйте Siteko.net бесплатно в течение месяца
Проверьте хостинг на реальном сайте: скорость, стабильность и поддержка доступны сразу после подключения.
Начать бесплатно

Не оставляйте старую AAAA-запись

Проверка только A недостаточна.

Не отключайте старый хостинг сразу

Часть пользователей может временно обращаться к старому адресу из кэша.

Не проверяйте сайт только по IP

Сохраняйте доменное имя через hosts или curl --resolve.

Не удаляйте почтовые записи при смене DNS

Сначала экспортируйте или перепишите всю зону.

Не обновляйте страницу сотни раз

Браузер не заставляет авторитетный DNS изменить ответ. Сначала установите, какой уровень возвращает старые данные.

Грабли DNS

Грабля Результат Решение
Записи изменены не у авторитетного провайдера Интернет продолжает видеть старую зону Проверить NS
Смешаны DNS-серверы двух компаний Пользователи получают разные IP Оставить один согласованный набор
Изменена только A-запись IPv6 ведёт на старый сервер Проверить AAAA
Настроен только корневой домен www не работает Создать запись для www
CNAME принимают за редирект Адрес в браузере не меняется Настроить HTTP-перенаправление
TTL уменьшили одновременно с IP Старые кэши продолжают жить долго Снижать TTL заранее
Сайт проверяют по IP Открывается чужой виртуальный хост Использовать Host или --resolve
Забыли запись в hosts Один компьютер открывает старый сайт Удалить локальное переопределение
При смене NS перенесли только A Перестаёт работать почта Перенести MX и TXT
Старый сервер выключили сразу Часть пользователей видит ошибку Оставить его на переходный период
DNSSEC остался от старой зоны Резолверы возвращают SERVFAIL Обновить или отключить DS
Путают DNS-кэш и CDN-кэш Записи верные, страница старая Проверить origin отдельно
Ждут «48 часов», не проверяя зону Ошибка конфигурации не исправляется Запросить авторитетные серверы
Постоянно меняют записи Невозможно понять текущую схему Зафиксировать конфигурацию и проверять по шагам

Что приложить к обращению в поддержку

Плохое обращение:

Домен не работает. Проверьте.
Первый месяц за 0 рублей
Хостинг для сайта, который должен работать стабильно
Перенесите проект или запустите новый сайт на Siteko.net и протестируйте сервис без предоплаты.
Перейти к хостингу

Полезное:

Домен: example.com

Ожидаемый IP:
203.0.113.25

Текущие NS:
ns1.hosting.example
ns2.hosting.example

Авторитетные ответы:
ns1 → 203.0.113.25
ns2 → 203.0.113.25

Публичные резолверы:
1.1.1.1 → 203.0.113.25
8.8.8.8 → 192.0.2.10

AAAA-записи нет.

Через:
curl --resolve example.com:443:203.0.113.25
сайт открывается правильно.

Через обычный браузер в моей сети открывается старый сайт.

По этому описанию уже понятно:

  • DNS-зона настроена правильно;
  • новый сервер работает;
  • один резолвер хранит старый кэш;
  • менять файлы сайта или Document Root не требуется.

Минимальный чек-лист подключения домена

Делегирование

Какие NS указаны у регистратора?
Совпадают ли они с используемой DNS-панелью?
Все ли NS отвечают одинаково?

Адреса

Какой A-адрес у корневого домена?
Есть ли AAAA?
Куда указывает www?
Есть ли нужные поддомены?

Кэш

Какой TTL?
Что возвращает авторитетный сервер?
Что возвращают публичные резолверы?
Есть ли локальный hosts?

Веб-сервер

Добавлен ли домен в панель хостинга?
Правильная ли корневая папка?
Работает ли сайт через curl --resolve?
Настроены ли оба имени: с www и без?

Связанные сервисы

Перенесены ли MX?
Сохранены ли SPF, DKIM и DMARC?
Есть ли записи подтверждения сервисов?
Не сломан ли DNSSEC?

Что в итоге

Когда домен не открывает сайт, не нужно начинать с бесконечного ожидания «распространения DNS».

Проверьте четыре уровня:

1. Делегирование
Какие NS отвечают за домен?

2. Записи
Какой A, AAAA или CNAME они возвращают?

3. Кэш
Не хранит ли резолвер старый ответ?

4. Веб-сервер
Принимает ли выбранный IP запросы для этого домена?

Если авторитетные DNS-серверы возвращают старый IP, исправляйте зону.

Если авторитетные серверы новые, а публичный резолвер старый, проблема в кэше.

Подключение за минуту
Попробуйте Siteko.net бесплатно в течение месяца
Проверьте хостинг на реальном сайте: скорость, стабильность и поддержка доступны сразу после подключения.
Начать бесплатно

Если DNS везде правильный, но показывается заглушка, проверяйте настройки сайта на сервере.

Если curl --resolve открывает сайт правильно, новый сервер уже готов, даже если часть пользователей временно видит старый адрес.

Главный принцип:

DNS-ошибка перестаёт быть мистикой, когда вы отдельно проверяете источник записи, полученный адрес, кэш и веб-сервер.

После того как домен начинает вести на правильный сервер, браузер устанавливает HTTPS-соединение.

И здесь появляется следующая группа вопросов: сертификат выпущен, но браузер всё равно предупреждает об опасности; www не входит в сертификат; страница загружает изображения по HTTP; после переезда возникает бесконечный редирект.

В следующей части разберём SSL и HTTPS без паники.

Старт без оплаты
Месяц хостинга бесплатно для новых проектов
Разместите сайт, проверьте скорость и оцените удобство Siteko.net. Просто выберите тариф и начните тестовый месяц.
Посмотреть тарифы
Хостинг Siteko

Первый месяц бесплатно

Хостинг Siteko.net для стабильного запуска сайта

Разместите проект на Siteko.net и проверьте скорость, панель управления и поддержку без стартовой оплаты.

  • 1 месяц бесплатно для новых клиентов сразу после выбора тарифа.
  • Быстрый старт для лендинга, блога или корпоративного сайта.
  • Поддержка рядом поможет с переносом и настройкой проекта.
Выбрать тариф