Устранение проблем DNS: различия между версиями

Материал из wiki.p3.ru
Новая страница: «= Устранение проблем DNS = Это практическое руководство по диагностике и устранению наиболее распространенных проблем DNS в cPanel. == Методология диагностики == При возникновении проблем с DNS следуйте системному подходу: # '''Определите симптом''' - что именно...»
 
 
(не показана 1 промежуточная версия этого же участника)
Строка 991: Строка 991:
== См. также ==
== См. также ==


* [[DNS зоны в cPanel|Подробно о DNS записях]]
* [[DNS зоны cPanel|Подробно о DNS записях]]
* [[Миграция DNS без простоя|Миграция DNS]]
* [[Миграция DNS без простоя|Миграция DNS]]
* [[Email аутентификация cPanel|Настройка SPF/DKIM/DMARC]]
* [[Устранение проблем DNS#Диагностика исходящей почты|Настройка SPF/DKIM/DMARC]]
* [[SSL сертификаты cPanel|Устранение проблем SSL]]
* [[SSL/TLS сертификаты в cPanel|Устранение проблем SSL]]


== Внешние ссылки ==
== Внешние ссылки ==

Текущая версия от 16:53, 27 января 2026

Устранение проблем DNS

Это практическое руководство по диагностике и устранению наиболее распространенных проблем DNS в cPanel.

Методология диагностики

При возникновении проблем с DNS следуйте системному подходу:

  1. Определите симптом - что именно не работает
  2. Изолируйте проблему - DNS, веб-сервер или что-то еще?
  3. Соберите информацию - логи, команды проверки
  4. Проверьте гипотезы - от простого к сложному
  5. Примените решение - исправьте проблему
  6. Проверьте результат - убедитесь, что работает
  7. Документируйте - запишите решение для будущего

Инструменты диагностики

Командная строка

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

Решение:

  1. Войдите в cPanel → Zone Editor
  2. Нажмите Manage напротив домена
  3. Найдите A запись для домена
  4. Если отсутствует, добавьте:
    • Name: @ или example.com.
    • Type: A
    • Address: IP адрес вашего сервера
  5. Нажмите 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"

Решение:

  1. Войдите в панель регистратора домена
  2. Найдите раздел Nameservers / DNS
  3. Убедитесь, что NS указывают на правильные серверы
  4. Типично для cPanel:
ns10.p3.ru
ns11.p3.ru
  1. Сохраните изменения
  2. Ожидайте распространения: 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 записей нет:

  1. cPanel → Zone Editor → Manage
  2. Добавьте MX запись:
example.com.  14400  IN  MX  0  mail.example.com.
  1. Добавьте 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 аккаунтов

  1. cPanel → Email Accounts
  2. Убедитесь, что аккаунт существует
  3. Проверьте квоту (не переполнен ли ящик)

Шаг 4: Проверка Email Routing

  1. cPanel → Email Routing
  2. Выберите домен
  3. Убедитесь, что выбрано:
    • Automatically Detect Configuration (рекомендуется)
    • или Local Mail Exchanger (если почта на этом сервере)

Диагностика исходящей почты

Проверка SPF записи

# Проверка SPF
dig example.com TXT +short | grep spf

# Должно быть что-то вроде:
# "v=spf1 a mx ~all"

Если SPF отсутствует:

  1. cPanel → Zone Editor → Manage
  2. Добавьте 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 отсутствует:

  1. cPanel → Email Deliverability
  2. Нажмите Manage напротив домена
  3. В разделе DKIM нажмите Install the DKIM Keys
  4. Ключи будут созданы автоматически

Проверка DMARC

# Проверка DMARC
dig _dmarc.example.com TXT +short

Если DMARC отсутствует:

  1. cPanel → Zone Editor → Manage
  2. Добавьте TXT запись:
_dmarc.example.com.  14400  IN  TXT  "v=DMARC1; p=none; rua=mailto:dmarc@example.com"

Проверка в Blacklist

Используйте MXToolbox Blacklist Check:

  1. Введите IP вашего почтового сервера
  2. Проверьте списки блокировки
  3. Если в blacklist - подайте заявку на удаление

Типичные blacklists:

  • Spamhaus
  • SpamCop
  • SORBS
  • Barracuda

Почта попадает в спам

Чек-лист: - [ ] SPF запись настроена правильно - [ ] DKIM включен и работает - [ ] DMARC политика установлена - [ ] Обратный DNS (PTR) настроен - [ ] IP не в blacklist - [ ] From адрес совпадает с доменом - [ ] Не используются спам-слова в теме - [ ] Соотношение текста к изображениям нормальное - [ ] Есть возможность отписки

Проверка email через Mail Tester:

  1. Перейдите на Mail-Tester.com
  2. Отправьте тестовое письмо на предоставленный адрес
  3. Просмотрите оценку и рекомендации

Проблема 3: Поддомен не работает

Симптомы

  • blog.example.com не открывается
  • "DNS_PROBE_FINISHED_NXDOMAIN"

Диагностика

# Проверка A записи поддомена
dig blog.example.com A +short

# Если пусто - A запись отсутствует

Решение

  1. cPanel → Domains
  2. Убедитесь, что поддомен создан
  3. Или создайте новый:
    1. Нажмите Create A New Domain
    2. Введите: blog.example.com
    3. Укажите Document Root
    4. Нажмите Submit
  1. Проверьте DNS запись:
    1. Zone Editor → Manage
    2. Убедитесь в наличии 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:

  1. Панель управления → Сеть и Интернет
  2. Центр управления сетями
  3. Изменение параметров адаптера
  4. Свойства → IPv4
  5. Использовать следующие адреса DNS-серверов

В macOS:

  1. System Preferences → Network
  2. Advanced → DNS
  3. Добавьте 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

Решение:

  1. Если DNSSEC не используется - отключите у регистратора
  2. Если используется - проверьте DS записи у регистратора
  3. cPanel → Zone Editor → Advanced → DNSSEC
  4. Убедитесь, что 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 кэш провайдера

Решение:

  1. Используйте другой DNS (8.8.8.8, 1.1.1.1)
  2. Или дождитесь истечения кэша
  3. Очистите локальный DNS кэш (см. выше)

Изменения внесены не туда

Проверка:

# Проверка NS серверов
dig example.com NS +short

Убедитесь:

  • Вы меняете DNS на правильных NS серверах
  • NS в зоне совпадают с NS у регистратора
  • Если NS разные - измените в правильном месте

Propagation еще не завершился

Проверка через WhatsMyDNS:

  1. Откройте WhatsMyDNS.net
  2. Введите домен
  3. Выберите тип записи (A)
  4. Посмотрите распространение по миру

Обычно:

  • 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 теги

Решение:

  1. cPanel → Zone Editor → Manage
  2. Найдите CAA записи
  3. Добавьте 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):

  1. НЕ меняйте DNS в cPanel Zone Editor
  2. Все изменения делайте в:
    • 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 запись отсутствует

Решение:

  1. Узнайте IPv6 адрес сервера
  2. cPanel → Zone Editor → Manage
  3. Добавьте 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
  • Миграция между серверами
  • Восстановление после взлома

Профилактика проблем

  1. Документируйте изменения - ведите changelog DNS
  2. Снижайте TTL перед изменениями - за 48-72 часа
  3. Тестируйте перед применением - используйте hosts файл
  4. Делайте резервные копии - экспортируйте зону регулярно
  5. Мониторьте DNS - настройте алерты на изменения
  6. Используйте мониторинг uptime - UptimeRobot, Pingdom
  7. Проверяйте срок действия домена - настройте напоминания
  8. Следите за blacklists - регулярно проверяйте IP

См. также

Внешние ссылки

---

Последнее обновление: 30 январь 2026