Доменное имя становится полезным только тогда, когда его DNS-записи указывают, где находится ваш сервер. В этом руководстве вы привяжете домен к своему VPS Linux Infrawire, добавите записи IPv4, IPv6 и www и убедитесь, что всё разрешается правильно.
📋 Требования
- VPS с публичным адресом IPv4 (и при желании IPv6). В личном кабинете вы найдёте IP-адрес и пароль root вашего VPS.
- Зарегистрированный домен (
example.com) и доступ к его DNS-зоне у регистратора или DNS-провайдера. digиnslookupна вашем компьютере или на VPS:
Bash# Ubuntu 24.04 / Debian 12 sudo apt update && sudo apt install -y dnsutils # AlmaLinux 9 / Rocky 9 sudo dnf install -y bind-utils
🧭 Типы записей
| Тип | Назначение | Пример значения |
|---|---|---|
| A | Имя в адрес IPv4 | VPS_IP |
| AAAA | Имя в адрес IPv6 | VPS_IPV6 |
| CNAME | Псевдоним другого имени | example.com. |
CNAME нельзя ставить на корневой домен (example.com, так называемый apex): он конфликтовал бы с остальными записями зоны. Там используйте A/AAAA, а CNAME оставьте для поддоменов вроде www.
✍️ Создание записей A и AAAA
В редакторе DNS-зоны у регистратора добавьте эти записи. Значение @ в поле хоста означает сам домен.
TEXTТип Хост Значение TTL A @ VPS_IP 3600 AAAA @ VPS_IPV6 3600
Некоторые интерфейсы требуют полное имя (example.com.) вместо @. Конечную точку оставляйте, только если редактор просит полное доменное имя. Если IPv6 вы пока не используете, не создавайте AAAA: неверная AAAA хуже, чем её отсутствие, ведь многие клиенты сначала пробуют IPv6.
🔗 Добавление www через CNAME
Пусть www следует за основным именем, тогда IP придётся менять только в одном месте:
TEXTТип Хост Значение TTL CNAME www example.com. 3600
Остальные поддомены настраиваются так же. Используйте запись A, если поддомен должен указывать на другой сервер (например, api на другой IP).
⏱️ TTL и распространение
TTL (время жизни, в секундах) сообщает резолверам, как долго можно хранить ответ в кеше. Новая запись обычно появляется за несколько минут, но изменение существующей записи не видно, пока не истечёт прежний TTL.
- Перед миграцией за сутки снизьте TTL до
300, а затем меняйте IP. - Когда всё стабильно, верните TTL на
3600или больше. - Полное распространение никогда не бывает мгновенным: рассчитывайте от нескольких минут до нескольких часов.
✅ Проверка с помощью dig и nslookup
Спросите свой резолвер, затем публичный, и сравните ответы:
Bashdig +short example.com A dig +short example.com AAAA dig +short www.example.com CNAME # Запрос к конкретному публичному резолверу dig @1.1.1.1 +short example.com A dig @8.8.8.8 +short example.com A # Прямой запрос к авторитетным серверам (без кеша) dig +short NS example.com dig @NAMESERVER +short example.com A
Та же проверка через nslookup:
Bashnslookup example.com nslookup -type=AAAA example.com nslookup www.example.com 1.1.1.1
Ответ должен совпадать с VPS_IP. Затем проверьте путь до сервера:
Bashping -c 3 example.com curl -I http://example.com
🔁 Обратный DNS (PTR)
Прямой DNS превращает имя в IP. Обратный DNS (запись PTR) делает наоборот: сопоставляет VPS_IP с именем хоста. Он настраивается не в зоне вашего домена, а владельцем блока IP-адресов, поэтому попросите хостинг-провайдера задать его. Почтовые серверы сильно на него полагаются, так что укажите имя, с которого отправляете почту, например mail.example.com, и убедитесь, что у этого имени есть соответствующая запись A.
Bashdig -x VPS_IP +short host VPS_IP
☁️ Особый случай: прокси Cloudflare
Если запись проксируется (оранжевое облако), публичный DNS возвращает адреса Cloudflare, а не VPS_IP. Это нормально: dig никогда не покажет IP вашего сервера.
- Веб-трафик (80/443) идёт через Cloudflare, а другие службы, такие как SSH, почта или игровые серверы, нет.
- Для всего, что не HTTP(S), создайте запись в режиме только DNS (серое облако), например
ssh.example.comнаVPS_IP. - Почтовые записи (
mail, цели MX) всегда должны быть только в режиме DNS. - Оставьте режим SSL Full (strict) и установите на VPS действующий сертификат, иначе получите циклы перенаправления или ошибку 525.
🛠️ Устранение неполадок
Всё ещё виден старый IP. Прежний TTL не истёк. Запросите авторитетный сервер командой dig @NAMESERVER, чтобы убедиться, что зона верна, и подождите. При необходимости очистите локальный кеш:
Bashsudo resolvectl flush-caches
NXDOMAIN или нет ответа. Запись находится не в той зоне, в имени хоста опечатка, либо домен использует другие серверы имён, не те, что вы редактировали. Сравните вывод dig NS example.com с серверами имён, указанными у регистратора.
Домен разрешается, но сайт не открывается. С DNS всё в порядке, проблема в службе. Проверьте, что веб-сервер слушает порт и что брандмауэр его разрешает:
Bashsudo ss -tlnp | grep -E ':80|:443'
🎉 Теперь ваш домен указывает на VPS: можно устанавливать веб-сервер и выпускать сертификат.