Сервер доступен в интернете по IP-адресу, но запоминать цифры неудобно, да и многим программам нужен именно домен. Сайту нужен домен для сертификата HTTPS, почтовым сервисам для проверки отправителя, а многим приложениям для красивой ссылки. Чтобы домен вёл на ваш сервер, достаточно создать для него одну-две DNS-записи. В этой статье мы разберём, как устроена система DNS, какие записи бывают и зачем они нужны, а затем по шагам привяжем домен к VPS и проверим, что всё работает.
Как работает DNS
Когда вы набираете в браузере адрес example.com, компьютер сначала должен узнать, какой IP-адрес стоит за этим именем, ведь в сети пакеты доставляются только по адресам. Этим занимается система доменных имён, DNS. Сам компьютер почти ничего о ней не знает и задаёт вопрос DNS-резолверу. Обычно это сервер интернет-провайдера или публичный сервис вроде 1.1.1.1 или 8.8.8.8. Если резолвер недавно уже отвечал на такой же вопрос, он возьмёт ответ из своей памяти. Если нет, ему придётся пройти по цепочке серверов.
Цепочка начинается с корневых серверов DNS. Они не знают адреса example.com, но знают, какие серверы отвечают за зону .com. Те, в свою очередь, тоже не хранят нужную запись, но знают, какие NS-серверы обслуживают сам домен example.com. Именно эти серверы хранят записи домена и дают окончательный ответ. Какие NS-серверы отвечают за ваш домен, указывается у регистратора, то есть у компании, где вы купили домен. Чаще всего это DNS-серверы самого регистратора, и тогда записи редактируются в его панели. Но NS можно указать и другие, например серверы Cloudflare, и тогда записи нужно создавать уже там. Это частая причина недоразумений, когда человек добавляет запись у регистратора, а домен продолжает обслуживаться совсем другим сервисом.
Получив ответ, резолвер запоминает его на время, которое задано в самой записи. Это время называется TTL и указывается в секундах. Если у записи TTL равен 3600, резолвер целый час будет отдавать сохранённый ответ и не станет переспрашивать NS-сервер. Отсюда и знаменитое «обновление DNS», которое якобы длится до 24 часов. На самом деле запись меняется на NS-сервере сразу, но резолверы по всему миру продолжают отдавать старый ответ, пока у них не истечёт TTL. Новая запись, которой раньше не было, обычно начинает работать за несколько минут. Дольше всего ждать приходится при смене NS-серверов домена. Сведения о них резолверы хранят долго, например в зоне .com это 2 суток, а в зоне .ru 4 суток, поэтому часть посетителей ещё какое-то время будет попадать на старые серверы.
Какие бывают DNS-записи
- A связывает имя с IPv4-адресом, например
example.comи203.0.113.10. Это главная запись для привязки домена к серверу. - AAAA делает то же самое для IPv6-адреса. Каждый наш сервер получает подсеть IPv6, поэтому эту запись тоже стоит добавить.
- CNAME делает одно имя псевдонимом другого. Например,
www.example.comможно направить наexample.com, и тогда при смене IP-адреса менять придётся только одну запись. CNAME нельзя создать для самого домена без поддомена. - MX указывает, какие серверы принимают почту для домена. Её настраивают по инструкции почтового сервиса, например Яндекс 360 или Gmail.
- TXT хранит произвольный текст. В нём записывают правила SPF для почты и коды подтверждения, которые просят Google, Яндекс и другие сервисы.
- NS показывает, какие серверы обслуживают домен. Их меняют у регистратора, а не в списке записей.
Есть ещё обратная запись PTR, которая сообщает, какой домен у IP-адреса. Её задают не у регистратора, а у владельца IP-адреса, то есть у нас. Как это сделать, рассказано в статье про управление сервером.
Что понадобится
- Домен и доступ к панели, где редактируются его DNS-записи.
- IP-адрес сервера. Его видно в личном кабинете по кнопке IP-адреса, подробнее в статье про управление сервером.
- IPv6-адрес сервера, если хотите добавить запись AAAA. Его покажет команда
ip -6 addr show scope globalна сервере, адрес указан после словаinet6до знака/.
1. Узнайте, где редактировать записи
Прежде чем что-то создавать, проверьте, какие NS-серверы обслуживают домен. Выполните на сервере или на своём компьютере команду, подставив свой домен.
dig +short NS example.comЕсли в ответе серверы вашего регистратора, записи создаются в его панели. Если там, например, ns.cloudflare.com, как у домена example.com на скриншоте ниже, записи нужно создавать в Cloudflare, а изменения в панели регистратора ни на что не повлияют.

dig +short показывает только сами значения записей
2. Создайте записи
Откройте раздел управления DNS у регистратора или в сервисе, на который указывают NS, и добавьте записи. Вместо 203.0.113.10 укажите IPv4-адрес своего сервера, а вместо 2001:db8::10 его IPv6-адрес.
| Тип | Имя | Значение | Зачем |
|---|---|---|---|
| A | @ | 203.0.113.10 | домен ведёт на сервер |
| A | www | 203.0.113.10 | адрес с www тоже ведёт на сервер |
| AAAA | @ | 2001:db8::10 | то же для IPv6, по желанию |
Символ @ означает сам домен без поддомена. В некоторых панелях вместо него оставляют поле имени пустым. Для поддомена, например app.example.com, в поле имени пишут только app.
Поле TTL можно оставить по умолчанию. Если вы планируете в ближайшее время переносить сайт на другой сервер, заранее поставьте небольшое значение, например 300 секунд, тогда переключение пройдёт за пять минут.
Удалите старые записи
Если у домена уже есть записи A или AAAA для того же имени, например заглушка регистратора, удалите их. Когда у имени несколько адресов, посетители будут попадать то на ваш сервер, то на старую страницу.
3. Проверьте, что запись работает
Через несколько минут после сохранения проверьте запись командой dig. В Windows вместо неё есть nslookup, она работает так же, достаточно написать nslookup example.com.
# Ответ вашего обычного резолвера
dig +short example.com A
# Ответ публичного резолвера Google, у него свой кэш
dig @8.8.8.8 +short example.com AЕсли команда возвращает IP-адрес вашего сервера, домен привязан. Полный вывод dig без параметра +short показывает ещё и TTL. В строке ответа это число перед IN, оно означает, сколько секунд резолвер ещё будет хранить этот ответ.

В ANSWER SECTION видны адреса и оставшийся TTL
Сразу после этого можно настроить на сервере сайт или приложение. Веб-сервер должен знать, что отвечает за этот домен, а сертификат HTTPS выдаётся только для домена, который уже указывает на сервер. Как это сделать, рассказано в статьях про Nginx и сертификат Let's Encrypt.
Если домен в Cloudflare
У записей в Cloudflare есть переключатель проксирования. Если он включён, dig покажет не адрес вашего сервера, а адреса Cloudflare, и через домен будут работать только сайты. Подключаться по SSH и к другим службам придётся по IP-адресу. Если домен нужен не для сайта, выключите проксирование, чтобы запись работала в режиме DNS only.
Частые вопросы
Запись создана, а домен всё ещё не открывается
- Проверьте, что запись создана там, куда указывают NS домена, командой
dig +short NS ваш-домен. - Спросите разные резолверы, например
dig @8.8.8.8 +short ваш-домениdig @1.1.1.1 +short ваш-домен. Если они уже отвечают правильно, а ваш компьютер нет, дело в кэше. - Очистите кэш DNS на компьютере. В Windows это команда
ipconfig /flushdnsв командной строке, а в macOS командаsudo dscacheutil -flushcache; sudo killall -HUP mDNSResponderв Терминале.
DNS_PROBE_FINISHED_NXDOMAIN в браузере
Браузер не нашёл для домена ни одной записи. Проверьте, что запись создана именно для этого имени, например для www, если вы открываете адрес с www, и что срок регистрации домена не закончился.
Домен открывается без www, а с www нет
Для www нужна отдельная запись. Добавьте A-запись с именем www и IP-адресом сервера или CNAME-запись www, которая указывает на основной домен.
Можно ли настроить почту на домене на своём сервере
На наших серверах закрыты порты SMTP, поэтому отправлять почту напрямую с VPS не получится. Для почты на своём домене подключите почтовый сервис, например Яндекс 360 или Gmail, и создайте записи MX и TXT по его инструкции.
Наши ресурсы
Telegram-канал: https://t.me/f3cloud_news
Официальный сайт: https://f3cloud.com