Перейти к содержимому

Почему сайт работает по IP, но не по домену

Одна из самых полезных подсказок при диагностике: сайт открывается по IP, но не открывается по домену. На первый взгляд кажется очевидным: «значит виноват DNS». Очень часто так и есть, но не всегда. Современный веб-сервер может…

Одна из самых полезных подсказок при диагностике: сайт открывается по 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 вообще не обязан давать тот же результат.

Правильный порядок

  1. Проверить A.
  2. Проверить AAAA.
  3. Проверить NS.
  4. Сравнить authoritative и recursive DNS.
  5. Проверить virtual host.
  6. Проверить TLS/SNI.
  7. Проверить через curl --resolve.

Как NexIP помогает

DNS Lookup и SSL/HTTP-проверки позволяют увидеть, на каком шаге доменное имя начинает вести себя иначе, чем прямой адрес.

FAQ

Если IP работает, сервер точно исправен?

Нет. Вы доказали только доступность какого-то сервиса на этом IP.

Можно использовать IP вместо домена постоянно?

Для обычного сайта это плохая замена: ломаются HTTPS, virtual hosts, cookies, ссылки и другие механизмы.

Что проверять первым?

A и AAAA.

По теме: Почему сайт работает через мобильный интернет, но не через Wi-Fi.

Диагностика NexIP

Продолжите реальной проверкой

Откройте полный раздел диагностики и проверьте сайт, домен или сетевые параметры.

Открыть диагностику

Читайте дальше

Материалы по теме

HTTP и сайты

HTTP-коды ответа: что означают 200, 301, 404, 500 и другие

Когда браузер открывает страницу, сервер отвечает не только HTML-кодом. Вместе с ответом он отправляет числовой HTTP-статус: 200, 301, 404, 500 и так далее. Эти три цифры часто позволяют понять проблему быстрее, чем длинное сообщение…

Читать
HTTP и сайты

Как открывается сайт: DNS → TCP → TLS → HTTP

Когда человек вводит адрес сайта и нажимает Enter, кажется, будто браузер просто «подключился к сайту». На самом деле за доли секунды происходит целая цепочка: DNS, соединение с сервером, TLS и только потом HTTP. Если понимать эту…

Читать
Вернуться в базу знаний