# Сайт не открывается из РФ: диагностика за пять минут

> Блокировка, кривой DNS или просто лёг сервер? Разбираемся по симптомам, а не по ощущениям.

«У меня не открывается» — это не диагноз. За этой фразой прячется с десяток разных поломок, и лечатся они по-разному. Ниже порядок, в котором стоит проверять, чтобы не чинить DNS, когда виноват ТСПУ, и не писать хостеру, когда виноват ты.

## Шаг 1. Работает ли вообще хоть где-то

Открой проверку из разных стран:

```bash
curl host.pink/check/example.com
```

Или в браузере: [host.pink/check/example.com](/check/example.com). По умолчанию это HTTPS-запрос `GET /` с проб [Globalping](https://globalping.io). Смотри на три группы проб: российские домашние провайдеры (помечены «дом.»), российские дата-центры и заграница.

| Что видишь | Что это значит |
|---|---|
| Всё лежит везде | Упал сервер, сертификат или DNS. Блокировки тут ни при чём |
| Заграница ок, РФ целиком лежит | Похоже на блокировку по IP или проблему маршрута до хостера |
| Дата-центры РФ ок, домашние провайдеры нет | Похоже на ТСПУ: он стоит у операторов связи, а у хостеров настроен по-разному |
| У одних провайдеров ок, у других нет | Блокировка раскатывается неравномерно или у провайдера свой DPI |

> [!TIP]
> Домашние пробы важнее дата-центровых. По опыту сообщества, ТСПУ стоит на магистралях операторов, а у хостеров «есть у всех, но настроено по-разному». Поэтому «из Selectel открывается» не значит «у пользователей открывается». Отдельный случай — белые списки на мобильных сетях: они режут на уровне IP всё, кроме разрешённых подсетей, и типичный симптом «с Wi-Fi открывается, с мобильного нет». Подробности в базе: [ТСПУ: серверная часть](/baza/set/tspu-servernoe/).

## Шаг 2. Как именно не открывается

Текст ошибки на пробе подсказывает механизм. Для упавшей HTTP-проверки проба Globalping возвращает сообщение ошибки своего HTTP-клиента (Node.js), и мы показываем его первую строку.

- **`read ECONNRESET` или `Client network socket disconnected before secure TLS connection was established`** — соединение оборвали до конца TLS-рукопожатия. Часто это фильтрация по SNI: DPI увидел имя сайта в ClientHello и оборвал соединение. IP при этом может быть вполне доступен.
- **Таймаут без ответа** — пакеты молча выбрасывают. Так выглядит блокировка по IP или подсети, а ещё сломанный маршрут.
- **Ответ пришёл, но не тот** (редирект на заглушку, чужой сертификат) — провайдерская заглушка на HTTP или подмена.
- **Соединение открывается, первые ~16 КБ проходят, потом всё встаёт** — так сообщество описывает «блок 16–20»: ТСПУ пропускает первые 16 КБ данных и рвёт соединение к IP. Страница начинает грузиться и зависает, а сервер при этом пингуется.

Чтобы отделить блокировку по имени от блокировки по адресу, проверь голый TCP до IP:

```bash
curl "host.pink/check/203.0.113.10:443?t=tcp"
```

Это пинг TCP-рукопожатием (по умолчанию на порт 443), без данных. TCP до IP проходит, а HTTPS по имени рвётся на рукопожатии — похоже, режут по SNI. Не проходит даже TCP — значит, по адресу или маршруту. Но успешный TCP ещё не значит, что адрес чист: при «блоке 16–20» рукопожатие проходит, а данные дальше не идут. Сообщество формулирует так: «пинг не показателен, curl показателен», поэтому сверяйся с HTTP-проверкой.

## Шаг 3. DNS

Сравни, что отвечают резолверы в России и за рубежом:

```bash
curl "host.pink/check/example.com?t=dns"
```

Проверка запрашивает A-запись через системный резолвер каждой пробы. Если российские пробы получают другие адреса или NXDOMAIN, а заграничные — нормальные, то провайдерский DNS подменяет ответы. Для твоего сервера это лечится DoH/DoT на клиенте. Для чужого сайта это признак, что провайдер блокирует имя на своём DNS.

Заодно проверь сам домен: [досье домена](/example.com) покажет NS, DNSSEC и срок регистрации. Истёкший домен выглядит как «блокировка» примерно у всех.

## Шаг 4. Где рвётся маршрут

MTR (по ICMP) из российской домашней пробы, а для сравнения из Германии и США, показывает, на каком хопе теряются пакеты:

```bash
curl "host.pink/check/203.0.113.10?t=mtr"
```

- Потери начинаются внутри российского оператора и дальше 100% — фильтр или авария у оператора.
- Потери только на последнем хопе — это сервер или его файрвол не отвечает на ICMP. Нормально, если TCP при этом работает.
- Потери на промежуточном хопе, которые дальше пропадают, — роутер просто не любит отвечать на ICMP. Игнорируй.

## Шаг 5. Что делать дальше

- **Упал сервер** — чини сервер, блокировки ни при чём.
- **Блокировка по IP** — смотри в [досье IP](/8.8.8.8), чья это подсеть и не засвечена ли она. Хостеры, у которых целые подсети в немилости, собраны в разделе [Хостинги](/baza/hosting/).
- **Фильтрация по SNI или протоколу** — это уже тема раздела [Обход ТСПУ](/baza/tspu/). Там же [хронология](/baza/tspu/hronologiya/): что и когда начали резать.

> [!WARNING]
> Проверить, внесён ли ресурс в реестр, можно на официальном сайте РКН, `blocklist.rkn.gov.ru`. Сторонние «чекеры реестра» часто врут или давно не обновлялись.

## Источники

- Как устроены проверки host.pink: пробы [Globalping](https://globalping.io), типы `http`, `ping`, `tcp`, `dns`, `mtr`; [спецификация API Globalping](https://api.globalping.io/v1/spec.yaml): TCP-режим ping, DNS через системный резолвер пробы, MTR по ICMP по умолчанию
- [globalping-probe: HTTP-обработчик](https://github.com/jsdelivr/globalping-probe/blob/master/src/command/handlers/http/undici.ts): при ошибке в `rawOutput` попадает `error.message`; [Node.js lib/internal/tls/wrap.js](https://github.com/nodejs/node/blob/main/lib/internal/tls/wrap.js): текст `Client network socket disconnected before secure TLS connection was established`
- База: [ТСПУ: серверная часть](/baza/set/tspu-servernoe/) (16 КБ, «блок 16–20», белые списки на L3, «пинг не показателен»), [Хронология блокировок](/baza/tspu/hronologiya/), [БС (белые списки)](/baza/tspu/bs-podseti/)
- [Универсальный сервис проверки ограничения доступа РКН](https://blocklist.rkn.gov.ru/) ([страница сервиса на rkn.gov.ru](https://rkn.gov.ru/activity/electronic-communications/p825/))

---
Источник: https://host.pink/gaidy/sayt-ne-otkryvaetsya-iz-rf/
Лицензия: CC BY-SA 4.0
