Одна из самых полезных подсказок при диагностике: сайт открывается по IP, но не открывается по домену.
На первый взгляд кажется очевидным: «значит виноват DNS». Очень часто так и есть, но не всегда. Современный веб-сервер может обслуживать много доменов на одном IP, а HTTPS вообще требует учитывать имя сайта.
Что означает «по IP работает»
Например:
http://203.0.113.25
возвращает страницу, а:
https://example.com
не открывается.
Первое — проверьте DNS
dig +short example.com A
dig +short example.com AAAA
Сравните результат с настоящим IP сервера.
Домен указывает на старый IP
Самая очевидная причина после миграции.
A правильная, AAAA неправильная
Очень частый сюрприз.
A → новый сервер
AAAA → старый сервер
Часть клиентов выбирает IPv6 и попадает не туда.
Старый DNS-кеш
Авторитетный сервер уже знает новый IP, а recursive resolver ещё хранит старое значение согласно TTL.
Но есть ещё virtual host
Один nginx может обслуживать десятки сайтов.
Когда браузер обращается к домену, сервер получает hostname и выбирает нужную конфигурацию.
По IP может открываться вообще другой сайт
Например default server nginx.
Поэтому факт, что «на IP что-то открылось», ещё не доказывает правильную настройку домена.
Host header
HTTP-запрос содержит имя хоста.
Host: example.com
Без правильного Host сервер может выбрать другой virtual host.
HTTPS ещё интереснее
TLS-сертификат выдаётся для доменного имени, а не просто для произвольного IP.
Открытие:
https://203.0.113.25
может дать ошибку сертификата, хотя сайт по домену настроен правильно.
SNI
При TLS клиент сообщает, к какому hostname хочет подключиться. Это помогает серверу выбрать нужный сертификат.
Лучшая команда для проверки конкретного сервера
curl --resolve example.com:443:203.0.113.25 \
https://example.com/
Здесь мы говорим curl: используй этот IP, но обращайся как к настоящему домену.
Почему это полезно перед сменой DNS
Можно проверить новый сервер ещё до публичного переключения.
www и корневой домен
Проверьте оба:
example.com
www.example.com
У них могут быть разные DNS-записи и разные virtual host.
Firewall
Редко, но сервер может фильтровать трафик по frontend, proxy или другим условиям. Сам факт доступности IP не гарантирует работу нужной виртуальной конфигурации.
CDN
Если домен должен указывать на CDN, прямой IP origin вообще не обязан давать тот же результат.
Правильный порядок
- Проверить A.
- Проверить AAAA.
- Проверить NS.
- Сравнить authoritative и recursive DNS.
- Проверить virtual host.
- Проверить TLS/SNI.
- Проверить через curl --resolve.
Как NexIP помогает
DNS Lookup и SSL/HTTP-проверки позволяют увидеть, на каком шаге доменное имя начинает вести себя иначе, чем прямой адрес.
FAQ
Если IP работает, сервер точно исправен?
Нет. Вы доказали только доступность какого-то сервиса на этом IP.
Можно использовать IP вместо домена постоянно?
Для обычного сайта это плохая замена: ломаются HTTPS, virtual hosts, cookies, ссылки и другие механизмы.
Что проверять первым?
A и AAAA.
По теме: Почему сайт работает через мобильный интернет, но не через Wi-Fi.
Диагностика NexIP
Продолжите реальной проверкой
Откройте полный раздел диагностики и проверьте сайт, домен или сетевые параметры.
Читайте дальше
Материалы по теме
Что показывают HTTP-заголовки
Полное руководство по HTTP-заголовкам: request и response headers, кеш, redirects, cookies, CORS, security headers, CDN и диагностика через curl и NexIP.
ЧитатьКак проверить доступность сайта
Пошаговая диагностика недоступного сайта: домен, DNS, IP, маршрут, TCP, TLS, HTTP-коды, curl, IPv4/IPv6, CDN и проверка через NexIP.
ЧитатьHTTP-коды ответа: что означают 200, 301, 404, 500 и другие
Когда браузер открывает страницу, сервер отвечает не только HTML-кодом. Вместе с ответом он отправляет числовой HTTP-статус: 200, 301, 404, 500 и так далее. Эти три цифры часто позволяют понять проблему быстрее, чем длинное сообщение…
ЧитатьКак открывается сайт: DNS → TCP → TLS → HTTP
Когда человек вводит адрес сайта и нажимает Enter, кажется, будто браузер просто «подключился к сайту». На самом деле за доли секунды происходит целая цепочка: DNS, соединение с сервером, TLS и только потом HTTP. Если понимать эту…
Читать