Прошу прощения, я к вам с новой порцией чайницких вопросов )
Ситуация такая – у меня есть российский VPS, который я использую в прокси-цепочке из двух узлов (второй за границей). На нём стоит 3X-UI, который, помимо прочего, заворачивает рунет-трафик на выход через WARP (настроено средствами панели 3X-UI).
Всё это работало какое-то время назад, а потом, после очередного переноса сервера на другой хостинг, ранее созданный в панели 3X-UI аутбаунд WARP перестал соединяться с сетью, новый тоже не создавался (панель показывала ошибки TLS Handshake). По подсказкам ИИ я вручную добавил в конфигурацию аутбаунда WARP блок параметров noise – я нигде не нашёл описания, но ИИ утверждал, что это новая функция создания шумов (или простейшей обфускации) то ли Xray, то ли WG, в общем, подобрав определённым образом параметры этого самого noise, удалось запустить WARP, который ещё какое-то время поработал.
Но недавно, после ещё двух переездов сервера на разные хостинги (я всё надеюсь подобрать баланс между ценой и качеством), обнаружилось, что WARP не работает уже вообще никак – не помог ни noise, ни параметры обфускации AWG2.0, которые ИИ мне посоветовал добавить наобум, хоть и скептически отнёсся к перспективе их поддержки ядром Xray ) Так же мы с ним пробовали настроить FinalMask, который разработчики Xray рекомендуют использовать каждый раз, когда их просят добавить поддержку AWG2.0 в ядро. Тоже так ничего в итоге и не добившись.
Вопросы:
Насколько я понимаю, российские VPS-хостеры борются с использованием сетей Cloudflare, и в частности с WARP, как только могут. Причём, то ли разные хостеры борются с разной интенсивностью, то ли все постепенно наращивают интенсивность, в общем, хорошо бы уметь каким-то образом определять, насколько жёстко блокирует WARP конкретный хостер. И, поскольку я в сетевых технологиях мало понимаю, то прошу помочь с методикой – как проверить, ограничивает ли хостер (или ТСПУ) объём трафика, разрушает ли какие-нибудь пакеты, или тупо блокирует все сети Cloudflare по диапазону?
Если полная блокировка диапазона, то, понятно, ловить нечего, нужно снова менять хостера и надеяться, что у нового это не так (опять же, имея под рукой методику проверки). А вот если это более тонкая цензура, то как её обойти более хитрыми средствами, чем не работающий noise? У меня была мысль поднять какой-нибудь AWG-клиент, который умеет создавать туннель с серверами Cloudflare с помощью обфускации AWG2.0 и поднимать локальный прокси (с которыми я научился связывать 3X-UI, когда WARP нужно было запускать как отдельное клиентское приложение), но я таких клиентов не нашёл ни сам, ни с помощью ИИ. Подскажите, пожалуйста, есть ли такие? Или я вообще не в ту сторону копаю? Тогда подскажите направление )
FinalMask в Xray – я походил по описаниям и обсуждениям на их официальном сайте и понял, что это вроде как тоже некий механизм конечной обфускации, который может (по крайней мере, частично) работать в одностороннем порядке, без дополнительной настройки сервера (т.е. в моём случае Cloudflare), но я не нашёл никаких понятных для чайников примеров или чего-то ещё, что можно было бы попробовать применить. ИИ мне что-то напредлагал, но ничего не заработало. Здесь я тоже не нашёл ничего понятного. Подскажите, как можно его использовать в моём случае, если это вообще имеет смысл.
российские VPS-хостеры борются с использованием сетей Cloudflar
Нет, этим занимается ТСПУ.
разные хостеры борются с разной интенсивностью
Разные ТСПУ и разные конфигурации.
как проверить, ограничивает ли хостер (или ТСПУ) объём трафика, разрушает ли какие-нибудь пакеты, или тупо блокирует все сети Cloudflare по диапазону?
Можно проверить руками, собрав бамп трафика. Каких-то публичных чекеров по проверке доступности WARP я не видел.
работать в одностороннем порядке
finalmask требует обязательного соответствия настроек клиента и сервера. Как иначе сервер поймет, что это вы ему шум отправляете, а не полезные данные и vice-versa?
Я про это спросил у ИИ первым делом ) Вот что он ответил (я понимаю, что он не дурак приврать, но ведь разработчики Xray и правда советуют finalmask для Cloudflare, где сервер не настроить):
Спойлер
так почему же тогда разработчики Xray утверждают, что finalmask можно использовать именно для AWG (то есть, и для warp, на стороне которого никаких настроек обфускации не добавить)?
Вы задали монументальный вопрос, который бьет точно в цель. И чтобы на него ответить, нам придется на секунду заглянуть в исходный код ядра Xray-core и понять одну очень тонкую деталь, которую разработчики заложили в архитектуру FinalMask.
Когда в тикетах на GitHub авторы Xray отвечают: «Используйте FinalMask для имитации AmneziaWG (включая WARP)», они имеют в виду одну фундаментальную разницу между двумя режимами UDP-маскировки.
Дело в том, что внутри finalmask для UDP есть два принципиально разных режима работы, которые зависят от одного-единственного параметра — mode.
Режим №1: mode: "opaque" (Непрозрачный — то, о чем говорит документация)
Это тот самый режим, который описан в официальной доке XTLS. Он создан для связки «Клиент Xray ➔ Сервер Xray».
В этом режиме finalmask работает как полноценный прокси-протокол: он берет пакет, полностью зашифровывает его, дописывает в начало свой собственный уникальный префикс (заголовок) и отправляет.
Естественно, если отправить такой пакет на оригинальный сервер Cloudflare, тот увидит левый заголовок, не сможет его расшифровать и сбросит. Тут вы абсолютно правы — этот режим с WARP несовместим.
Режим №2: mode: "random" (Случайный мусор — то, что нужно для WARP!)
А вот этот режим был добавлен в Xray-core специально для того, чтобы имитировать поведение AmneziaWG/генераторов шума без изменения структуры оригинальных пакетов.
Когда вы выставляете "mode": "random", finalmask меняет свою логику кардинальным образом:
Он ВТЕМНУЮ берет оригинальный пакет WireGuard, который сгенерировал аутбаунд Xray для Cloudflare.
Он НЕ трогает его структуру, НЕ добавляет к нему никаких префиксов и заголовков. Пакет с данными летит в своем первозданном, ванильном виде.
Но МЕЖДУ этими полезными пакетами FinalMask начинает хаотично генерировать и выстреливать в сторону Cloudflare абсолютно левые, мусорные UDP-пакеты случайного размера (size: "40-100") и с кастомными задержками (delay: "10-30").
И как это решает проблему с WARP?
Для ТСПУ (Цензора): Системы DPI анализируют поток во времени. Они видят не просто одиночный пакет WireGuard, а сплошной поток UDP-пакетов, которые постоянно меняют свой размер и летят со случайными интервалами. С точки зрения ТСПУ, этот трафик полностью теряет уникальный «почерк» WireGuard (тайминги хендшейков, фиксированные размеры стартовых пакетов). Для цензора это выглядит как хаотичный UDP-шум (например, онлайн-игра или поломанный стрим). Блокировка по паттерну не срабатывает.
Для Cloudflare WARP: На эндпоинт Cloudflare прилетает эта смесь. Полезные пакеты WireGuard сервер успешно расшифровывает и пускает в работу. А когда ему прилетают фейковые мусорные пакеты, сгенерированные FinalMask, Cloudflare сверяет их криптографическую подпись, видит, что это невалидный мусор, и просто молча их дропает (удаляет). Для него это выглядит как обычный сетевой джиттер или потеря пакетов в интернетах.
Про ТСПУ понял, спасибо, буду искать, что такое бамп трафика, как его делать и смотреть )
Это как раз туннель до Cloudlare + локальный прокси?
Зачем выводить с российского VPS трафик на WARP? WARP в России блокируют. Ходите на российские сайты напрямую через домашнего провайдера или через российский VPS. Для всего остального лучше сделать каскад: VPS в РФ → VPS за границей → WARP. В такой схеме WARP поможет защитить от обнаружения IP адрес VPS за границей и это снизит вероятность его блокировки.
Согласен, что так правильнее, но моя ситуация осложняется тем, что я самый продвинутый чайник в семье и на работе, поэтому раздаю свой конфиг двум десяткам родственников и знакомых, за всеми клиентскими программами которых не уследишь ) А напрямую с российского VPS я не хочу выпускать трафик по тем же причинам, что и с иностранного – российский не так жалко если спалят, но всё же жалко
Нет, это зависит от конкретно используемых параметров в FinalMask. Аналог Jc, Jmin, Jmax и I1 от AWG можно реализовать и без поддержки со стороны сервера.
Родственников и знакомых надо приучать к цифровой гигиене: на одном смартфоне российские приложения, на другом VPN. Да, это тяжело и надо покупать второй телефон, но иначе VPS вычислят, заблокируют и без связи останутся все.
У меня сделано так: VPS: РФ => Германия => Молдова
Молдавский ip давно уже в блоке. Можно конечно было обойтись 2 серверами, но у меня молдавский уникален - гугл думает, что он российский и через него у меня ютуб без рекламы. А убрать немецкий не могу, т.к. молдавский с тарифом без возможности взять дополнительный ip и соответственно подключиться к нему с российского никак
Всё верно, однако, по моим представлениям, если нигде (ни в РФ, ни за границей) не выпускать трафик через прямой IP VPS, это тоже достаточно гигиенично ) Только вот пока у меня эта общая схема цифровой гигиены упёрлась в WARP, вот и хочется попробовать её починить, чтобы не возиться со всеми телефонами и компьютерами
Если везде Xray, можно попробовать настроить реверс-прокси – чтобы молдавский сам подключался к российскому, а тот потом через него гнал трафик. Или сейчас уже, если IP в блоке, то и с него подключения тоже блочат, не только на него?
Если задержка сигнала небольшая, то это вполне грамотная, рабочая схема. Когда у меня один из серверов был в длительном бане я тоже использовал аналогичную цепочку.
С российского VPS прямо на WARP, скорее всего, уже не получиться, т.к. сервера Cloudflare здесь под блокировкой и судя по сегодняшним новостям она будет только жёстче.