Проверка CNAME
Проверка CNAME записи для любого имени: вся цепочка CNAME в DNS шаг за шагом, с запросом к собственным DNS-серверам каждой зоны. Каждый псевдоним с его TTL и ответившим сервером, платформа за целью и итоговые адреса. Висячие цели, петли и длинные цепочки называются прямо, вместе с решением.
Проверяется ровно то, что вы ввели: www. и поддомены остаются как есть, а IDN отправляется в punycode.
Что такое CNAME-запись?
CNAME-запись (canonical name, каноническое имя) в DNS делает одно имя псевдонимом другого. Спросите псевдоним — и DNS ответит: ищите вместо него вот это имя. Значение — всегда имя и никогда не IP-адрес (RFC 1034 §3.6.2).
Резолверы сами переходят по псевдониму и возвращают адреса цели в том же ответе, так что браузер ничего не замечает. Поэтому платформы и просят такую запись: вы один раз направляете www на их имя, а они могут переносить свои серверы, и вам не придётся менять DNS.
Строго говоря, каноническое имя — это цель; называть псевдоним «CNAME» — общепринятое сокращение. У имени с CNAME не может быть ничего другого и только один CNAME (RFC 2181 §10.1), поэтому на вершине зоны, где обязательно есть записи SOA и NS, его быть не может (RFC 1034 §4.2.1).
- Вы запрашиваетеwww.github.com
- CNAME · 1 ч
- Каноническое имяgithub.com
- A · 1 мин
- Адрес · AS8075 Microsoft20.207.73.82
- www.github.comCNAMEgithub.comтот же домен
- www.rust-lang.orgCNAMErust-lang.github.ioGitHub Pages
- www.cursor.comCNAMEcname.vercel-dns.comVercel
- docs.github.comA185.199.108.154ещё 3без псевдонима: собственные адреса
Как проверить CNAME-запись
Введите имя выше и нажмите Проверить CNAME: инструмент шаг за шагом спросит собственный DNS-сервер каждой зоны и нарисует цепочку. На компьютере dig делает это одной строкой: запросите тип A, и в ответе сначала будут все псевдонимы, а затем адреса.
Запросите тип CNAME, чтобы увидеть только первый псевдоним. В Windows есть nslookup -type=cname, в PowerShell — Resolve-DnsName -Type CNAME, а host -t cname выводит одно предложение.
Два подвоха: резолвер показывает, сколько TTL осталось в его кэше, а не TTL, заданный зоной, а dig +short отбрасывает TTL и имена владельцев, так что цепочка выводится голым списком.
dig www.example.com A +noall +answerКаждый псевдоним с его TTL, затем адреса. +short выводит только цели, без TTL.
$ dig www.nytimes.com A +noall +answer www.nytimes.com. 12902IN CNAME www.prd.map.nytimes.com.3 www.prd.map.nytimes.com. 482 IN CNAME www.prd.map.nytimes.xovr.nyt.net. www.prd.map.nytimes.xovr.nyt.net. 260 IN CNAME nytimes.map.fastly.net. nytimes.map.fastly.net. 28 IN A 151.101.1.1644 nytimes.map.fastly.net. 28 IN A 151.101.129.164 nytimes.map.fastly.net. 28 IN A 151.101.193.164 nytimes.map.fastly.net. 28 IN A 151.101.65.164 $ dig www.nytimes.com +short5 www.prd.map.nytimes.com. # без TTL и имён владельцев www.prd.map.nytimes.xovr.nyt.net. nytimes.map.fastly.net. 151.101.1.164 151.101.129.164 151.101.193.164 151.101.65.164
- Имя, которое вы запросили. Первый столбец каждой строки — владелец записи.
- Секунды, оставшиеся в кэше Google: 290 с из 600 с, заданных зоной. Собственный сервер зоны показывает полный TTL.
- CNAME → следующее имя. Здесь 3 псевдонима — значит, 3 такие строки.
- Адреса принадлежат последнему имени в цепочке — Fastly, TTL 1 мин в зоне.
+shortскрывает TTL и имена владельцев: остаются только цели и адреса.
Тот же вопрос в других инструментах
$ nslookup -type=cname www.nytimes.com
Non-authoritative answer:
www.nytimes.com canonical name = www.prd.map.nytimes.com.PS> Resolve-DnsName www.nytimes.com -Type CNAME # по строке на запись: имя, тип, TTL и цель
$ host -t cname www.nytimes.com
www.nytimes.com is an alias for www.prd.map.nytimes.com.nslookup в том виде, как его выводит macOS; Windows раскладывает тот же ответ немного иначе.
Как читать результат
Заголовок одной фразой говорит, куда в итоге ведёт имя и через сколько псевдонимов, с логотипом платформы; заметки под ним — важные находки. Считаются CNAME-записи: у www.github.com → github.com это 1, а не 2.
Раздел «Цепочка» перечисляет каждую запись в том виде, как её отдал сервер её собственной зоны, — с зоной, сервером, флагом AA и TTL, а затем показатели: петля, длина, отсутствующие цели, другие данные рядом с CNAME. Раздел «Копии» ставит копию каждой записи в кэше Google и Cloudflare рядом с ответом зоны. Справа тёмно-синяя колонка рисует цепочку: петлю — кольцом, отсутствующую цель — обрывом.

ВердиктКуда в итоге ведёт имя, через сколько псевдонимов, платформа и сеть адресов.Копии в кэшеКопия каждой записи у Google и Cloudflare, сколько ей осталось и когда станет видна правка первой записи.Каждая запись, шаг за шагомЦель и TTL в том виде, как их хранит зона, ответивший сервер, флаг AA и время.ЦепочкаИмя, каждый псевдоним с его зоной и TTL, затем итоговые адреса и их сеть.CNAME и A-запись: в чём разница
A-запись содержит адрес: docs.github.com → 185.199.108.154. CNAME содержит имя: www.github.com → github.com, а адрес берётся из собственной A-записи этого имени.
Используйте A-запись для своего сервера и для корневого домена. Используйте CNAME, когда платформа даёт вам имя, на которое нужно указать (Vercel, GitHub Pages, CDN, ключ DKIM почтового сервиса): когда они переезжают, ваша запись следует за ними сама.
Цена — ещё один запрос на каждый псевдоним и строгие правила: у этого имени ничего другого и никогда — на вершине зоны.
github.comадрес IPv4: 185.199.108.154CNAME на корневом домене: ALIAS, ANAME и CNAME flattening
Корень домена (github.com) — это вершина его зоны, а на вершине обязательно должны быть записи SOA и NS зоны. CNAME не допускает ничего рядом с собой, поэтому туда его не поставить: два правила сталкиваются (RFC 1034 §4.2.1, RFC 2181 §10.1).
DNS-хостинги обходят это в своих серверах: они сами разрешают цель и отвечают её адресами. У Cloudflare это называется CNAME flattening («сглаживание» CNAME), у Route 53 — alias-запись (alias record), у DNSimple и NS1 — ALIAS, у DNS Made Easy — ANAME. Резолверы видят только A и AAAA, поэтому никакая проверка не покажет псевдоним за ними.
Стандартного ANAME нет: черновик IETF истёк в 2019 году. Стандартный путь — запись HTTPS в режиме AliasMode (RFC 9460), но её используют только клиенты, которые её запрашивают, поэтому корню всё равно нужны записи A.
github.com.вершина зоны
- SOAdns1.p08.nsone.net. hostmaster.nsone.net. …
- NS8 серверов: NS1 + Route 53
- MX github-com.mail.protection.outlook.com.
- A20.207.73.82
- CNAME
anything.example.net.
CNAME должен стоять один, а эти записи обязаны быть здесь: значит, на корне CNAME нельзя.
Что DNS-хостинги предлагают взаменРезолверы видят
- Cloudflare · CNAME flatteningна корне включено по умолчанию, на всех тарифахA · AAAA
- Amazon Route 53 · alias-записьна ресурсы AWS или на запись в той же зонеA · AAAA
- DNSimple · ALIASразрешает цель в момент запросаA · AAAA
- NS1 (IBM) · ALIASA · AAAA
- DNS Made Easy · ANAMEA · AAAA
- Azure DNS · набор записей-псевдонимовA · AAAA
- запись HTTPS в режиме AliasMode · RFC 9460единственный стандарт: для каждого сервиса, для клиентов, которые его запрашиваютHTTPS
Цепочки CNAME, TTL и сколько идёт изменение
Псевдоним может указывать на другой псевдоним: www.microsoft.com проходит через два, www.nytimes.com — через три. У каждой записи в цепочке свой TTL, и кэшируется она отдельно, поэтому копии истекают в разное время (RFC 1034 §5.3.3).
Поэтому наименьший TTL — это не время ожидания. Итоговый адрес Microsoft живёт 20 секунд, но правка первой записи — той, что в собственной зоне microsoft.com, — ждёт копий этой записи: у Google, когда мы проверяли, оставалось 37 минут, у Cloudflare — почти целый час, и любой резолвер может хранить её до этого часа.
Держите цепочки короткими. RFC 9460 рекомендует не больше 8 псевдонимов подряд; BIND и Unbound сдаются после 11, PowerDNS — после 10, Knot — после 13. Google и Cloudflare лимит не публикуют.
- www.microsoft.comCNAME → www.microsoft.com-c-3.edgekey.netзапись, которую правит владелец1 чTTL в зоне
Правка этой записи станет видна у Google к 07:59:03, у Cloudflare к 08:22:14 UTC, у любого резолвера — в пределах 1 ч.
- www.microsoft.com-c-3.edgekey.netCNAME → e13678.dscb.akamaiedge.net15 минTTL в зоне
- e13678.dscb.akamaiedge.netA 23.2.78.94наименьший TTL20 сTTL в зоне
Опубликованные лимиты и реальные цепочки
- 8 RFC 9460: больше 8 не рекомендуется
- 10 PowerDNS
- 11 BIND, Unbound
- 13 Knot
- Google, Cloudflare: не публикуют
Висячие CNAME и захват поддомена
CNAME становится висячим (dangling), когда его цели больше нет: облачное приложение удалено, бакет очищен, домен истёк. Если кто-то другой может создать ресурс с этим именем, он будет обслуживать ваш поддомен и даже сможет получить для него действительный сертификат.
В DNS это выглядит как ответ NXDOMAIN, в котором всё ещё есть ваш CNAME: отсутствует цель, а не ваше имя (RFC 6604 §3). Это работает только на платформах, которые дают каждому ресурсу собственное DNS-имя. Другие отвечают на любое имя, поэтому удалённый там сайт всё ещё разрешается: в этом случае проверяйте сам сайт.
Решение — порядок действий: удаляйте DNS-запись раньше ресурса и подтверждайте домен на платформах, которые это предлагают. Исправленная цель ещё какое-то время может выглядеть отсутствующей: резолверы хранят отрицательный ответ в течение меньшего из двух значений — TTL записи SOA зоны цели и её поля MINIMUM (RFC 2308 §5).
Отсутствующая цель отвечает NXDOMAIN
Имя удалённого ресурса перестаёт разрешаться: наш вердикт — висячий CNAME.
- *.azurewebsites.netApp Service
- *.trafficmanager.netTraffic Manager
- *.blob.core.windows.netBlob Storage
- *.cloudapp.netCloud Services
- *.elasticbeanstalk.comElastic Beanstalk
- *.elb.amazonaws.comElastic Load Balancing
- *.pages.devCloudflare Pages
- *.edgekey.netedge-имя хоста
- *.map.fastly.netmap-имя
Платформа отвечает на любое имя
Удалённый сайт всё ещё разрешается: наш вердикт — указывает на платформу: убедитесь, что сайт всё ещё ваш.
- *.github.ioGitHub Pages
- *.netlify.appNetlify
- *.herokuapp.comHeroku
- *.vercel.appVercel
- *.myshopify.comShopify
- *.pantheonsite.ioPantheon
- *.go-vip.netWordPress VIP
- *.webflow.ioWebflow
- *.zendesk.comZendesk
- *.s3.amazonaws.comAmazon S3
- *.azurefd.netAzure Front Door
- *.global.ssl.fastly.netTLS-имя хоста
$ dig shop.example.com A ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN ;; ANSWER SECTION: # ваша запись на месте shop.example.com. 3600 IN CNAME example-shop.example.net. ;; AUTHORITY SECTION: # такой цели нет; резолверы могут хранить отрицательный ответ 5 мин example.net. 300 IN SOA ns1.example.net. …
Проверки владения, которые не дают захватить поддомен
- GitHub Pages
TXT _github-pages-challenge-<user>.<domain> - Azure App Service
TXT asuid.<subdomain> - Webflow
TXT _webflow one-time-verification=… - Cloudflare for SaaS
проверка имени хоста через TXT или HTTP - Netlify
блокировка домена через поддержку
Как добавить CNAME-запись (GoDaddy, Cloudflare, Namecheap, Squarespace)
Любая DNS-панель спрашивает одно и то же: тип (CNAME), хост и цель, которую дала ваша платформа. В поле хоста введите только метку — www или shop: панель сама добавит ваш домен.
Если ввести полное имя, получится www.example.com.example.com — самая частая причина, по которой новый CNAME «не работает». То же происходит в файле зоны, где имя без точки в конце считается относительным. В Cloudflare запись в режиме Proxied скрывает CNAME от проверок: переключите её в DNS only, когда платформе нужно её проверить.
Затем проверьте её здесь. Хостинги называют сроки от минуты до 72 часов; на деле изменённая запись ждёт, пока истечёт TTL старой записи, а совсем новое имя обычно видно сразу.
GoDaddyЦель выдаёт Shopify
Name: без доменного имени, например blog или shop; никогда не @.
CloudflareЦель выдаёт Webflow
Name: только ваш поддомен. DNS only оставляет CNAME видимым для проверок; Proxied скрывает его.
NamecheapЦель выдаёт Google
Host: только mysubdomain, а не mysubdomain.domain.tld.
SquarespaceЦель выдаёт Framer
Name: CNAME с @ в поле Name добавить нельзя.
Что обещают хостинги и что говорит TTL
- Route 53в пределах 1 мин, на своих серверах
- Namecheap30 мин
- GoDaddy1 ч, максимум 48 чTTL по умолчанию 1 ч
- Hostingerдо 24 чTTL по умолчанию 4 ч
- Squarespaceот 24 ч до 48 чTTL по умолчанию 4 ч
- Gandiдо 72 ч
- REG.RUот 15 мин до 1 ч
что обещает хостингего TTL по умолчанию: сколько резолверы могут хранить старую запись
Ошибка Cloudflare 1014: CNAME Cross-User Banned
Ошибка 1014 появляется, когда имя на Cloudflare указывает через CNAME на имя в другом аккаунте Cloudflare. Cloudflare блокирует это, чтобы один клиент не мог направлять трафик через настройки другого.
Это разрешено внутри одной зоны, между зонами одного аккаунта и через Cloudflare for SaaS, где владелец цели добавляет ваше имя как custom hostname. Это и есть решение, когда вы направляете домен на SaaS, работающий на Cloudflare. Другие причины: собственный домен R2, зона которого приостановлена (on hold), или заблокированная зона.
Проверка может лишь намекнуть на неё: когда обе зоны используют DNS-серверы Cloudflare, ошибка 1014 возможна, если они в разных аккаунтах. DNS показывает зоны, но не аккаунты, а проксируемая запись скрывает сам CNAME, поэтому здесь виден только CNAME в режиме DNS only.
Аккаунт A
shop.example.comCNAME → shops.example.net
1014cross-user banned
Аккаунт B
shops.example.netпроксируется · собственная зона SaaS-провайдера
- Одна зонаwww → example.com
- Один аккаунтодна зона → соседняя зона того же аккаунта
- Cloudflare for SaaSвладелец цели добавляет ваше имя хоста
Другие причины: собственный домен R2, зона которого приостановлена (on hold), или заблокированная зона.
Что может сказать этот инструмент: когда обе зоны отвечают с *.ns.cloudflare.com, ошибка 1014 возможна, если аккаунты разные. DNS показывает зоны, но не аккаунты. Цель *.cdn.cloudflare.net — это частичная настройка Cloudflare через CNAME (CNAME setup), а не SaaS.
CNAME и редирект: в чём разница
CNAME — это не редирект. Он лишь говорит DNS, где искать адрес; браузер оставляет в адресной строке имя, которое вы ввели, отправляет его серверу и ждёт сертификат для него.
Поэтому платформы просят добавить ваш домен и на их стороне: их сервер должен узнать www.example.com и отдать для него сертификат. CNAME на сервер, который не знает вашего имени, покажет его страницу по умолчанию или ошибку сертификата.
Чтобы отправлять посетителей с одного URL на другой, используйте HTTP-редирект (301 или 308) на веб-сервере или функцию переадресации вашего DNS-хостинга, которая запускает такой сервер за вас. Проверка редиректов показывает каждый его шаг.
CNAMEимя остаётся
- DNS:
www.example.com→ CNAMEsites.example.net→ его адрес - TLS: в сертификате должно быть имя
www.example.com - HTTP:
Host: www.example.com; сервер должен его знать
301URL меняется
- DNS:
example.com→ запись A веб-сервера - HTTP:
301 Location: https://www.example.net/ - Браузер: загружает новый URL, для которого выполняется свой DNS-запрос
Вопросы о проверке CNAME записи
Что такое CNAME-запись?
Как проверить CNAME-запись?
dig www.example.com CNAME в macOS или Linux, nslookup -type=cname www.example.com в Windows или Resolve-DnsName www.example.com -Type CNAME в PowerShell.Чем CNAME отличается от A-записи?
Можно ли поставить CNAME на корневой домен?
Почему мой CNAME не виден?
Сколько времени занимает изменение CNAME?
Что такое висячий CNAME?
Сколько CNAME можно выстроить в цепочку?
Может ли CNAME указывать на IP-адрес?
CNAME — это то же самое, что редирект?
Что означает ошибка Cloudflare 1014?
Зачем селекторам DKIM CNAME-записи?
Чего-то не хватает?Предложите функцию или новый инструмент
Другие DNS-инструменты
Проверка DNS
Все DNS-записи прямо с серверов имён домена рядом с кешем Google и Cloudflare
NS Поиск
Поиск nameserver-ов для любого домена с определением провайдера
MX Поиск
Поиск записей mail exchange и данных почтового сервера
Поиск поддоменов
Поиск всех поддоменов любого домена
Проверка хостинга
Узнайте, кто хостит любой сайт: хостинг, CDN, CMS, почтовый провайдер, регистратор и издатель SSL
Домен в IP
Преобразование любого доменного имени в IP адрес с геолокацией и определением CDN
Проверка редиректов
Проверка редиректов URL, цепочек перенаправлений и кодов HTTP статуса для SEO
Обратный DNS
Поиск имён хостов по IP адресу через записи PTR