#Что происходит и когда применима инструкция
Браузер может выбирать 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. Воспроизведите разницу без отключения 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/
- 2. Сравните A и AAAA в DNSОткройте терминал с
digи получите записи. A должен указывать на IPv4 действующего сервера или прокси, AAAA — на его IPv6-адрес. Сверьте данные с личным кабинетом хостинга и сетью узла. Если AAAA устарела, не удаляйте её вслепую: сначала выясните, где должен работать IPv6, и зафиксируйте TTL для отката. - Замените домен; эти запросы только читают DNSLinux · Терминал (Bash)КомандаЗамените домен; эти запросы только читают DNS.
dig +short A example.comdig +short AAAA example.com
- 3. Проверьте нужный узел напрямую по IPv6Если известно правильное IPv6 сервера, укажите его в квадратных скобках в параметре
--resolve(адрес из документационного диапазона здесь лишь образец). Так вы проверите выбранный сервер с правильным Host и TLS SNI без изменения DNS. Если сертификат или сайт неверен прямо на этом узле, первопричина в его виртуальном хосте; если на узле всё правильно, проверьте публичную AAAA/CDN. - Дополнительная команда по темеLinux · Терминал (Bash)КомандаИ домен, и адрес 2001:db8::10 заменить реально выданным IPv6; примерный адрес не маршрутизируется в Интернете.
curl -I --resolve "example.com:443:[2001:db8::10]" https://example.com/
- 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
- 5. Исправьте только адрес или конкретный виртуальный хостКогда AAAA указывает не туда, измените соответствующую AAAA-запись в панели авторитетного DNS и сохраните прежнее значение для возврата. Когда AAAA верна, но сервер выдаёт соседний сайт, сделайте копию конфига и настройте правильный
server_name, IPv6listenи сертификат для своего домена. Проверьте отсутствие конфликтующих блоков на том же IP:порту; не меняйте глобальный default_server ради одного сайта.
- 6. Проверьте Nginx и примените безопасноПосле точечной правки выполните
sudo nginx -t; если синтаксис корректен —sudo systemctl reload nginx. При неуспехе теста верните конфиг из копии, не применяя ошибочную версию. Если правка сделана через панель, используйте её штатную кнопку проверки/применения; прямые изменения могут быть перезаписаны.Linux · Терминал (Bash)С осторожностьюНужен sudoВторая команда только при успешном тесте, только если Nginx управляется systemd. Команда перезагрузки выполняется только при успешной проверке конфигурации (оператор &&). При ошибке исправьте конфигурацию и повторите проверку; не запускайте перезагрузку вручную.sudo nginx -t && sudo systemctl reload nginxКоманда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.
- 7. Проверьте HTTPS и HTTP на обоих семействах адресовПовторите запросы
curl -4 -Iиcurl -6 -Iк одной странице и сравните финальные URL, заголовки и SSL-имена. Если разница осталась только у отдельных посетителей, проверьте их DNS-кэш и TTL старой AAAA; не советуйте отключать IPv6 как способ постоянного решения.
- 8. Зафиксируйте исправление и способ возвратаЗапишите прежнюю/новую AAAA, имя файла конфигурации и время применения, чтобы понимать, какой узел обслуживает IPv6. Если результат ухудшился, верните сохранённый конфиг и выполните проверку/reload либо восстановите прежнюю AAAA у DNS-поставщика. Если через IPv6 отвечает CDN, его правила и сертификаты надо корректировать у провайдера.
#Как проверить, что неисправность устранена
Оба запроса через IPv4/IPv6 доставляют тот же сайт и публично действующий сертификат для имени. Если у клиента нет IPv6 — результат тестируют с другой сети, вместо того чтобы делать вывод по ошибке соединения.
#Если не получилось и как отменить правки
Восстановите прежнюю AAAA в панели DNS или исходный блок Nginx из резервной копии и проверьте конфигурацию перед reload. Не редактируйте чужой виртуальный хост и не отключайте поддержку IPv6 целиком.
Если причина не установлена, соберите точный текст ошибки, время, имя домена, результаты проверок без паролей и приватных ключей. Передайте их ответственному администратору или поддержке регистратора, DNS-провайдера либо хостинга. Не повторяйте опасные изменения без резервной копии.