Debian 12: настройка домена и DNS с нуля
Сайт по IP-адресу выглядит несолидно и не запоминается — людям нужен домен. Настройка домена и DNS на Debian 12 с нуля связывает ваше доменное имя с сервером: браузер посетителя узнаёт IP по имени, попадает на ваш сервер и открывает нужный сайт. Мы разберём, как прописать DNS-записи у регистратора, привязать домен к серверу через виртуальный хост Nginx и выпустить бесплатный SSL-сертификат, чтобы сайт открывался по защищённому HTTPS.
Содержание
Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Как работает DNS простыми словами
DNS — это телефонная книга интернета. Люди помнят имена вроде example.com, а серверы общаются по числовым IP-адресам. Когда посетитель вводит домен, его устройство спрашивает у системы DNS: «какой IP у этого имени?» — и получает адрес вашего сервера, после чего идёт именно туда. Без этой связки браузер просто не знал бы, к какой машине обращаться.
Ключевую роль играет A-запись — она сопоставляет доменному имени конкретный IPv4-адрес. Есть и другие типы: AAAA для адресов IPv6, CNAME для псевдонимов, MX для почты. Но для запуска сайта достаточно понять и настроить A-запись. Важный нюанс, который экономит нервы новичкам: изменения DNS распространяются по миру не мгновенно, а от нескольких минут до суток — это называется распространением, и его нельзя ускорить. Поэтому не паникуйте, если сразу после настройки сайт открывается не везде. Разберём процесс по шагам.
Прописываем A-запись у регистратора
Настройка DNS делается не на сервере, а в панели управления вашим доменом — у регистратора или DNS-провайдера, где вы покупали имя. Зайдите в раздел управления DNS-записями и создайте A-запись, указав в ней IP-адрес вашего VPS. Обычно заводят две записи: одну для «голого» домена (в поле имени ставят символ @ или оставляют пустым), вторую — для поддомена www.
Значение TTL (time to live) определяет, как долго ответ кэшируется; на этапе настройки удобно поставить небольшое значение вроде 300 секунд, чтобы изменения применялись быстрее, а позже вернуть стандартные несколько часов. После сохранения записи проверьте, что мир начал видеть новый IP, командой с сервера или своего компьютера: dig +short example.com. Если в ответ приходит IP вашего сервера — DNS настроен верно и распространение началось. Если пусто или старый адрес — подождите и проверьте ещё раз.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS на Debian 12Готовим сервер и виртуальный хост
Пока распространяются DNS-записи, настройте сервер принимать запросы для вашего домена. Если веб-сервер ещё не стоит, поставьте Nginx:
apt install -y nginx
Если вы используете фаервол UFW, откройте веб-порты командой sudo ufw allow 'Nginx Full'. Теперь создайте виртуальный хост — конфиг, который говорит Nginx, какой сайт отдавать для вашего домена. В файле /etc/nginx/sites-available/example.com опишите серверный блок с директивой server_name example.com www.example.com; и корнем сайта root /var/www/example.com;. Директива server_name — это и есть привязка домена к конкретному сайту: по ней Nginx понимает, что запросы для example.com надо обслуживать именно этим блоком. Так на одном сервере уживаются несколько доменов, каждый со своим виртуальным хостом.
Включаем сайт и проверяем
Активируйте конфиг символической ссылкой, проверьте синтаксис и перезагрузите Nginx:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Команда nginx -t обязательна перед каждой перезагрузкой: она ловит опечатки в конфиге до того, как они уронят работающий сервер. Если ответ «syntax is ok» и «test is successful», смело применяйте через reload — он обновляет конфигурацию без разрыва текущих соединений. Положите в корень сайта простой index.html и, когда DNS распространится, откройте http://example.com в браузере. Появившаяся страница подтверждает, что цепочка «домен → DNS → сервер → сайт» замкнулась и работает целиком.
Выпускаем бесплатный SSL-сертификат
Современный сайт обязан открываться по HTTPS: без него браузеры показывают предупреждение «не защищено», а поисковики понижают в выдаче. Бесплатные сертификаты выдаёт Let's Encrypt, а автоматизирует всё утилита certbot:
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.com -d www.example.com
Certbot сам свяжется с Let's Encrypt, подтвердит, что домен принадлежит вам (проверив, что он указывает на этот сервер), получит сертификат и автоматически пропишет его в конфиг Nginx, настроив перенаправление с HTTP на HTTPS. Поэтому важно запускать его только после того, как DNS уже указывает на сервер, — иначе проверка владения не пройдёт. После успешного выпуска откройте https://example.com и убедитесь, что в адресной строке появился замочек. Сертификаты Let's Encrypt действуют 90 дней, но certbot ставит задачу автопродления, так что забывать о них не придётся.
Проверяем автопродление и почтовые записи
Чтобы убедиться, что сертификат будет продлеваться сам, запустите пробное продление:
certbot renew --dry-run
Если команда отработала без ошибок, механизм автопродления настроен корректно, и HTTPS не отвалится через три месяца. Отдельно стоит сказать про почту: если планируете отправлять письма с домена, одних A-записей мало — понадобятся MX-запись, указывающая на почтовый сервер, а также записи SPF и DKIM, чтобы письма не попадали в спам. Это отдельная большая тема, но знать о ней полезно заранее: многие удивляются, почему письма с только что настроенного домена не доходят, а причина именно в отсутствии этих записей. Для обычного сайта без своей почты достаточно A-записей и HTTPS, которые мы уже настроили.
Диагностика типичных проблем
Если что-то не открывается, диагностика идёт от имени к серверу. Сначала проверьте DNS командой dig +short example.com — приходит ли правильный IP; если нет, дело в записях у регистратора или ещё не завершилось распространение. Если IP верный, а сайт не грузится, проверьте с сервера, слушает ли Nginx нужные порты (sudo ss -tulpn | grep nginx) и открыты ли они в фаерволе (sudo ufw status). Ошибку в самом Nginx покажет sudo journalctl -u nginx -n 30. Такой порядок — от DNS к фаерволу и к веб-серверу — позволяет быстро локализовать, на каком звене цепочки застрял запрос, вместо того чтобы гадать. Методичная проверка по шагам почти всегда приводит к причине за пару минут.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK, США и РФ. Оплата картой РФ и по СБП.
Арендовать VPS на Debian 12Обсудить статью, задать вопрос или начать новую тему
Есть вопрос по этой статье, идея для обсуждения или просто хотите поделиться опытом? Сообщество MAATRIX ждёт. Для общения, пожалуйста, зарегистрируйтесь в нашем личном кабинете.
Перейти в сообщество →Частые вопросы
Почему сайт открывается у меня, но не у друга?
Скорее всего, ещё идёт распространение DNS: ваш провайдер уже обновил кэш, а его — нет. Обычно всё выравнивается в течение нескольких часов, максимум за сутки.
Нужно ли платить за SSL-сертификат?
Нет, сертификаты Let's Encrypt бесплатны и полноценно поддерживаются всеми браузерами. Платные нужны лишь в редких корпоративных случаях с расширенной проверкой.
Можно ли разместить несколько доменов на одном сервере?
Да, для каждого домена создаётся свой виртуальный хост с уникальным server_name. Nginx направит запрос в нужный блок по имени домена.
Как оплатить VPS с чистым IP под домен из России?
У MAATRIX доступна оплата картой российского банка, по СБП, криптовалютой и токеном MAAT — иностранная карта не требуется.
Нужны сами нейросети для контента?
Генерируйте изображения, видео и озвучку нейросетями на falapi.io — десятки моделей в одном окне. Оплата картой РФ и по СБП.