Диагностика блокировок: логи, метрики, инструменты
«Не подключается» — самое частое и самое бесполезное сообщение в поддержке. Не угадывай. Я показываю, как я загоняю проблему в угол по слоям: три вопроса клиенту, потом проверки на сервере сверху вниз, пока не найдётся звено, где обрывается цепочка. Команды рабочие.
Не угадывай — иди по цепочке
Соединение проходит длинный путь: клиент → подписка → нода → порт → протокол → роутинг. «Не работает» — это обрыв где-то на этом пути. Задача диагностики — не гадать, а быстро локализовать слой. Начинаешь сверху (у клиента), спускаешься до сервера, и на каждом шаге отсекаешь половину вариантов.
Три вопроса клиенту
Прежде чем лезть на сервер — три вопроса, они сразу сужают поиск вдвое:
- Оператор и город. Мобильный или домашний? У мобильных DPI строже — если на Wi-Fi работает, а на сотовом нет, это почти наверняка про «белые списки» или транспорт, а не про мёртвую ноду.
- Приложение и какой сервер выбран. Happ / Hiddify / v2rayNG и конкретная плитка.
- Что именно не работает: связи нет вообще / грузятся только некоторые сайты / медленно / РФ-сайт не открывается.
Симптом → причина
Быстрая карта, чтобы не начинать с нуля каждый раз:
- Не подключается у всех — нода offline, порт закрыт или истёк сертификат.
- Не подключается у одного — подписка не обновлена, упёрся в лимит устройств (
hwidDeviceLimit), выбрал не тот сервер. - «не видит сервер» в приложении — inbound не добавлен в сквад юзера.
- Работает на Wi-Fi, не на мобильном — DPI/«белые списки» оператора, нужен WL-вход или каскад.
- Подключается, но сайты не грузятся — роутинг или клиентский DNS (поставить
8.8.8.8DoH). - РФ-сайт/банк не открывается — нет RU-direct роутинга.
- Скачивание идёт, а YouTube висит — застрявший QUIC, надо блокировать UDP/443 на ноде.
- Капчи, «VPN detected» — грязный IP ноды, замена из запаса.
Проверки на сервере, по слоям
Слой 1 — нода жива и порт открыт. С любой машины проверяем порт, на ноде — контейнер и логи Xray:
# с любой машины:
nc -vz SERVER_IP 443
# на ноде:
docker ps | grep remnanode
docker logs --tail 50 remnanodeЛоги Xray — первое, куда смотреть: там видно и падение на старте (кривой конфиг), и ошибки сертификата.
Слой 2 — сертификат (для TLS-инбаундов). Смотрим срок и издателя:
echo | openssl s_client -connect SERVER_IP:443 -servername your-donor.de 2>/dev/null \
| openssl x509 -noout -dates -issuerПротух или домен не тот — перевыпускаем (certbot renew).
Слой 3 — Reality, совпадение параметров. Девять из десяти «не подключается на Reality» — это рассинхрон между Host в панели и конфигом ноды. Сверяем по пунктам:
Public Keyв Host =REALITY_PUBLIC_KEYиз пары (в конфиге лежитPRIVATE_KEY_X25519).Short IDв Host = один изshortIdsконфига (или оба пусты).SNIв Host =serverNamesконфига.Fingerprintзадан (firefox/qq).
Проверь, открывается ли https://your-donor.de в браузере — для self-steal должна открыться обманка.
Слой 4 — сквад. Inbound на ноде включён, Host создан, а юзер всё равно не видит сервер? Загляни в Internal Squads: нужный inbound должен быть отмечен в скваде этого юзера. Формула доступа: (инбаунды в сквадах юзера) ∩ (инбаунды на ноде) ∩ (видимые хосты).
Слой 5 — подписка отвечает. Проверяем, что страница подписки жива:
curl -s -o /dev/null -w "%{http_code}\n" https://sub.your-domain.com/SHORT_UUIDНе 200 — проблема на странице подписки или reverse-proxy, а не в самой ноде.
Что сделать клиенту, если сервер исправен
Когда все слои на сервере чистые — проблема на стороне клиента. Памятка, которую отдаёшь ему:
- Обновить подписку в приложении.
- Сменить сервер (другой из списка или «Авто»).
- Поставить DNS
https://8.8.8.8/dns-query(не Cloudflare — в РФ он тормозит). - Включить/выключить «обход для России».
- Переустановить профиль из ссылки.
Если легло массово
Один клиент — это отладка. Все разом — это блокировка, и алгоритм другой:
- Подтверди блок с мобильного оператора, не только из дома — у мобильных DPI жёстче.
- Перекинь на резерв (каскад/WL/CDN обычно делают это сами).
- Смени IP ноды из запаса, сгоревший — в blocklist.
- Смени SNI/донор/fingerprint.
- Напиши статус в канал. Молчание в саппорте при массовом блоке — причина №1 оттока и негатива.
Диагностика — это дисциплина отсекать слои по одному, а не хвататься за первую гипотезу. Нашёл слой, где рвётся, — там и чини.
Следующий гайд WARP на выходе: зачем и что даёт → ↗ Не понравилась статья или что-то непонятно? Напишите мне — помогу или поправлю. @notrealvpn →