Сервер куплен, сайт на нём настроен, а по адресу example.com всё ещё открывается старый хостинг или заглушка регистратора. Чтобы домен вёл на VPS, нужно поправить DNS-записи. Звучит сложно, но на деле это две-три строки в панели. Сложность в другом: понять, в какой именно панели их править. Ниже — как устроен DNS без лишней теории, пошаговая привязка домена к VPS и ошибки, из-за которых сайт «не открывается после переезда».
Кто за что отвечает
В привязке домена участвуют три стороны, и их легко перепутать:
- Регистратор — у кого вы купили домен (Рег.ру, RU-CENTER, Namecheap и т. п.). Здесь домен продлевается и здесь указывается, какие DNS-серверы им управляют.
- DNS-хостинг — серверы, которые хранят записи домена и отвечают на вопрос «какой IP у example.com». Часто это тот же регистратор, но может быть старый хостинг или отдельный сервис вроде Cloudflare.
- Сервер — ваш VPS, где лежит сайт. Сам он в DNS ничего не решает, ему нужно только правильно настроить веб-сервер.
Самая частая ошибка новичка: записи правят в панели регистратора, а домен обслуживают DNS-серверы старого хостинга. Изменения сохраняются, но ни на что не влияют, потому что на запросы отвечает другая сторона. Поэтому первый шаг всегда один: узнать, где на самом деле живут записи.
Шаг 1. Узнайте IP сервера
Он есть в письме об активации VPS и в личном кабинете провайдера. На самом сервере его покажет команда:
ip -4 addr show scope global
Если у сервера есть и IPv6-адрес, запишите его тоже: ip -6 addr show scope global.
Шаг 2. Найдите, где управляются записи домена
Посмотрите, какие DNS-серверы (NS) указаны у домена:
dig NS example.com +short
В Windows то же самое делает nslookup -type=NS example.com. По именам в ответе понятно, куда идти:
ns1.reg.ru,ns3-l2.nic.ruи т. п. — записи правятся в панели регистратора;...ns.cloudflare.com— в панели Cloudflare;- имена старого хостинга (например,
ns1.hosting.ru) — записи правятся в панели этого хостинга.
Последний вариант — ловушка при переезде. Если вы собираетесь закрыть старый хостинг, вместе с ним пропадут и DNS-записи, и домен перестанет работать целиком. В этом случае сначала перенесите управление DNS к регистратору (см. ниже), а уже потом меняйте адрес.
Шаг 3. Пропишите записи
Для сайта на VPS обычно нужно две записи, иногда четыре:
| Имя (хост) | Тип | Значение | Зачем |
|---|---|---|---|
@ | A | IPv4 сервера | Сам домен example.com |
www | A | IPv4 сервера | www.example.com |
@ | AAAA | IPv6 сервера | Только если у сервера есть IPv6 и сайт на нём настроен |
www | AAAA | IPv6 сервера | То же для www |
Символ @ в большинстве панелей означает «сам домен». Где-то вместо него поле оставляют пустым или пишут домен целиком — смотрите подсказку в панели.
Для www вместо второй A-записи можно сделать CNAME на основной домен (www CNAME example.com.), тогда при смене IP достаточно поменять одну запись. А вот на сам корневой домен CNAME ставить нельзя: это запрещено стандартом, и он сломает почту и остальные записи.
Удалите старые A и AAAA. Если у домена остались записи на прежний хостинг, часть запросов будет уходить туда. Особенно коварна забытая AAAA: у вас дома IPv6 может не быть, и всё выглядит нормально, а у пользователей с IPv6 открывается старый сайт.
Не трогайте MX и TXT. Это записи почты и подтверждений (Яндекс Вебмастер, Google, настройки SPF и DKIM). Почта и сайт друг от друга не зависят: если ящики на домене у Яндекс 360 или другого сервиса, после переезда сайта на VPS они продолжат работать — при условии, что вы не удалили их записи.
Шаг 4. Дождитесь обновления и проверьте
У каждой записи есть TTL — время в секундах, на которое DNS-серверы по всему интернету запоминают ответ. Если у старой записи стоял TTL 3600, часть пользователей ещё до часа будет попадать на старый адрес. Новая запись обычно расходится за минуты, но иногда это занимает несколько часов.
Браузеру в этот момент не верьте: он и операционная система кэшируют ответы. Спросите публичные DNS-серверы напрямую:
dig @8.8.8.8 example.com A +short dig @1.1.1.1 example.com A +short dig @77.88.8.8 www.example.com A +short
Все три должны вернуть IP вашего VPS. В Windows: nslookup example.com 8.8.8.8. Если один сервер уже показывает новый адрес, а другой ещё старый — это нормально, нужно подождать окончания TTL.
Чтобы проверить сайт на новом сервере, не дожидаясь DNS, пропишите домен в файл hosts своего компьютера. Как это сделать и как переключить домен без простоя — в статье «Как перенести сайт с хостинга на VPS»: там же расписано, зачем за пару дней до переезда снижать TTL до 300 секунд.
Шаг 5. Настройте сервер под домен
DNS только приводит посетителя на нужный IP. Дальше веб-сервер должен понять, какой сайт отдать. В конфигурации Nginx это строка:
server_name example.com www.example.com;
Без неё Nginx отдаст сайт по умолчанию или стандартную заглушку. После правки: nginx -t && systemctl reload nginx.
Последний шаг — HTTPS. Сертификат Let's Encrypt выпускается только после того, как домен уже указывает на сервер, поэтому делайте его после смены записей. Пошагово — в статье «SSL на VPS: бесплатный сертификат Let's Encrypt».
Где держать DNS: у регистратора или отдельно
Новичку проще всего оставить DNS у регистратора: это бесплатно, записи в той же панели, где продлевается домен. Отдельный DNS-сервис имеет смысл, если нужны его возможности (CDN, защита от атак, API для автоматики).
Переключение DNS-хостинга делается сменой NS-серверов у регистратора. Порядок важен:
- Создайте зону у нового DNS-хостинга и перенесите туда все записи: A, AAAA, www, MX, TXT, поддомены. Список текущих записей покажет старая панель.
- Только после этого смените NS у регистратора.
- Подождите: обновление NS занимает от нескольких часов до суток, в это время ответы приходят то со старых, то с новых серверов. Поэтому записи в обоих местах должны совпадать.
Если сменить NS на пустую зону, домен «пропадёт» вместе с почтой. Это самая неприятная ошибка из всех возможных, и исправляется она так же долго, как возникла.
Свой DNS-сервер (BIND, PowerDNS) на VPS поднимать новичку не нужно: это лишняя точка отказа. Если сервер ляжет, домен перестанет отвечать вообще, а не только сайт.
Поддомены и несколько сайтов
Поддомен — это просто ещё одна запись: shop A 203.0.113.10 даст shop.example.com. Он может указывать на тот же VPS (тогда в Nginx нужен отдельный блок server с server_name shop.example.com) или на другой сервер. Один VPS спокойно обслуживает десятки доменов: все указывают на один IP, а Nginx различает их по имени.
Обратная запись (PTR)
Обычная запись отвечает на вопрос «какой IP у домена», обратная — «какое имя у IP». Для сайта она не нужна, но нужна, если с VPS будет уходить почта: без неё письма чаще попадают в спам. Делается она не у регистратора, а у владельца IP-адреса, то есть у провайдера VPS — в панели или через поддержку. Проверка:
dig -x 203.0.113.10 +short
Частые ошибки
| Симптом | Причина | Что делать |
|---|---|---|
| Поменяли запись, ничего не изменилось даже через сутки | Правили не там: NS указывают на другой DNS-хостинг | dig NS example.com, править записи в той панели, куда указывают NS |
| У одних открывается новый сайт, у других старый | Не истёк TTL или осталась старая AAAA-запись | Подождать TTL; проверить dig AAAA example.com и удалить лишнее |
| Открывается заглушка Nginx или чужой сайт | DNS верный, но на сервере нет server_name для домена | Добавить домен в конфигурацию сайта |
| Без www работает, с www нет (или наоборот) | Нет записи для одного из вариантов | Завести A или CNAME для www и включить его в server_name |
| Сайт переехал, пропала почта | Удалили или не перенесли MX и TXT | Восстановить записи по инструкции почтового сервиса |
Домен не открывается совсем, dig ничего не возвращает | Домен не продлён или NS указывают на пустую зону | Проверить срок регистрации у регистратора, включить автопродление |
Если сайт перестал открываться внезапно, без всяких переездов, начните с DNS: порядок проверки — в статье «Что делать, если сайт упал». А мониторинг доступности заметит проблему раньше посетителей.
Ещё нет сервера
Для сайта с доменом подойдёт любой тариф: DNS нагрузки на сервер не даёт. Для сайта на CMS хватит Start (2 vCPU, 2 ГБ, NVMe). Финляндия — самый быстрый отклик из России, Нидерланды — если аудитория по всей Европе.
Start в Финляндии — $10/мес Start в Нидерландах — $10/мес
Цены указаны на момент публикации, оплата у провайдера. Подробнее о площадках: VPS в Финляндии, VPS в Нидерландах. Что настроить на сервере после покупки — в статье «Как настроить VPS после покупки».
Коротко
- Сначала узнайте, где живут записи:
dig NS example.com. Править нужно там, куда указывают NS. - Для сайта нужны A-записи на
@иwww; AAAA — только если сайт настроен на IPv6. Старые A и AAAA удалите. - MX и TXT не трогайте, иначе пропадёт почта и подтверждения.
- Проверяйте через
dig @8.8.8.8, а не в браузере, и дождитесь окончания TTL. - На сервере пропишите домен в
server_name, затем выпустите сертификат. - При смене DNS-хостинга сначала перенесите все записи, потом меняйте NS.
