#Симптом и границы применимости
У одного и того же домена браузеры с IPv4 и IPv6 могут обращаться к разным адресам. Если AAAA указывает на старый сервер, не слушается порт 443 по IPv6 либо неверно настроен сертификат, ошибку увидит лишь часть посетителей.
Эта инструкция относится к конкретному сайту в панели управления хостингом, когда его обслуживают Nginx, Apache, PHP-FPM или их сочетание. Названия разделов и доступность SSH зависят от установленной панели и прав пользователя; шаги, которых нет в вашем интерфейсе, выполняет администратор сервера.
#Возможные причины и признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Устаревшая AAAA-записьDNS направляет IPv6 на старую машину | Результаты A и AAAA ведут к разным площадкам | Исправить AAAA у авторитетного DNS |
| Нет прослушивания IPv6В конфигурации только listen 0.0.0.0 или IPv4 | curl -4 работает, -6 даёт Connection refused | Проверить listen [::]:443 и межсетевой экран |
| Неправильный виртуальный хост по IPv6Есть TCP-соединение, но другой сертификат/сайт | IPv6 показывает чужое имя | Исправить отдельный IPv6 виртуальный хост |
#Пошаговая диагностика и исправление
- Проверьте проблему двумя протоколамиВыполните запросы с машины, на которой есть реальный IPv6; если IPv6 не настроен, ошибка curl -6 не говорит о неисправности сервера. Сравните код, время и TLS-ошибку.Linux · Терминал (Bash)КомандаНа клиентском компьютере без прав администратора; -4 и -6 принудительно выбирают семейство адресов.
curl -4 -I https://example.com/curl -6 -I https://example.com/
- Посмотрите DNS-записиУ провайдера DNS найдите A и AAAA домена, проверьте IP и ожидаемый сервер. Сравните с результатами независимых DNS-резолверов. Меняйте запись только после подтверждения маршрута; TTL может продлить влияние старого адреса.
- Проверьте прослушивание портовНа сервере по SSH посмотрите сокеты 80 и 443. Если IPv6 не включён в ОС или сеть провайдера не назначена — одна директива listen проблему не устранит.
- Нужны права администратора для имён процессовLinux · Терминал (Bash)КомандаНужен sudoНужны права администратора для имён процессов. Записи [::]:443 и 0.0.0.0:443 зависят от настройки dual-stack.
sudo ss -ltnp | grep -E ":(80|443)\b"
- Сверьте настройки виртуального хостаВ панели проверьте, на каком IP и порту опубликован сайт, а в эффективной конфигурации — IPv6 listen, server_name и SSL. Если слушает другая служба, не добавляйте конфликтующий порт.
- Проверьте сетевую фильтрацию IPv6Сверьте правила межсетевого экрана провайдера и сервера отдельно от IPv4; IPv6 использует отдельные правила. Не открывайте все порты и не отключайте firewall ради диагностики. При проверке учитывайте возможный CDN.
- Проверьте сертификат по IPv6Если соединение устанавливается, убедитесь, что сервер отдаёт сертификат на нужное имя SNI. В панели может быть отдельная привязка домена к IPv6-адресу; исправляйте именно её.
- Повторите внешний тестС другого IPv6-подключения повторите curl -6 и загрузите главную и внутреннюю страницу. Если исправляли AAAA, дождитесь окончания TTL. Не удаляйте AAAA как единственный долгосрочный способ, если IPv6 нужен проекту.
#Проверка результата
По IPv4 и IPv6 открывается один сайт с действительным сертификатом; доступность подтверждена с внешнего IPv6-клиента.
#Если проблема осталась
Если у клиента нет IPv6, используйте отдельную тестовую машину с IPv6; если соединение есть, но выдаёт чужой сайт, сверяйте IPv6-VirtualHost и SNI.
#Безопасный откат
Если после изменения ошибка усилилась, верните сохранённое значение только изменённого параметра и повторно проверьте конфигурацию используемого веб-сервера до применения. Не возвращайте всю базу или весь сервер из резервной копии, если достаточно откатить одну настройку. При отсутствии доступа к нужному уровню обратитесь к администратору с точными временем, адресом, кодом ответа и обезличенными фрагментами журналов.