Устранение проблем DNS: различия между версиями
TTK (обсуждение | вклад) |
TTK (обсуждение | вклад) |
||
| Строка 991: | Строка 991: | ||
== См. также == | == См. также == | ||
* [[ | * [[DNS зоны cPanel|Подробно о DNS записях]] | ||
* [[Миграция DNS без простоя|Миграция DNS]] | * [[Миграция DNS без простоя|Миграция DNS]] | ||
* [[Устранение проблем DNS#Диагностика исходящей почты|Настройка SPF/DKIM/DMARC]] | * [[Устранение проблем DNS#Диагностика исходящей почты|Настройка SPF/DKIM/DMARC]] | ||
Текущая версия от 16:53, 27 января 2026
Устранение проблем DNS
Это практическое руководство по диагностике и устранению наиболее распространенных проблем DNS в cPanel.
Методология диагностики
При возникновении проблем с DNS следуйте системному подходу:
- Определите симптом - что именно не работает
- Изолируйте проблему - DNS, веб-сервер или что-то еще?
- Соберите информацию - логи, команды проверки
- Проверьте гипотезы - от простого к сложному
- Примените решение - исправьте проблему
- Проверьте результат - убедитесь, что работает
- Документируйте - запишите решение для будущего
Инструменты диагностики
Командная строка
dig (рекомендуется)
# Основной запрос
dig example.com
# Конкретный тип записи
dig example.com A
dig example.com MX
dig example.com TXT
dig example.com NS
# Короткий ответ (только IP)
dig example.com +short
# Трассировка (full path)
dig example.com +trace
# Обратный DNS
dig -x 192.0.2.1
# Проверка через конкретный DNS сервер
dig @8.8.8.8 example.com
dig @1.1.1.1 example.com
dig @ns1.example.com example.com
# Все записи
dig example.com ANY +noall +answer
nslookup
# Простой запрос
nslookup example.com
# Конкретный тип
nslookup -type=mx example.com
nslookup -type=txt example.com
nslookup -type=ns example.com
# Через конкретный DNS
nslookup example.com 8.8.8.8
host
# Быстрая проверка
host example.com
# Детальная информация
host -a example.com
# Конкретный тип
host -t mx example.com
host -t txt example.com
Онлайн инструменты
- WhatsMyDNS.net - глобальная проверка DNS
- MXToolbox.com - комплексная проверка DNS, MX, Blacklist
- DNSChecker.org - проверка распространения DNS
- IntoDNS.com - детальный анализ DNS конфигурации
- DNS Lookup Tool - множественные запросы
- ViewDNS.info - обратный DNS, история DNS
В cPanel
- Track DNS - проверка DNS записей
- Zone Editor - просмотр и редактирование зоны
- Email Deliverability - проверка SPF/DKIM/DMARC
- SSL/TLS Status - проверка SSL и DNS
Проблема 1: Домен не открывается
Симптомы
- Браузер показывает "Сайт недоступен"
- "DNS_PROBE_FINISHED_NXDOMAIN"
- "ERR_NAME_NOT_RESOLVED"
- Timeout при попытке открыть сайт
Диагностика
# Шаг 1: Проверка DNS резолва
dig example.com +short
# Если ничего не возвращает - DNS проблема
# Если возвращает IP - проблема не в DNS
Причина 1.1: A запись отсутствует
Проверка:
dig example.com A +short
# Пусто или NXDOMAIN
Решение:
- Войдите в cPanel → Zone Editor
- Нажмите Manage напротив домена
- Найдите A запись для домена
- Если отсутствует, добавьте:
- Name:
@илиexample.com. - Type: A
- Address: IP адрес вашего сервера
- Name:
- Нажмите Add Record
Также добавьте для www:
www.example.com. 14400 IN A 192.0.2.1
Причина 1.2: NS записи неправильные
Проверка:
# Проверка NS записей
dig example.com NS +short
# Сравните с NS у регистратора
whois example.com | grep "Name Server"
Решение:
- Войдите в панель регистратора домена
- Найдите раздел Nameservers / DNS
- Убедитесь, что NS указывают на правильные серверы
- Типично для cPanel:
ns10.p3.ru ns11.p3.ru
- Сохраните изменения
- Ожидайте распространения: 24-48 часов
Причина 1.3: DNS кэш
Проверка:
# Проверка через разные DNS
dig @8.8.8.8 example.com +short # Google DNS
dig @1.1.1.1 example.com +short # Cloudflare DNS
dig @your-isp-dns example.com +short # Ваш провайдер
Если Google/Cloudflare показывают правильный IP, а ISP - нет, проблема в кэше провайдера.
Решение:
# Очистка локального DNS кэша
# Windows
ipconfig /flushdns
# macOS
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
# Linux (systemd)
sudo systemd-resolve --flush-caches
# Linux (nscd)
sudo /etc/init.d/nscd restart
# Браузер (Chrome)
# Откройте: chrome://net-internals/#dns
# Нажмите "Clear host cache"
Причина 1.4: Домен не зарегистрирован или истек
Проверка:
whois example.com | grep -i "expir"
# или
whois example.com | head -20
Решение:
- Продлите регистрацию домена у регистратора
- После оплаты домен восстанавливается в течение 24-72 часов
Проблема 2: Почта не работает
Симптомы
- Не получаете входящие письма
- Отправленные письма не доходят
- "User unknown" ошибки
- Письма попадают в спам
Диагностика входящей почты
Шаг 1: Проверка MX записей
# Проверка MX
dig example.com MX +short
# Должно показать:
# 0 mail.example.com.
Если MX записей нет:
- cPanel → Zone Editor → Manage
- Добавьте MX запись:
example.com. 14400 IN MX 0 mail.example.com.
- Добавьте A запись для mail:
mail.example.com. 14400 IN A 192.0.2.1
Шаг 2: Проверка доступности почтового сервера
# Проверка портов
telnet mail.example.com 25 # SMTP
telnet mail.example.com 587 # Submission
telnet mail.example.com 993 # IMAPS
telnet mail.example.com 995 # POP3S
# Или через nc
nc -zv mail.example.com 25
nc -zv mail.example.com 993
# Если "Connection refused" - сервер не слушает
Если порты закрыты:
- Обратитесь к хостинг-провайдеру
- Проверьте firewall настройки
- Убедитесь, что почтовый сервер запущен
Шаг 3: Проверка email аккаунтов
- cPanel → Email Accounts
- Убедитесь, что аккаунт существует
- Проверьте квоту (не переполнен ли ящик)
Шаг 4: Проверка Email Routing
- cPanel → Email Routing
- Выберите домен
- Убедитесь, что выбрано:
- Automatically Detect Configuration (рекомендуется)
- или Local Mail Exchanger (если почта на этом сервере)
Диагностика исходящей почты
Проверка SPF записи
# Проверка SPF
dig example.com TXT +short | grep spf
# Должно быть что-то вроде:
# "v=spf1 a mx ~all"
Если SPF отсутствует:
- cPanel → Zone Editor → Manage
- Добавьте TXT запись:
example.com. 14400 IN TXT "v=spf1 a mx ip4:192.0.2.1 ~all"
Исправление SPF:
- ~all - soft fail (рекомендуется)
- -all - hard fail (строго, может блокировать легитимную почту)
- include: - добавьте внешние сервисы (Gmail, Office365)
Проверка DKIM
# Проверка DKIM
dig default._domainkey.example.com TXT +short
Если DKIM отсутствует:
- cPanel → Email Deliverability
- Нажмите Manage напротив домена
- В разделе DKIM нажмите Install the DKIM Keys
- Ключи будут созданы автоматически
Проверка DMARC
# Проверка DMARC
dig _dmarc.example.com TXT +short
Если DMARC отсутствует:
- cPanel → Zone Editor → Manage
- Добавьте TXT запись:
_dmarc.example.com. 14400 IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
Проверка в Blacklist
Используйте MXToolbox Blacklist Check:
- Введите IP вашего почтового сервера
- Проверьте списки блокировки
- Если в blacklist - подайте заявку на удаление
Типичные blacklists:
- Spamhaus
- SpamCop
- SORBS
- Barracuda
Почта попадает в спам
Чек-лист: - [ ] SPF запись настроена правильно - [ ] DKIM включен и работает - [ ] DMARC политика установлена - [ ] Обратный DNS (PTR) настроен - [ ] IP не в blacklist - [ ] From адрес совпадает с доменом - [ ] Не используются спам-слова в теме - [ ] Соотношение текста к изображениям нормальное - [ ] Есть возможность отписки
Проверка email через Mail Tester:
- Перейдите на Mail-Tester.com
- Отправьте тестовое письмо на предоставленный адрес
- Просмотрите оценку и рекомендации
Проблема 3: Поддомен не работает
Симптомы
- blog.example.com не открывается
- "DNS_PROBE_FINISHED_NXDOMAIN"
Диагностика
# Проверка A записи поддомена
dig blog.example.com A +short
# Если пусто - A запись отсутствует
Решение
- cPanel → Domains
- Убедитесь, что поддомен создан
- Или создайте новый:
- Нажмите Create A New Domain
- Введите:
blog.example.com - Укажите Document Root
- Нажмите Submit
- Проверьте DNS запись:
- Zone Editor → Manage
- Убедитесь в наличии A записи:
blog.example.com. 14400 IN A 192.0.2.1
Проблема 4: Медленный DNS резолв
Симптомы
- Сайт загружается медленно
- Первое открытие долгое, последующие быстрые
- dig показывает большое Query time
Диагностика
# Проверка времени ответа DNS
dig example.com | grep "Query time"
# Нормально: 10-50ms
# Медленно: 100-500ms
# Очень медленно: >500ms
Причины и решения
Высокий TTL на NS записях
Проверка:
dig example.com NS
# Смотрите на TTL NS записей
Решение:
- NS записи обычно имеют TTL 48-72 часа (это нормально)
- Не снижайте TTL NS без необходимости
DNS серверы хостинга медленные
Решение:
- Используйте внешние DNS (Cloudflare, Route53)
- Переключите на managed DNS
Географическая удаленность DNS серверов
Решение:
- Используйте DNS с Anycast (Cloudflare, Google Cloud DNS)
- Или CDN с DNS
Проблемы на стороне провайдера
Временное решение: Используйте публичные DNS:
- Google: 8.8.8.8, 8.8.4.4
- Cloudflare: 1.1.1.1, 1.0.0.1
- Quad9: 9.9.9.9
В Windows:
- Панель управления → Сеть и Интернет
- Центр управления сетями
- Изменение параметров адаптера
- Свойства → IPv4
- Использовать следующие адреса DNS-серверов
В macOS:
- System Preferences → Network
- Advanced → DNS
- Добавьте DNS серверы
В Linux: Отредактируйте /etc/resolv.conf:
nameserver 1.1.1.1 nameserver 8.8.8.8
Проблема 5: SERVFAIL ошибка
Симптомы
- dig возвращает SERVFAIL
- Домен резолвится непостоянно
Диагностика
# Проверка с детальным выводом
dig example.com
# В HEADER смотрите status: SERVFAIL
Причины и решения
DNSSEC неправильно настроен
Проверка:
# Проверка DNSSEC
dig example.com +dnssec
# Если показывает SERVFAIL - проблема в DNSSEC
Решение:
- Если DNSSEC не используется - отключите у регистратора
- Если используется - проверьте DS записи у регистратора
- cPanel → Zone Editor → Advanced → DNSSEC
- Убедитесь, что DS записи совпадают
Циклическая зависимость CNAME
Пример проблемной конфигурации:
www.example.com. IN CNAME blog.example.com. blog.example.com. IN CNAME www.example.com.
Решение:
- Исправьте цепочку CNAME
- CNAME должен указывать на A запись, не на другой CNAME
Проблема с NS серверами
Проверка:
# Проверка доступности NS серверов
dig @ns10.p3.ru example.com
dig @ns11.p3.ru example.com
Если NS недоступен:
- Обратитесь к хостинг-провайдеру
Отсутствует SOA запись
Проверка:
dig example.com SOA
Решение:
- SOA создается автоматически cPanel
- Если отсутствует - пересоздайте зону через WHM (требуется root)
Проблема 6: Wildcard SSL не работает
Симптомы
- SSL работает для основного домена
- SSL не работает для поддоменов
- Ошибка "Certificate name mismatch"
Диагностика
# Проверка сертификата
openssl s_client -connect blog.example.com:443 -servername blog.example.com | openssl x509 -noout -text | grep DNS
# Смотрите на Subject Alternative Name
Причины и решения
Wildcard A запись вместо конкретных
Проблемная конфигурация:
*.example.com. IN A 192.0.2.1
AutoSSL не может проверить wildcard домены через HTTP-01 challenge.
Решение: Создайте конкретные A записи для каждого поддомена:
blog.example.com. 14400 IN A 192.0.2.1 shop.example.com. 14400 IN A 192.0.2.1 api.example.com. 14400 IN A 192.0.2.1
Нужен wildcard сертификат
Решение:
- Приобретите wildcard SSL сертификат
- Или используйте Let's Encrypt DNS-01 challenge (требует API доступа к DNS)
Проблема 7: Изменения DNS не применяются
Симптомы
- Изменили A запись, но сайт открывает старый сервер
- dig показывает старый IP
Диагностика
# Проверка на разных DNS серверах
dig @8.8.8.8 example.com +short
dig @1.1.1.1 example.com +short
dig @ns10.p3.ru example.com +short
# Если ns10.p3.ru показывает новый IP,
# а Google DNS - старый, проблема в TTL/кэше
Причины и решения
Старый TTL еще не истек
Проверка:
# Проверка TTL
dig example.com | grep -A1 "ANSWER SECTION"
# Смотрите на число после домена (TTL в секундах)
Решение:
- Подождите истечения старого TTL
- В следующий раз снижайте TTL заранее (за 48-72 часа)
Расчет времени ожидания:
- TTL 14400 = 4 часа
- TTL 3600 = 1 час
- TTL 300 = 5 минут
DNS кэш провайдера
Решение:
- Используйте другой DNS (8.8.8.8, 1.1.1.1)
- Или дождитесь истечения кэша
- Очистите локальный DNS кэш (см. выше)
Изменения внесены не туда
Проверка:
# Проверка NS серверов
dig example.com NS +short
Убедитесь:
- Вы меняете DNS на правильных NS серверах
- NS в зоне совпадают с NS у регистратора
- Если NS разные - измените в правильном месте
Propagation еще не завершился
Проверка через WhatsMyDNS:
- Откройте WhatsMyDNS.net
- Введите домен
- Выберите тип записи (A)
- Посмотрите распространение по миру
Обычно:
- 50% за 2-4 часа
- 90% за 12-24 часа
- 100% за 48-72 часа
Проблема 8: CNAME не работает
Симптомы
- CNAME запись создана, но не резолвится
- dig показывает NXDOMAIN
Диагностика
# Проверка CNAME
dig www.example.com CNAME +short
# Проверка цепочки
dig www.example.com +trace
Причины и решения
CNAME для корня домена (@)
Проблема:
example.com. IN CNAME other-domain.com. # НЕПРАВИЛЬНО!
Решение: CNAME нельзя использовать для корня домена. Используйте A запись:
example.com. 14400 IN A 192.0.2.1
CNAME конфликтует с другими записями
Проблема:
www.example.com. IN A 192.0.2.1 www.example.com. IN CNAME other.com. # КОНФЛИКТ!
Решение:
- Удалите A запись, оставьте только CNAME
- Или удалите CNAME, оставьте A запись
CNAME указывает на несуществующий домен
Проверка:
# Если CNAME указывает на target.com
dig target.com A +short
# Если пусто - target.com не существует
Решение:
- Исправьте CNAME на правильный домен
- Или используйте A запись напрямую
Слишком длинная цепочка CNAME
Проблема:
www.example.com. IN CNAME cdn.example.com. cdn.example.com. IN CNAME cdn2.example.com. cdn2.example.com. IN CNAME cdn3.example.com. ... (10+ уровней)
Решение:
- Максимум 10-16 уровней CNAME (зависит от резолвера)
- Упростите цепочку
- Используйте прямой A запись где возможно
Проблема 9: CAA блокирует SSL
Симптомы
- Let's Encrypt не может выпустить сертификат
- Ошибка "CAA records forbid issuance"
Диагностика
# Проверка CAA записей
dig example.com CAA +short
Решения
CAA запрещает Let's Encrypt
Проверка:
dig example.com CAA
# Смотрите на issue и issuewild теги
Решение:
- cPanel → Zone Editor → Manage
- Найдите CAA записи
- Добавьте Let's Encrypt:
example.com. 14400 IN CAA 0 issue "letsencrypt.org" example.com. 14400 IN CAA 0 issuewild "letsencrypt.org"
CAA установлен на родительском домене
Проверка:
# CAA проверяется вверх по дереву
dig subdomain.example.com CAA
dig example.com CAA
Решение:
- Добавьте CAA на уровне, где он блокирует
- Или удалите ограничивающие CAA записи
CAA с пустым значением (полный запрет)
Проблема:
example.com. IN CAA 0 issue ";"
Это запрещает ЛЮБУЮ выдачу сертификатов.
Решение:
- Удалите эту CAA запись
- Или замените на разрешающую:
example.com. IN CAA 0 issue "letsencrypt.org"
Проблема 10: External DNS не синхронизируется
Симптомы
- Используете Cloudflare/Route53/другой DNS
- Изменения в cPanel не применяются
Решение
Если вы используете внешний DNS (не cPanel):
- НЕ меняйте DNS в cPanel Zone Editor
- Все изменения делайте в:
- Cloudflare Dashboard
- AWS Route53 Console
- Google Cloud DNS
- И т.д.
Если NS указывают на Cloudflare:
- Все DNS управляется через Cloudflare
- cPanel Zone Editor не действует
Проверка NS:
dig example.com NS +short
Если показывает cloudflare.com или awsdns.com - используете внешний DNS.
Проблема 11: IPv6 (AAAA) не работает
Симптомы
- IPv4 работает, IPv6 нет
- Некоторые пользователи не могут открыть сайт
Диагностика
# Проверка AAAA записи
dig example.com AAAA +short
# Проверка доступности по IPv6
ping6 example.com
curl -6 https://example.com
Решения
AAAA запись отсутствует
Решение:
- Узнайте IPv6 адрес сервера
- cPanel → Zone Editor → Manage
- Добавьте AAAA запись:
example.com. 14400 IN AAAA 2001:db8:85a3::8a2e:370:7334
IPv6 на сервере отключен
Проверка:
# SSH на сервер
ip -6 addr show
Решение:
- Обратитесь к хостинг-провайдеру для включения IPv6
Firewall блокирует IPv6
Решение:
- Проверьте правила firewall для IPv6
- Убедитесь, что порты 80/443 открыты для IPv6
Полезные команды для диагностики
Комплексная проверка домена
#!/bin/bash
# Скрипт комплексной проверки DNS
DOMAIN="example.com"
echo "=== NS Records ==="
dig $DOMAIN NS +short
echo -e "\n=== A Records ==="
dig $DOMAIN A +short
echo -e "\n=== AAAA Records ==="
dig $DOMAIN AAAA +short
echo -e "\n=== MX Records ==="
dig $DOMAIN MX +short
echo -e "\n=== TXT Records (SPF/DKIM/DMARC) ==="
dig $DOMAIN TXT +short
dig default._domainkey.$DOMAIN TXT +short
dig _dmarc.$DOMAIN TXT +short
echo -e "\n=== CAA Records ==="
dig $DOMAIN CAA +short
echo -e "\n=== Query Time ==="
dig $DOMAIN | grep "Query time"
echo -e "\n=== Trace ==="
dig $DOMAIN +trace | tail -20
Мониторинг DNS изменений
# Мониторинг распространения каждые 5 минут
while true; do
clear
echo "=== $(date) ==="
dig example.com A +short
dig @8.8.8.8 example.com A +short
dig @1.1.1.1 example.com A +short
sleep 300
done
Проверка всех поддоменов
#!/bin/bash
# Проверка списка поддоменов
DOMAIN="example.com"
SUBDOMAINS=("www" "mail" "ftp" "blog" "shop" "api")
for sub in "${SUBDOMAINS[@]}"; do
echo "=== $sub.$DOMAIN ==="
dig $sub.$DOMAIN A +short
echo ""
done
Чек-лист диагностики
Используйте этот чек-лист при возникновении проблем:
Базовая проверка
- [ ] Домен зарегистрирован и не истек - [ ] NS записи правильные - [ ] A запись существует и указывает на правильный IP - [ ] DNS кэш очищен локально - [ ] Проверка через разные DNS серверы (8.8.8.8, 1.1.1.1)
Проверка почты
- [ ] MX записи настроены - [ ] Mail сервер доступен (порты 25, 587, 993, 995) - [ ] SPF запись существует - [ ] DKIM включен - [ ] DMARC настроен - [ ] IP не в blacklist - [ ] PTR (обратный DNS) настроен
Проверка SSL
- [ ] A запись для домена существует - [ ] SSL сертификат установлен - [ ] CAA записи не блокируют - [ ] Для wildcard SSL - конкретные A записи поддоменов
Проверка поддоменов
- [ ] Поддомен создан в cPanel - [ ] A запись для поддомена существует - [ ] Document Root правильный - [ ] SSL для поддомена настроен (если нужен)
После изменений DNS
- [ ] Изменения сделаны на правильных NS серверах - [ ] TTL учтен (ожидание старого TTL) - [ ] Проверка через WhatsMyDNS.net - [ ] Мониторинг распространения - [ ] Проверка функционала после полного распространения
Когда обращаться в поддержку
Обратитесь к хостинг-провайдеру если:
- NS серверы недоступны
- Требуется настройка PTR (обратный DNS)
- Проблемы с портами (25, 80, 443)
- Веб-сервер не запускается
- Нужны root права для изменений
- DNSSEC проблемы
- Нужно включить IPv6
- Миграция между серверами
- Восстановление после взлома
Профилактика проблем
- Документируйте изменения - ведите changelog DNS
- Снижайте TTL перед изменениями - за 48-72 часа
- Тестируйте перед применением - используйте hosts файл
- Делайте резервные копии - экспортируйте зону регулярно
- Мониторьте DNS - настройте алерты на изменения
- Используйте мониторинг uptime - UptimeRobot, Pingdom
- Проверяйте срок действия домена - настройте напоминания
- Следите за blacklists - регулярно проверяйте IP
См. также
Внешние ссылки
- WhatsMyDNS - Global DNS Checker
- MXToolbox - DNS & Email Diagnostics
- IntoDNS - DNS Health Check
- DNS Checker - DNS Propagation
- Mail Tester - Email Deliverability
---
Последнее обновление: 30 январь 2026
