Настройка DNS для сервера: A, AAAA, CNAME, MX
DNS — это то, что связывает доменное имя с вашим сервером. Разберём каждый тип записи, покажем корректные значения и научимся проверять результат из терминала, не дожидаясь «магии».
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Зачем нужны записи DNS
Когда пользователь вводит ваш домен, браузер обращается к DNS-серверам и спрашивает: «какой IP у этого имени?». Ответ приходит в виде записей разных типов. Ошибка в одной записи ломает почту или весь сайт, поэтому важно понимать, за что отвечает каждая.
Записи хранятся в зоне домена. Управлять зоной можно у регистратора, в панели хостинга или на выделенных DNS-серверах (Cloudflare, свой BIND). Ниже — минимальный набор для рабочего сайта на VPS.
Ещё один важный участник — NS-записи. Они определяют, какие серверы имён вообще отвечают за вашу зону. Если у регистратора прописаны чужие NS, все записи ниже вы будете править не там, где нужно, и результата не увидите. Сначала убедитесь, что NS указывают на того провайдера, где вы редактируете зону.
- A — имя → IPv4-адрес
- AAAA — имя → IPv6-адрес
- CNAME — псевдоним на другое имя
- MX — куда доставлять почту
- TXT — произвольные данные (SPF, DKIM, верификация)
- NS — серверы имён, отвечающие за зону
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS с готовым DNSA и AAAA: указываем на IP сервера
Сначала узнайте внешние адреса вашего VPS. IPv4 и IPv6 (если выдан) видно прямо на сервере:
curl -4 ifconfig.co
curl -6 ifconfig.co
ip -brief address
Далее создаём записи. Значение слева — имя (@ означает сам домен, www — поддомен), справа — адрес:
@ A 203.0.113.10
www A 203.0.113.10
@ AAAA 2001:db8::10
www AAAA 2001:db8::10
Если IPv6 у сервера нет, записи AAAA просто не создавайте — иначе часть клиентов будет получать «мёртвый» адрес и таймауты. На тарифах MAATRIX IPv6 выдаётся вместе с сервером, так что можно настроить обе версии протокола сразу.
CNAME, MX и TXT
CNAME удобен, когда несколько имён должны вести на один хост. Нельзя вешать CNAME на корень домена (@) — только на поддомены:
www CNAME example.com.
shop CNAME example.com.
blog CNAME example.com.
MX задаёт почтовые серверы и приоритет (меньше число — выше приоритет). Значение справа должно быть A/AAAA-именем, а не CNAME:
@ MX 10 mail.example.com.
@ MX 20 backup-mail.example.com.
TXT-запись SPF защищает почту от подделки — перечисляет, кому разрешено слать письма от вашего домена:
@ TXT "v=spf1 a mx ip4:203.0.113.10 -all"
Разбор SPF: a и mx разрешают отправку с адресов, указанных в A- и MX-записях, ip4: добавляет конкретный IP, а -all в конце означает «всё остальное отклонять жёстко». Мягкий вариант ~all помечает подозрительные письма как spam, но не режет — им удобно пользоваться на этапе отладки.
TTL и распространение изменений
TTL (time to live) — сколько секунд запись кэшируется резолверами. Большой TTL (86400) снижает нагрузку на DNS и ускоряет ответы, но замедляет обновления. Перед миграцией домена уменьшите TTL до 300 за сутки, а после переезда верните обратно.
Полное распространение (propagation) занимает от минут до 24-48 часов у самых «ленивых» резолверов. Не паникуйте, если сразу видите старый адрес: у части провайдеров кэш живёт до конца прежнего TTL. Именно поэтому TTL снижают заранее, а не в момент переезда — иначе старое значение уже успело закэшироваться на сутки вперёд.
Практический порядок безопасного переезда сайта на новый VPS: за день снизить TTL до 300, дождаться истечения старого кэша, поднять сайт на новом сервере, поменять A/AAAA, проверить доступность обоих узлов и только потом гасить старый. Так посетители не увидят ни минуты простоя.
Проверяем результат из терминала
Не полагайтесь на браузер — он кэширует агрессивно. Используйте dig (пакет dnsutils/bind-utils):
apt install -y dnsutils
dig +short A example.com
dig +short AAAA example.com
dig +short MX example.com
dig +short TXT example.com
Чтобы обойти локальный кэш и спросить конкретный резолвер, укажите его явно:
dig @1.1.1.1 example.com A +short
dig @8.8.8.8 example.com MX
Если ответ пустой — запись ещё не разошлась или создана с опечаткой в имени. Проверьте завершающую точку в CNAME/MX: её отсутствие превращает example.com в example.com.вашазона.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS с готовым DNSОбсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Можно ли поставить CNAME на корень домена?
Нет, стандарт запрещает CNAME на @ вместе с другими записями (SOA, NS). Используйте A/AAAA, либо ALIAS/ANAME, если провайдер их поддерживает.
Почему письма не доходят, хотя MX настроен?
Часто дело в отсутствии SPF/DKIM/PTR. Проверьте TXT-записи и обратную зону (PTR) для IP сервера — почтовики отвергают письма без корректного reverse DNS.
Как быстро увидеть изменения?
Заранее снизьте TTL до 300 секунд. Тогда старые кэши устареют за 5 минут, и новые записи подхватятся почти сразу.