Домены и DNS
У сервера есть IP-адрес типа 123.45.67.89. Запоминать невозможно. Поэтому есть DNS — глобальная система которая превращает имена в IP. Когда ты пишешь example.com — браузер сначала спрашивает DNS «куда идти?», потом идёт на полученный IP.
Что такое DNS и зоны
Доменное имя устроено иерархически. example.com → .com (TLD) → корень (.). При запросе example.com браузер спрашивает у DNS-серверов: 1) где живут «.com»? 2) где живёт example в .com? 3) какой IP у example.com? — три уровня. Управление записями домена идёт через DNS-зону у регистратора (Namecheap, GoDaddy, reg.ru, Cloudflare).
Главные типы записей
A — указывает домен на IPv4 (example.com → 123.45.67.89). AAAA — то же для IPv6. CNAME — алиас на другой домен (
). MX — почта (куда слать письма). TXT — произвольный текст (часто для верификации, SPF, DKIM). NS — какие DNS-серверы обслуживают зону. Главное для сайта: A-запись на твой IP плюс CNAME для www.
Как привязать домен к серверу
Купил домен на reg.ru → купил VPS на Hetzner с IP 123.45.67.89. Заходишь в панель управления доменом → DNS records → создаёшь две записи: A @ 123.45.67.89 (где @ означает корневой домен) и CNAME www example.com. Всё. Через 5-30 минут (иногда дольше — DNS кеши) example.com и www.example.com будут показывать твой сервер.
TTL и propagation
TTL (time to live) — сколько секунд DNS-резолверы кешируют запись. Маленький TTL (300с) — быстро применяются изменения, но больше нагрузка на DNS. Большой (86400с = сутки) — наоборот. Когда планируешь мигрировать — за день уменьши TTL до 60. Тогда переезд пройдёт за минуты вместо суток. Propagation (распространение) — процесс когда новые записи доходят до всех резолверов в мире.
Cloudflare как DNS + CDN
Многие переносят DNS в Cloudflare даже если домен куплен в другом месте. Бесплатно даёт: быстрый DNS, защиту от DDoS, CDN (быстрая отдача статики из ближайшей точки), HTTPS-сертификаты. Перенос: меняешь NS-серверы домена в регистраторе на Cloudflare-овские → импортируешь записи. Дальше всё через Cloudflare. Для серьёзного проекта — почти обязательно.
# Допустим:
# example.com — твой домен
# 123.45.67.89 — IP твоего VPS
# 89.10.20.30 — другой VPS (для api поддомена)
# === МИНИМАЛЬНЫЙ НАБОР ДЛЯ САЙТА ===
Type Name Value TTL Назначение
───── ──────── ───────────────────── ───── ─────────────────────
A @ 123.45.67.89 3600 корневой example.com
A www 123.45.67.89 3600 www.example.com
(или CNAME www → @ )
# @ означает «сам домен». Можно писать и просто example.com.
# === МНОГО ПОДДОМЕНОВ ===
A @ 123.45.67.89 3600
A www 123.45.67.89 3600
A api 89.10.20.30 3600 api.example.com на другом сервере
A blog 123.45.67.89 3600
A admin 123.45.67.89 3600
# === ПОЧТА на Google Workspace ===
MX @ 1 smtp.google.com 3600
TXT @ "v=spf1 include:_spf.google.com ~all"
TXT @ "google-site-verification=abc123..."
# верификация в Google Search Console
# === HTTPS-сертификат через Let's Encrypt ===
# Никаких DNS-записей не нужно — Let's Encrypt подтверждает по HTTP
# === ПРОВЕРКА ИЗ ТЕРМИНАЛА ===
dig example.com # все A-записи
dig +short example.com # только IP
dig MX example.com # MX-записи
dig TXT example.com # TXT-записи
nslookup example.com # альтернатива
# Где сейчас разрешается домен?
dig @8.8.8.8 example.com # через Google DNS
dig @1.1.1.1 example.com # через Cloudflare DNS
# === DNS PROPAGATION ===
# Поменял A-запись. Когда увидят все?
# Зависит от прошлого TTL: записи кешировались на этот срок
# Глобально: 95% — за час, 100% — за 24 часа максимум
# Сайты для проверки:
# https://www.whatsmydns.net/ — карта мира с распространением
# https://dnschecker.org/Типичные DNS-записи для сайта на VPS