Сайт лежит у всех или только у меня?
Единственный надежный способ понять, лежит сайт у всех или только у вас, это открыть его из сети, которая вам не принадлежит, потому что у большинства случаев «сайт не работает» причина локальная: закэшированный ответ DNS, VPN, расширение браузера или ваш собственный провайдер. Проверка сразу из нескольких стран закрывает вопрос за секунды.
Почему проверка из нескольких локаций дает ответ
Запрос с вашего ноутбука проходит через кэш браузера, резолвер операционной системы, роутер, провайдера и только потом попадает на интернет-маршрут до сервера. Любой из этих слоев может отказать сам по себе, пока сервер совершенно здоров. Запустите тот же запрос из точки проверки в другой стране, и ни один из ваших локальных слоев в нем не участвует. Если и там не работает, проблема на стороне назначения. Если работает, проблема сидит между вами и интернетом, и зона поиска сузилась со всего мира до вашей машины и вашей сети.
Запуск больше чем из одной локации добавляет третий возможный ответ, и он встречается часто: сайт работает в одних местах и не работает в других. Такая картина указывает на региональный сетевой маршрут, краевой сервер CDN, географическую блокировку или изменение DNS, которое дошло до части резолверов, но не до всех, а вовсе не на выключенный сервер.
Что обычно ломается, когда лежит только у вас
- Устаревший кэш DNS. Ваш резолвер или операционная система все еще держат старый IP-адрес домена, и вы подключаетесь к серверу, которого там больше нет.
- Провайдер или маршрут до хостинга. Сломанный стык или проблема маршрутизации задевает всех у этого провайдера и никого больше.
- VPN или корпоративный прокси. Трафик выходит совсем из другого места, и эта точка выхода может быть заблокирована, отфильтрована или просто медленна.
- Файл hosts. Запись, добавленная месяцы назад во время тестов, до сих пор переопределяет настоящий DNS и обычно указывает на машину, которой уже нет.
- Кэш браузера, service worker или расширение. Закэшированная страница ошибки, устаревший service worker или блокировщик контента способны выдать рабочую страницу за мертвую.
- Локальный брандмауэр или защитное ПО. Некоторые пакеты блокируют целые категории сайтов или закрывают порт, который сайту нужен.
- Просроченный или недоверенный сертификат только на вашей машине. Сбитые системные часы делают просроченным любой действующий сертификат.
Как проверить из другой сети
Самому быстрому ручному тесту не нужны инструменты вообще. Выключите Wi-Fi на телефоне и откройте сайт по мобильной связи: другая сеть, другой резолвер DNS. Если там открывается, а на ноутбуке нет, неисправность локальная.
Из терминала запросите заголовки напрямую, а потом спросите у публичного резолвера, какой IP, по его мнению, у домена:
curl -I -sS --max-time 10 https://example.com/
dig +short example.com @8.8.8.8
dig +short example.com
Первая строка говорит, ответил ли вообще какой-нибудь сервер и с каким кодом состояния. Если curl сообщает о таймауте соединения или об ошибке DNS, не ответил никто. Если две строки dig расходятся, ваш локальный резолвер держит не тот адрес, что публичный, и наиболее вероятная причина это устаревший кэш. В Windows локальный кэш очищает ipconfig /flushdns, в macOS sudo dscacheutil -flushcache, в большинстве систем Linux достаточно перезапустить службу резолвера.
Что означает каждый исход
- Лежит везде. Действительно сломаны сервер, хостинг или DNS. Посмотрите на код состояния: 502 или 503 означают, что кто-то ответил, а приложение за ним нет, и это совсем не то же самое, что отсутствие ответа.
- Лежит только местами. Подозревайте DNS, который еще не обновился повсюду, проблему на краевом сервере или в регионе CDN либо правило брандмауэра, блокирующее определенные сети или страны.
- Работает у всех, кроме вас. Идите по локальным причинам из списка выше, начиная с DNS и VPN.
- Работает, но медленно везде. Это не сбой. Часто он предшествует сбою, поэтому измерьте как следует, а не гадайте.
Одна деталь сбивает людей с толку. Сайт может «работать» в смысле «отдает страницу» и при этом быть сломанным для посетителей: проверка, которая смотрит только на наличие ответа, засчитает страницу с ошибкой базы данных как успех, если сервер отдал ее с кодом 200. Смотрите на то, что вернулось, а не только на то, что хоть что-то вернулось.
Как узнать раньше клиента
Разовая проверка отвечает на вопрос, который у вас есть сейчас, и только потому, что вы догадались его задать. Сбои, начинающиеся в три часа ночи или задевающие один регион, обычно первым замечает клиент. Мониторинг по расписанию выполняет ту же проверку непрерывно из многих локаций и сообщает в тот момент, когда результат изменился, с указанием локации и ошибки. HostTracker выполняет такие проверки из более чем 300 точек проверки в 158 городах и шлет оповещения по email, SMS, голосовым звонком, в Slack, Telegram и другими способами, так что региональный отказ уже в первом оповещении выглядит иначе, чем глобальный. Проверка доступности сайта покажет его состояние прямо сейчас. Если сайт отвечает, но отвечает медленно, измерьте это как следует: время ответа сервера.