Домены LinuxNginx / Apache / панель хостингаDNS / TLS

Почему по IPv6 показывается соседний сайт вместо нужного домена

  • Обновлено
  • Чтение ≈ 4 минуты
  • Нужны права администратора

Краткий ответ

Браузер может выбирать AAAA-адрес и попадать на другой сервер либо в IPv6-виртуальный хост по умолчанию. При этом A-запись и сайт по IPv4 работают правильно. Исправлять необходимо адреса и настройки слушающего IPv6-веб-сервера, а не очищать браузерный кэш.

В этой статье
  1. Что происходит и когда применима инструкция
  2. Причины: как различить похожие случаи
  3. Диагностика и пошаговое устранение
  4. Как проверить, что неисправность устранена
  5. Если не получилось и как отменить правки

#Что происходит и когда применима инструкция

Браузер может выбирать AAAA-адрес и попадать на другой сервер либо в IPv6-виртуальный хост по умолчанию. При этом A-запись и сайт по IPv4 работают правильно. Исправлять необходимо адреса и настройки слушающего IPv6-веб-сервера, а не очищать браузерный кэш.

#Причины: как различить похожие случаи

Возможная причинаКак узнатьЧто делать
AAAA указывает на чужой серверIPv6-адрес в DNS не соответствует фактическому размещению домена.dig AAAA и сетевые адреса хостинга отличаются.Исправить AAAA у авторитетного DNS-поставщика.
Нет виртуального хоста для IPv6Nginx слушает 443 только по IPv4 для имени, а по IPv6 отдаёт default_server.При прямом IPv6-подключении отображается соседний сайт/чужой сертификат.Добавить правильный IPv6 listen и server_name для конкретного хоста.
IPv6 направлен на другой узел или проксиБалансировщик/CDN имеет отдельные правила для AAAA.Прямой сервер отличается от публичного, IPv4/IPv6 заканчивают TLS на разных узлах.Согласовать целевой узел IPv6 и его конфигурацию HTTPS.

#Диагностика и пошаговое устранение

  1. 1. Воспроизведите разницу без отключения IPv6На компьютере с действующим IPv6 откройте сайт в обычном браузере, затем из Linux/ macOS терминала выполните curl -4 и curl -6 отдельно. Не считайте ошибку Network is unreachable доказательством проблем сайта: она может означать отсутствие IPv6 у вашей сети. Отличие по заголовкам, сертификату или содержимому фиксируйте снимком/текстом.
    Linux · Терминал (Bash)Команда
    example.com заменить настоящим доменом; при отсутствии IPv6 тестируйте с независимого узла, где он есть.
    curl -4 -I https://example.com/
    curl -6 -I https://example.com/
  1. 2. Сравните A и AAAA в DNSОткройте терминал с dig и получите записи. A должен указывать на IPv4 действующего сервера или прокси, AAAA — на его IPv6-адрес. Сверьте данные с личным кабинетом хостинга и сетью узла. Если AAAA устарела, не удаляйте её вслепую: сначала выясните, где должен работать IPv6, и зафиксируйте TTL для отката.
  2. Замените домен; эти запросы только читают DNS
    Linux · Терминал (Bash)Команда
    Замените домен; эти запросы только читают DNS.
    dig +short A example.com
    dig +short AAAA example.com
  1. 3. Проверьте нужный узел напрямую по IPv6Если известно правильное IPv6 сервера, укажите его в квадратных скобках в параметре --resolve (адрес из документационного диапазона здесь лишь образец). Так вы проверите выбранный сервер с правильным Host и TLS SNI без изменения DNS. Если сертификат или сайт неверен прямо на этом узле, первопричина в его виртуальном хосте; если на узле всё правильно, проверьте публичную AAAA/CDN.
  2. Дополнительная команда по теме
    Linux · Терминал (Bash)Команда
    И домен, и адрес 2001:db8::10 заменить реально выданным IPv6; примерный адрес не маршрутизируется в Интернете.
    curl -I --resolve "example.com:443:[2001:db8::10]" https://example.com/
  1. 4. Посмотрите, что Nginx слушает на IPv6По SSH запустите просмотр конфигурации и найдите server_name example.com и listen [::]:443 ssl. Пара listen 443 ssl может обслуживать только IPv4 — это зависит от конфигурации, поэтому не предполагайте автоматическое покрытие IPv6. Если работает Apache или панель, сверяйте соответствующие виртуальные хосты через её интерфейс, а не добавляйте Nginx поверх Apache.
    Linux · Терминал (Bash)КомандаНужен sudo
    Только чтение конфигурации Nginx; не публикуйте секреты из вывода.
    sudo nginx -T
  1. 5. Исправьте только адрес или конкретный виртуальный хостКогда AAAA указывает не туда, измените соответствующую AAAA-запись в панели авторитетного DNS и сохраните прежнее значение для возврата. Когда AAAA верна, но сервер выдаёт соседний сайт, сделайте копию конфига и настройте правильный server_name, IPv6 listen и сертификат для своего домена. Проверьте отсутствие конфликтующих блоков на том же IP:порту; не меняйте глобальный default_server ради одного сайта.
  1. 6. Проверьте Nginx и примените безопасноПосле точечной правки выполните sudo nginx -t; если синтаксис корректен — sudo systemctl reload nginx. При неуспехе теста верните конфиг из копии, не применяя ошибочную версию. Если правка сделана через панель, используйте её штатную кнопку проверки/применения; прямые изменения могут быть перезаписаны.
    Linux · Терминал (Bash)С осторожностьюНужен sudo
    Вторая команда только при успешном тесте, только если Nginx управляется systemd. Команда перезагрузки выполняется только при успешной проверке конфигурации (оператор &&). При ошибке исправьте конфигурацию и повторите проверку; не запускайте перезагрузку вручную.
    sudo nginx -t && sudo systemctl reload nginx

    Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

  1. 7. Проверьте HTTPS и HTTP на обоих семействах адресовПовторите запросы curl -4 -I и curl -6 -I к одной странице и сравните финальные URL, заголовки и SSL-имена. Если разница осталась только у отдельных посетителей, проверьте их DNS-кэш и TTL старой AAAA; не советуйте отключать IPv6 как способ постоянного решения.
  1. 8. Зафиксируйте исправление и способ возвратаЗапишите прежнюю/новую AAAA, имя файла конфигурации и время применения, чтобы понимать, какой узел обслуживает IPv6. Если результат ухудшился, верните сохранённый конфиг и выполните проверку/reload либо восстановите прежнюю AAAA у DNS-поставщика. Если через IPv6 отвечает CDN, его правила и сертификаты надо корректировать у провайдера.

#Как проверить, что неисправность устранена

Оба запроса через IPv4/IPv6 доставляют тот же сайт и публично действующий сертификат для имени. Если у клиента нет IPv6 — результат тестируют с другой сети, вместо того чтобы делать вывод по ошибке соединения.

#Если не получилось и как отменить правки

Восстановите прежнюю AAAA в панели DNS или исходный блок Nginx из резервной копии и проверьте конфигурацию перед reload. Не редактируйте чужой виртуальный хост и не отключайте поддержку IPv6 целиком.

Если причина не установлена, соберите точный текст ошибки, время, имя домена, результаты проверок без паролей и приватных ключей. Передайте их ответственному администратору или поддержке регистратора, DNS-провайдера либо хостинга. Не повторяйте опасные изменения без резервной копии.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.