Все статьи
Технологии
12 мин

Как мы потеряли четыре сервера за месяц: хроника блокировок изнутри

Обычно про блокировки пишут абстрактно. Мы расскажем конкретно: как за один месяц потеряли четыре адреса, что видели в логах в момент отключения, как отличали блокировку от поломки и что делали дальше. Цифры настоящие.

Начало августа: первый адрес

Первым ушёл один из европейских серверов. Симптомы выглядели странно: пользователи жаловались, что не подключаются, а сервер при этом был полностью исправен — службы работали, интернет с него ходил, нагрузка нулевая.

Проверка из сети пострадавших пользователей показала главное: до адреса не доходят пакеты. Пинг проходил, а попытка установить соединение зависала и обрывалась по таймауту. Ни на 443-м порту, ни на каком другом.

Отдельная деталь, которая многое объясняет: тестовый узел того же хостера, находившийся в соседнем диапазоне адресов, у тех же пользователей отвечал нормально. То есть блокировали не подсеть и не страну — конкретный адрес.

Варшава: сервер, заблокированный до покупки

На замену взяли сервер в Польше. Развернули полностью: сертификат, веб-сервер, туннель, пользователи. Из Европы всё работало идеально.

Из сетей наших пользователей — не работало вовсе. Адрес оказался заблокирован ещё до того, как мы к нему прикоснулись.

Объяснение простое и неприятное: хостеры переиспользуют адреса. Если раньше на этом адресе работал другой сервис, он мог попасть в списки задолго до нас. Хостер честно ответил, что списков у него нет, а замена адреса стоит денег и ничего не гарантирует.

После этого случая мы поменяли порядок работы: сначала проверяем адрес из сетей пользователей, потом разворачиваем. Следующие серверы проверили до настройки, и они оказались чистыми.

19 августа, 18:00: два сервера за час

Самый показательный случай. Вечером одновременно отвалились Нидерланды и Швеция — наши основная и вторая по нагрузке локации.

Счётчики подключений по часам говорят сами за себя. Нидерланды: в 17:00 — 15 754 подключения, в 18:00 — 71, в 19:00 — 25. Швеция: 3 339, затем 3, затем 7.

Для сравнения, за те же часы США шли 987 → 3 179 → 2 762, а остальные локации тоже работали нормально и даже приняли на себя часть нагрузки.

Обрыв ровно на границе часа, у двух серверов сразу, при полностью исправном оборудовании — это не совпадение и не авария у хостера.

Как мы это проверяли

Главная сложность диагностики: между собой наши серверы прекрасно доступны. Чтобы увидеть картину глазами пользователя, нужна точка наблюдения в той же сети, что и у него.

Мы взяли такую точку наблюдения у провайдера, на которого жаловались пользователи, и уже оттуда постучались во все свои адреса.

Результат был однозначным: Нидерланды и Швеция не отвечают, остальные локации, включая США, отвечают штатным подтверждением соединения. Тот же тест из соседнего дата-центра показывал, что все серверы живы.

Это и есть надёжный способ отличить блокировку от поломки: проверять из той сети, где находится пользователь, а не из соседнего дата-центра.

Что мы сделали за первый час

Первым делом — переставили порядок серверов в подписке. Многие приложения подключаются к первому в списке, не спрашивая пользователя, а первым стояли Нидерланды. Люди автоматически попадали на мёртвый сервер.

Мы поставили вперёд самую быструю из живых локаций — около 45 миллисекунд до пользователей. Дальше остальные рабочие серверы, включая США.

Затем нашли неочевидное решение. У нас в Нидерландах два сервера в соседних адресах: один под туннели, другой под сайты. Заблокирован оказался только первый — сайт у пользователей открывался нормально. Мы подняли туннель на втором адресе и вернули нидерландскую локацию в строй, использовав уже существующий домен сайта.

Швецию отключили полностью — она осталась работать только под почтовую инфраструктуру.

Что мы поняли за этот месяц

Блокируют адреса, а не протоколы. Транспорт у нас всё это время не менялся и продолжал работать на других серверах.

Соседние адреса ведут себя по-разному. Из двух адресов в одном дата-центре заблокировали один. Это открывает возможность быстрого восстановления.

Проверять надо до покупки. Один потраченный впустую сервер обошёлся дороже, чем все проверки вместе взятые.

Все яйца в одной корзине — плохо. Почти все наши серверы у одного хостера, и когда под фильтр попадают его диапазоны, отваливается сразу несколько локаций. Мы это исправляем.

Скорость реакции важнее всего. Пользователю безразлично, почему сервер не работает. Ему важно, чтобы через час работал другой.

Что это значит для вас

Если ваша локация перестала подключаться — это почти наверняка не поломка и не ваш провайдер, а закрытый адрес. Переключитесь на соседнюю страну, вопрос обычно решается мгновенно.

Обновляйте подписку в приложении. Мы меняем состав серверов, и старый профиль может состоять из адресов, которых уже нет.

И не ищите «неблокируемый VPN» — такого не существует. Ищите тот, у которого несколько независимых локаций и который замечает потерю за час, а не за неделю.

Что мы поменяли в работе после этого месяца

Каждая потеря чему-то научила, и изменения касаются не технологий, а порядка работы.

Проверка адреса до развёртывания. Раньше мы покупали сервер, настраивали и только потом узнавали, доступен ли он. Теперь первым делом проверяем адрес из сетей пользователей и разворачиваем только чистый. Это сэкономило нам уже один впустую потраченный сервер.

Наблюдение за счётчиками. Резкий обрыв подключений на одной локации при нормальной работе остальных — однозначный признак блокировки. Мы отслеживаем это и видим проблему в течение часа.

Порядок серверов в подписке. Многие приложения подключаются к первому в списке. Мы держим впереди самую быструю из гарантированно работающих локаций, чтобы человек, ничего не выбиравший, попадал на живой сервер.

Разные провайдеры. Почти все наши серверы были у одного хостера, и когда под фильтр попадали его диапазоны, отваливалось сразу несколько локаций. Это мы исправляем — независимость от одного поставщика важнее экономии.

Сколько это стоит и почему мы об этом пишем

Каждая потерянная локация — это деньги. Сервер оплачен вперёд, замена стоит отдельно, смена адреса у хостера тоже платная и без гарантий. За август набежало заметно.

Мы рассказываем об этом открыто по двум причинам. Первая: люди имеют право понимать, за что платят. VPN — не волшебная кнопка, а работа по постоянной замене адресов, и цена подписки складывается в том числе из этого.

Вторая: честный разбор полезнее обещаний. Сервис, который пишет «мы никогда не блокируемся», либо не сталкивался с реальностью, либо не говорит правду. Мы предпочитаем объяснять, что произошло и что сделано.

И практический вывод для читателя: выбирая сервис, спрашивайте не о том, блокируют ли его, а о том, что происходит после блокировки. Ответ на этот вопрос отличает работающий сервис от красивого сайта.

Пять локаций, устойчивый транспорт, честная поддержка

Мы используем VLESS поверх WebSocket и TLS на 443-м порту с настоящими доменами и валидными сертификатами — для сети это неотличимо от обычного сайта. Когда адрес всё-таки попадает под фильтр, мы переключаем людей на рабочую локацию и покупаем новый — за август это происходило четыре раза, и сервис продолжал работать. Пробный период оформляется на сайте за пару минут, без карты.

Мы рассказали это открыто, потому что считаем: честный разбор полезнее обещаний вечной работы. Адреса будут блокировать и дальше — вопрос лишь в том, насколько быстро сервис на это отвечает.