Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать

Статья рассчитана на «чайников», не знакомых с предметной областью. Однако и люди «в теме» могут найти нечто полезное (например, чуть более простую настройку проксирования через CloudFlare без необходимости поднимать nginx на VPS).

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Универсальное решение: VPS в Европе, панель 3X-UI для управление Xray, прокси VLESS-Reality для прямого соединения, прокси VLESS-tls-grpc для запасного соединения через CDN CludFlare, российский трафик напрямую — либо через цепочку VPS->WARP, доступ к заблокированным в Европе сервисам — через цепочку VPS->WARP

Для реализации этой инструкции вам понадобится купить:

• виртуальный сервер за границей (оплачивается помесячно или ежегодно)

• доменное имя второго уровня (с одной точкой), вроде mypersonalsite.xyz (оплачивается ежегодно)

Хотел бы я дать ссылку на надёжного провайдера VPS (чтобы упростить работу «чайникам», не желающих разбираться в вопросе) — но нет…. универсального хостера я не встречал. Я лишь опишу критерии, а выбирать VPS придётся самому.

Критерии выбора VPS

Итак, вам нужен VPS, который удовлетворяет следующим критериям:

• Технические характеристики: 1 процессор, минимум 1 GB оперативной памяти, минимум 5 GB диск. Обычно это самый дешёвый тарифный план.

• Трафик — безлимитный или очень большой (например 32 Терабайта в месяц). Многим хватает 3 ТБ в месяц, но не всем. Безлимитных вариантов на рынке много.

• Ширина канала: 100Мбит. Если у вас быстрый домашний/рабочий интернет, то можно смотреть в сторону 1Гбит, такие предложения на рынке есть.

• Статичный IPv4 адрес (сервер с IPv6 но без IPv4 не подходит)

• Локация (физическое расположение сервера): Европа. Можно выбрать любую страну, отличную от РФ, но Европа, как правило, даёт самый быстрый трафик.

• Возможность установки операционной системы «Debian 12». Дальнейшая инструкция гарантированно работает с Debian 12. При выполнении всей цепочки шагов с другой

ОС (например, Ubuntu) могут всплыть неожиданные вопросы.

• Бекап (это платная опция у хостера) не нужен.

Рыночная стоимость такого VPS — $5 / 500 ₽ в месяц. Встречаются дешевле ($0.99/130р.). Дешёвая цена может быть признаком ненадёжности… или не быть.

А теперь холиварный вопрос: покупать ли VPS у зарубежного провайдера с помощью зарубежной карты (либо за крипту), или можно купить VPS у хостера, который принимает российские карты?

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

посоветовал зарубежного хостера. Дело в том, что любой платёж российской картой

вас деанонимизирует, и товарищ майор при желании узнает, кто оплатил прокси.

С другой стороны, прокси — это средство обхода цензуры (что вполне законно

на данный момент), а не средство анонимности. Ни один прокси не гарантирует

абсолютную анонимность в интернете, даже если вы будете платить криптой.

Для себя я решил этот вопрос так: лично у меня нет задачи «оставаться анонимным» и

скрывать факт оплаты сервера за рубежом, поскольку моя деятельность не нарушает

российских законов (опять же: на текущий момент).

Поэтому я оплачиваю зарубежный VPS с помощью российской карты. Меня такое

решение устраивает, но я его не навязываю, и — вероятно — поменяю его однажды.

То же самое с доменными именами: можно купить домен.ru за российскую карту, либо любой домен (кроме .ru и .рф) за рубежом.

Что я не стоит делать ни в коем случае

1. Не компрометировать VPS протоколами, которые могут быть обнаружены (не

ставить туда WireGuard, OpenVPN, Shadowsocks, …). Некоторые провайдеры уже

блокируют VPS, на которых в прошлом были замечены подобные протоколы.

2. Не ходить в рунет через VPS, вместо этого посещать рунет напрямую, мимо прокси

(легко настроить). В крайнем случае, пускать российский трафик по цепочке Я->VPS-

>Warp->Рунет (это тоже легко настроить). Дело в том, что если трафик пересекает

границу РФ дважды в условную секунду (сначала туда, потом сразу обратно), то

цензор может заподозрить прокси и заблокировать его. В Китае так делают, у нас — нет,

но могут научиться в любой момент.

3. Не раздавать доступ к прокси большому количеству людей. 5-10 близких максимум.

В Китае уже вычисляют аномальный трафик к серверу от большого числа юзеров (и

блокируют сервер), у нас — опять же — могут перенять их опыт в любой момент.

При выполнении этих условий (в текущих реалиях) сервер невозможно вычислить и заблокировать. Однако, я люблю избыточную надёжность, поэтому… на случай неожиданной блокировки VPS-сервера по IP — есть «План Б»: проксирование трафика через CDN (Content Delivery Network). CDN созданы для балансировки трафика крупных сайтов, состоят из сотен IP-адресов, поэтому шанс их блокировки в РФ минимальный. Я использую одну из самых крупных CDN в мире — CloudFlare с бесплатным тарифом. Именно к CloudFlare вы привяжете купленный домен, чтобы пускать трафик через него. Проксирование через CDN чуть медленнее прямого коннекта к серверу. Зато, при использовании CDN, РосКомНадзор вообще не узнает IP вашего сервера.

Как только вы приобрели VPS-сервер и установили туда чистую Debian 12 — как правило в течении нескольких минут провайдер выдаст вам доступ к серверу. Чаще всего приходит e-mail, иногда данные можно найти в панели.

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Шаг 1: Подключитесь к серверу по SSH:

• Наберите ssh root@111.111.111.111 в консоли (IP поменяйте на свой). Пароль можно вставить из буфера с помощью ПКМ, он не отображается для безопасности. Иногда пароль вставляется корректно только при включённой английской раскладке клавиатуры.

• Либо используйте веб-интерфейс «VNC» в панели VPS

• Либо используйте какое-либо SSH-приложение

Шаг 2: Обновите систему на сервере apt update && apt full-upgrade -y (займёт несколько минут)

Шаг 3: Перезагрузитесь reboot и через минуту подключитесь по ssh заново.

Шаг 4: Установите необходимые пакеты: apt install docker.io docker-compose git curl bash openssl -y

Шаг 5: Установите панель 3X-UI:

git clone https://github.com/MHSanaei/3x-ui.git

cd 3x-ui

git checkout v2.0.2

docker-compose up -d

Сейчас последняя версия панели — 2.0.2. Именно её мы ставим. Наверняка скоро появится более свежая версия — но теоретически она может чем-то отличаться. Версия 2.0.2 точно работает, рекомендую начинать с неё.

Шаг 6: Установите Warp: первой командой — удалите (если он был установлен хостером), второй — установите его в режиме совместимости с 3x-ui

warp u bash <(curl -sSL https://raw.githubusercontent.com/hamid-gh98/x-ui-scripts/ma…)

Во время установки скрипт спросит у вас цифру, нужно ответить 40000

Шаг 7: Сгенерируйте самоподписанный TLS-сертификат и скопируйте его в панель 3X-UI

openssl req -x509 -newkey rsa:4096 -nodes -sha256 -keyout private.key -out public.key -days 3650 docker cp private.key 3x-ui:private.key

docker cp public.key 3x-ui:public.key

На этом настройка сервера завершена.

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

первичная настройка панели 3X-UI

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Шаг 1: Откройте браузер и зайдите по адресу вида

http://111.111.111.111:2053/

Обратите внимание на http (не https) в начале адреса (но это только на старте, далее будет https). IP, конечно, нужно поменять на свой.

Шаг 2: Поменяйте язык на английский (в русском кривой перевод), тёмную тему, логин: admin , пароль: admin , и войти (кнопка Login).

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Шаг 3: В разделе «Panel Settings» заполните 4 поля как на скриншоте: — Panel Port (любое случайное число от 1000 до 65535, кроме 40000 — оно уже занято варпом, в инструкции я буду использовать 54321 — но вы придумайте своё). Далее везде вместо порта 54321 вставляйте своё число. — Panel Certificate Public Key Path : / public.key

— Panel Certificate Private Key Path : /private.key

— Panel URL Root Path: секретная строка для доступа к панели, которая начинается и заканчивается «/». Я использую /mysecreturl/ , но вы придумайте свою. Далее везде вместо строки /mysecreturl/ используйте свою.

Наконец, сохранитесь (кнопка Save вверху страницы) и обязательно перезагрузите панель (кнопка Restart Panel, Sure).

• Браузер выдаст ошибку. Поменяйте в адресной строке порт 2053 на 54321, обновите страницу.

• Браузер выдаст вторую ошибку «Подключение не защищено» (это потому что мы используем самоподписанный сертификат, но это временно). Нажмите на Дополнительно→Перейти на сайт, и вы опять окажетесь в панели.

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Шаг 4: В разделе Panel Settings -Security Settings укажите старые(admin/admin) и придумайте новые логин и пароль, жмите Confirm.

Шаг 5: Войдите в панель ещё раз с новым логином и паролем. Теперь панель будет всегда доступна по HTTPS адресу вида: https://111.111.111.111:54321/mysecreturl/ (где IP, Порт и Путь будут вашими собственными).

Сохраните где-нибудь URL доступа к панели, логин и пароль.

настройка Xray

Xray — прокси-сервер, которым управляет панель 3X-UI. Именно Xray поддерживает протокол VLESS с маскировкой.

Шаг 1: В панели перейдите в раздел «Xray Settings» и включите две опции:

— IPv4 Configs -> Use IPv4 for Google

— WARP Configs -> Route OpenAI (ChatGPT) througw WARP.

Затем в верху страницы сохранитесь (Save Settings) и перезагрузитесь (Restart Xray)

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост
Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Шаг 2: Пустите весь российский трафик на сервере через WARP. Для этого перейдите в раздел «Xray Settings»->»Routing Rules», найдите строку где написано » geosite:openai » и отредактируйте её, чтобы получилось: geosite:category-govru, regexp:.*\.ru$,geosite:openai

Наконец, добавьте новое правило через кнопку Add Rule (IP: geoip:ru , Outbound tag: WARP ) как на скриншоте.

Опять сохранитесь вверху страницы (Save Settings), затем перезагрузитесь (Restart Xray)

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Шаг 3: Найдите сайт-донор для маскировки.

Уже на 4-м шаге панель предложит вам маскироваться под сайт yahoo.com . В принципе он подходит. Но если у вас сервер в Европе — это даст задержки при открытии новых сайтов, поскольку сервера yahoo находятся в Америке.

Поэтому есть более простой вариант: найти небольшой сайт из той-же страны, где вы арендовали VPS, затем зайти на сервер по SSH и с сервера попинговать его. Если время отклика будет минимальное (например, 15мс) — он подходит.

Лучше всего выбирать что-нибудь из сети того же хостера, каким пользуетесь вы.
Для этого есть специальный инструмент: https://github.com/XTLS/RealiTLScanner

Скачиваете его под Windows/Linux со страницы Releases, или собираете сами (go build).

Далее, запускаете как-то так:

/RealiTLScanner -addr IP_вашего_VPS -showFail

и ждете.

Сканер будет перебирать IP-адреса из той же подсети, что и ваш сервер, и пытаться к ним подключиться по TLS. Если он что-то найдет — вы это увидите. Пример (я сканирую рандомный IPшник):

89.116.243.206:443 TLS handshake failed: EOF 89.116.243.207:443 TLS handshake failed: EOF 89.116.243.208:443 —— Found TLS v1.3 ALPN CN=caprover.com,O=CapRover.com,L=Vancouver,ST=British Columbia,C=CA,1.2.840.113549.1.9.1=#0c11696e666f40636170726f7665722e636f6d 89.116.243.209:443 TLS handshake failed: EOF 89.116.243.210:443 —— Found TLS v1.3 ALPN CN=patentpath.io 89.116.243.211:443 —— Found TLS v1.3 ALPN CN=vps3.gecon.pl 89.116.243.212:443 TLS handshake failed: EOF 89.116.243.213:443 TLS handshake failed: EOF 89.116.243.214:443 TLS handshake failed: EOF 89.116.243.215:443 TLS handshake failed: read tcp 192.168.136.132:55142->89.116.243.215:443: i/o timeout 89.116.243.216:443 —— Found TLS v1.3 ALPN CN=localhost,OU=none,O=none,L=Sometown,ST=Someprovince,C=US,1.2.840.113549.1.9.1=#0c137765626d6173746572406c6f63616c686f7374 89.116.243.217:443 TLS handshake failed: EOF 89.116.243.218:443 TLS handshake failed: EOF 89.116.243.219:443 TLS handshake failed: EOF 89.116.243.220:443 TLS handshake failed: EOF 89.116.243.221:443 TLS handshake failed: EOF 89.116.243.222:443 —— Found TLS v1.3 ALPN 89.116.243.223:443 —— Found TLS v1.3 ALPN CN=milapanel.milahosting.com 89.116.243.224:443 —— Found TLS v1.3 ALPN CN=vps-us.workx.dev 89.116.243.225:443 —— Found TLS v1.3 ALPN CN=www.google.com 89.116.243.226:443 —— Found TLS v1.3 ALPN CN=www.bookifynow.com 89.116.243.227:443 —— Found TLS v1.3 ALPN CN=next.tasosvl.cc 89.116.243.228:443 TLS handshake failed: EOF 89.116.243.229:443 —— Found TLS v1.3 ALPN CN=alpaca-dreams.com 89.116.243.230:443 TLS handshake failed: EOF

Если сканер нашел какие-то домены — попробуйте сходить на них браузером — должен открыться соответствующий сайт без каких-либо ошибок сертификатов. Если не открывается, или лезут ошибки — такой домен нам не подходит, а если открывается и ошибок нет — можно попробовать маскироваться под него.

Задержки 1100-1800 ms для Нидерландского сервера это норм для XTLS-Reality? Скорость не падает.

Да, норм. Два важных отличия от других технологий: 1) в отличие от VPN, где подключение к VPN-серверу устанавливается один раз и все, в случае с прокси, на каждое исходящее подключение из клиентского софта устанавливается новое подключение к прокси-серверу (если только не используется мультиплексирование) 2) поскольку через прокси невозможно послать ICMP-пинг, большинство клиентов меряют задержку не пингом, а выполнением HTTP-запроса.

Вот и считайте: когда вы запускаете тест, сначала устанавливается TCP-соединение с прокси-сервером (уже как минимум один, а то и два round-trip). Потом поверх него происходит TLS-хендшейк (ещё один round-trip), и в процессе него прокси-сервер ещё устанавливает TCP-соединение с reality-dest сервером и запрашивает у него сертификат. Потом прокси посылает запрос на установление TCP-соединения с тем сервером, который используется для теста. Потом, если URL указан как HTTPS, происходит ещё TLS-хендшейк с ним. Потом клиент делает HTTP-запрос и ждёт получения ответа. И только после ответа вы видите результат теста, и «задержка» — это суммарное время всего вышеописанного процесса.

Хотите минимальные задержки — маскируйтесь под какой-нибудь сервер, который находится в сети того же хостера, что и вы

Я арендовал сервер в Нидерландах, поэтому выбрал голландский новостной сайт nltimes.nl — попинговал его с VPS-сервера: вижу время отклика 6мс, он подходит

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Шаг 4: Настройте VLESS

В разделе (Inbound) — (Add inbound) надо заполнить указанные на скриншоте поля.
Самое важное:

— Remark и Email — любые строки (не обязательно адрес эл.почты), ни на что не влияют.

— Listening IP — укажите ваш IP

— Port — строго 443, чтобы маскироваться под обычный https-сайт.

— Только после выбора Security: Reality появится возможность выбора Flow: xtls-rprx-vision

— uTLS — именно Chrome, чтобы маскироваться под самый популярный браузер

— Dest, Server Names — указать сайт-донор (хотя можно оставить yahoo.com)

— Кнопка (Get new cert) генерирует ключи.

— (Create) завершает создание.

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Шаг 5: Получите ключ VLESS

Осталось в разделе Inbounds нажать на (три точки) -> Export Links …

… и система даст скопировать строку-ключ вида:

vless://e034d537-b028-41f0-9e53-5f0838ea8b3b@111.111.111.111:443?type=tcp&security=reality&pbk=D0Bfsax3Ble2KiqDrOu3_qMJw7qVKyrnWgpvDTVkb3M&fp=chrome&sni=nltimes.nl&sid=64edf3b5&spx=/&flow=xtls-rprx-vision#My VLESS-Reality

Сохраните её в удобном месте.

настройка клиента (на компьютерах и телефонах)

Здесь всего три шага:

  1. Установить приложение
  2. Вставить туда строку-ключ с сервера
  3. Настроить прямое соединение с Рунетом

Приложений много, они есть практически под все платформы, и они проверены временем.

Windows:

Android:

iOS:

macOS:

Настройка Hiddify-Next

Лидером среди приложений является Hiddify‑Next от наших иранских коллег.

Основные его плюсы:

  • Крайне простой и понятный интерфейс «одна кнопка», минимум настроек.
  • Русский язык
  • Доступен под все платформы кроме iOS (но разработчики скоро сделают и его)

Интерфейс настолько простой, что я решил не делать скриншотов.

После установки приложения надо сделать всего две вещи:

  • В настройках установить Регион: RU
  • Скопировать в буфер и вставить в приложение строку‑ключ vless через кнопку (+)

Всё! Можно нажимать на огромную круглую кнопку — и прокси заработает!

Особенности Hiddify-Next на Windows:

Приложение может работать в двух режимах:

  • Системный прокси (по умолчанию)
  • TUN-режим

Большинство приложений (в том числе браузеры) понимает первый режим. Но не все. Если какое‑то приложение на Windows не видит ваш прокси — переключитесь в TUN‑режим (в настройках Hiddify‑Next). Чтобы TUN‑режим заработал, Hiddify‑Next необходимо запустить в «режиме администратора» (программа сама вам об этом скажет).

Особенности Hiddify‑Next на Android:

На андроиде есть супер‑удобная опция «Раздельное проксирование» (в настройках Hiddify‑Next). На iOS такого нет.

Раздельное проксирование позволяет выбрать, какие приложения будут использовать прокси. Например, я могу выбрать опцию «Проксировать только выбранные приложения» и поставить галочки на: «Нельзяграм, Канву и Хром». После включения прокси, только эти три приложения будут использовать прокси, а остальные (банковские приложения, яндекс‑карты и все остальные) продолжат соединяться со своими серверами напрямую.

Если настроить раздельное проксирование для выбранных приложений — прокси на телефоне можно держать включённым постоянно.

Настройка Streisand (iOS)

Streisand — бесплатное приложение, но в декабре оно на несколько дней становилось платным. Если оно опять станет платным в будущем (~200р) — считаю что оно стоит своих денег.

Итак, всё те же два шага:

  1. Скопировать в буфер и вставить в приложение строку-ключ vless через кнопку (+)
  2. Настроить прямое соединение с Рунетом. Тут несколько шагов.

    Сначала — скопировать эту длинную строку с настройками в буфер.

streisand://aW1wb3J0L3JvdXRlOi8vWW5Cc2FYTjBNRERWQVFJREJBVUdEaGdaR2xWeWRXeGxjMTFrYjIxaGFXNU5ZWFJqYUdWeVZHNWhiV1ZlWkc5dFlXbHVVM1J5WVhSbFozbFVkWFZwWktJSEU5VUlDUW9MREEwT0R4QVNXMjkxZEdKdmRXNWtWR0ZuWFdSdmJXRnBiazFoZEdOb1pYSldaRzl0WVdsdVVtbHdWMjVsZEhkdmNtdFdaR2x5WldOMFZtaDVZbkpwWktDaEVWaG5aVzlwY0RweWRWZDBZM0FzZFdSdzFCUVZDZ3dORGhZU1cyOTFkR0p2ZFc1a1ZHRm5YV1J2YldGcGJrMWhkR05vWlhLaEYxbGtiMjFoYVc0NmNuVlpVbFV0WkdseVpXTjBYRWxRU1daT2IyNU5ZWFJqYUY4UUpFUkROVGxETXpsRExVUXdSRVl0TkRsR015MDVRVEl3TFVFMlJUVkVSakkwUkRaRE9RQUlBQk1BR1FBbkFDd0FPd0JBQUVNQVRnQmFBR2dBYndCeUFIb0FnUUNJQUlrQWl3Q1VBSndBcFFDeEFMOEF3UURMQU5VQTRnQUFBQUFBQUFJQkFBQUFBQUFBQUJzQUFBQUFBQUFBQUFBQUFBQUFBQUVK

Затем — вставить её в приложение через «+» справа‑вверху.

Наконец, зайди в «Роутинг», и там (поставить галочку), (нажать на «включить») и вернуться назад (стрелка слева)

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Можно подключаться! (при первом подключении телефон попросит пароль).

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

upd: у меня нет macOS чтобы проверить, но @Spoofi подсказал, что MacOS Hiddify Next на данный момент «не умеет» tun-режим (о tun я писал выше), но это умеет FoxRay.

upd 25.01. Streisand начал показывать рекламу. Чтобы она не мешала — после завершения всех настроек — вы сможете включать/выключать VPN через настройки системы, а не через интерфейс приложения. Другой вариант — пользоваться платным ShadowRocket. В конце статьи будут ссылки — там можно найти инструкции по настройке ShadowRocket. Если же вы настраиваете прокси впервые — рекомендую начать именно со Streisand.

проверка прокси

Если вы всё сделали по инструкции — у вас на устройствах уже должен быть работающий прокси. Но выполняет ли он свою функцию? Не обманул ли продавец VPS? Сейчас проверим.

  1. Убедитесь, что прокси включён.
  2. В браузере зайдите на https://ipinfo.io/ . Вы видите IP вашего VPS? Значит прокси работает и и вы всё настроили верно.
  3. Откройте браузер и зайдите на https://rutracker.org. Открывает? значит РФ‑цензуру обошли.
  4. Откройте браузер в режиме инкогнито и зайдите на https://maps.google.com. Вы видите карту той страны где покупали VPS? Вероятно ip «чистый».
  5. Ещё раз посмотрите на https://ipinfo.io/ . Справа в разделе country вы видите ту страну в которой находится VPS? Значит ip «чистый».
  6. Зайдите на https://canva.com Вы видите нормальный сайт и вас не посылают за то что вы из РФ? Значит западную цензуру обошли.
  7. Зайдите на https://google.com Нет ошибки 403 и поиск доступен? Значит гугл не забанил ранее ваш IP.

Если что‑то пошло не так:

  • п2 и п3: скорее всего где‑то ошиблись в выполнении инструкции, перепроверьте.
  • п4,5,6 — вероятно хостер предоставил вам «грязный» IP, который числится в базах как российский. Есть шанс, что в течение двух недель базы обновятся… либо не обновятся. Имеет смысл написать в техподдержку хостеру, описать ситуацию и попросить поменять IP. Большинство идут на сотрудничество.
  • п7 — просите хостера поменять IP.

Запасной план:

Если какой‑либо западный сайт не пускает вас к себе через VPS, то в качестве костыля можно пустить трафик до этого сайта через WARP.

Для этого в панели 3x-ui->Xray Settings->Routing Rules нужно найти и отредактировать строку geosite:category-gov-ru,regexp:.*\.ru$,geosite:openai — дописать сайты через запятую, пример geosite:category-gov-ru,regexp:.*\.ru$,geosite:openai,intel.com,canva.com (обязательно сохраните изменения и перезагрузите Xray)

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

Да, покупка IP‑адреса — это всегда лотерея и есть небольшой шанс проблем, но чаще всего всё работает с первого раза.

настройка CDN CloudFlare

Переходим к последнему, самому интересному разделу.

Любое управление рисками сводится к трём шагам:

  • Определить риск (в данном случае, это риск, что рф-цензура заблокирует ваш сервер)
  • Минимизировать риск (вы это уже сделали, воплотив знания из «Теории ч3»)
  • Определить План Б на тот редкий случай, если риск всё-же реализуется.

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

Проксирование через CDN — это и есть «План Б». Сейчас вы настроите ещё одно, запасное соединение, которое будет работать, даже если ваш VPS станет недоступен изнутри РФ.

Шаг 1: Выберите продавца доменного имени и убедитесь что доменное имя свободно (см. Теория ч2), но НЕ ПОКУПАЙТЕ его пока. CloudFlare работает только с доменными именами второго уровня (есть исключения, но они нам не помогут). Доменное имя второго уровня — это имя с одной точкой, вроде mypersonalsite.com или myhabraproxy.ru.

Для этой инструкции я выбрал доменное имя habraproxy.store у продавца Dreamhost. Прямо сейчас dreamhost бесплатно раздаёт доменные имена.store на 1 год — но эта халява только для клиентов, которые в прошлом что‑то уже покупали.

Итак, продавец выбран, доменное имя выбрано но не куплено, идём дальше.

Шаг 2: Зарегистрируйтесь на CloudFlare.com (Sign Up — Тариф Free — Add Website — e‑mail+пароль). Сохраните пароль, подтвердите аккаунт по ссылке из письма.

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Шаг 3: Зайдите в CloudFlare, в верхнем разделе «Websites» добавьте ещё не купленное доменное имя. Далее — Тариф Free — Continue… пока наконец вы не попадёте на страницу «Change your nameservers» с двумя оранжевыми облаками.

Эти две строки нам понадобятся. Ваши

Шаг 4: Теперь смело покупайте ваше доменное имя, а во время покупки укажите, что будете использовать name-сервера свои, а не те что предлагает продавец. Впишите эти две строки и завершите покупку.

На скриншоте — сайт моего продавца.

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Итак, вы купили домен и указали нужные неймсервера. Активация свежекупленного домена займёт несколько минут, самое время донастроить CloudFlare.

Шаг 6: В разделе (DNS) создайте A‑запись для вашего домена и IP вашего сервера. У меня это выглядит вот так:

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Шаг 7: (обойдусь без скриншотов)

  • В разделе (Network) включите «gRPC»
  • В разделе (SSL/TLS)—(Edge Certificates)—(Minimum TLS Version) установите «TLS 1.3»
Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Шаг 8: В разделе (Rules)—(Origin Rules) создайте два правила:

(1) Все запросы на сервер направляйте на порт 54321 (укажите порт, на котором работает ваша панель 3xui)

(2) Все запросы по секретному адресу /my-gRPC-3049382 (придумайте что-то своё) направляйте на порт 2053

Последовательность этих двух правил важна.

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Шаг 9: Вернитесь на (Overview), и если под оранжевыми облаками найдёте кнопку «Check nameservers now» — нажмите её, чтобы поторопить систему.

(если прошло много времени и там нет ни облаков, ни кнопки — вообще отлично, переходите к следующему шагу)

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Шаг 9¾: Создайте второе VLESS-подключение для CDN.

Вернитесь в панель 3X-UI. Inbound -Add Inbound

Самое важное:

— Порт — тот же, что и во «втором правиле». 2053 или любой другой на ваш выбор (но смысла менять его на другой не вижу).

— Transmission — gRPC, именно такой тип соединения безлимитен на CloudFlare.

— Service name — секретная строка из «второго правила» my-gRPC-3049382, но строго без «/» в начале.

— uTLS — именно Chrome, чтобы маскироваться под самый популярный браузер

— ALPN сделайте пустым.

— Кнопка (Get Сert from Panel) вписывает ключи.

— Allow Insecure — включайте на время тестирования, когда начнёте пользоваться CDN — можно будет выключить.

Наконец, проверяйте что получилось. Экспортируйте строку-ключ этого нового соединения и скопируйте её в приложение — прокси должен работать. (пока это не CDN, вы лишь подключились к своему VPS через порт 2053 по протоколу VLESS-gRPC, но скоро вместо вас это будет делать CloudFlare)

Update. В новых версиях многих приложений появился либо баг, либо «фича», которая делает их несовместимыми с этим шагом. Вероятно особенность в новой версии ядра sing-box, которое лежит в основе всех клиентских приложений.

Что делать? Использовать проверенную версию приложения Hiddify-Next версии 0.11.1

Что делать если у вас iOS, где доступны только свежие версии приложений?
a) выполните этот шаг по инструкции и смиритесь с тем, что прямое соединение не заработает, оно пригодится на шаге 13
b) выполните шаг 13 по обновлённой инструкции, CDN заработает.

Шаг 10: Финальная настройка CloudFlare.

Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Обновите раздел Overview.

CloudFlare должен вас обрадовать сообщением: «Great news! Cludflare is now protecting your site«

Если этого сообщения нет, а вместо него — страница, на которой остались два оранжевых облака — значит одно из двух:

  • Нужно ещё немного подождать
  • Вы что-то сделали не так.
Настраиваем сервер и клиент. VPS, 3X-UI, XRay с XTLS-Reality/CDN и Warp. Подробный разбор и как это всё организовать Гайд, Интернет, Информационная безопасность, Длиннопост

Если всё так, тогда: в разделе SSL/TLS включите режим Full

Теперь вы точно завершили настройку CloudFlare.

Шаг 11: Проверка.

Откройте браузер и перейдите по адресу https://habraproxy.store/mysecreturl/ (меняйте имя сайта на своё, и адрес страницы на свой — тот что установили для панели 3x-ui).

Откроется панель 3x-ui. Теперь управлять панелью вы будете с этого адреса!

Сохраните этот адрес где-нибудь.

Шаг 12: Ещё одна проверка.

Откройте браузер по адресу https://habraproxy.store и убедитесь, что там пустая страница 404.

Это значит любой цензор, зайдя на ваш сайт, убедится: там есть настоящий веб-сервер. В качестве веб-сервера выступает сама панель 3x-ui, которая отдаёт 404 ошибку на любой неизвестный ей адрес. Никакой внешний наблюдатель не узнает адрес панели (/secreturl/). А если цензор послушает трафик, то увидит зашифрованный поток gRPC, который используется для обслуживания веб-приложений по всему интернету.

Шаг 13: Настало время МАГИИ:

Отредактируйте строку-ключ второго подключения:

  • Замените IP на доменное имя,
  • Замените порт на :443,
  • Удалите &alpn=&allowInsecure=1
  • Добавьте (перед #) &sni=habraproxy.store впишите свой домен, не мой:)
  • Отредактируйте имя (после #) по своему желанию

Было: vless://03684ba0-1994-4106-86da-e91fdd9007e0@111.111.111.111:2053?type=grpc&serviceName=my-gRPC-3049382&security=tls&fp=chrome&alpn=&allowInsecure=1#My CDN-tjo1gifl

Стало: vless://03684ba0-1994-4106-86da-e91fdd9007e0@habraproxy.store:443?type=grpc&serviceName=my-gRPC-3049382&security=tls&fp=chrome&sni=habraproxy.store#My CDN

Наконец, копируйте эту строку в приложениепроверяйте работоспособность и наслаждайтесь запасным каналом для своего прокси.

Самое время процитировать @MiraclePtr:

Fair use
Понятное дело, что то, что CDN разрешают на своих бесплатных тарифах проксировать Websockets и gRPC — это такой жест доброй воли от них. Давайте не наглеть и использовать эти возможности только в совсем безвыходных случаях, которые, надеюсь, все‑таки не наступят.

</КОНЕЦ ИНСТРУКЦИИ>

Недостатки этого решения

  1. «Сложность» настройки:
    Безусловно, купить VPN за 100 рублей в месяц намного проще, чем впервые в жизни настроить «вот это всё». Я не строю иллюзий, что «все домохозяйки в стране сделают прокси частью своего хозяйства». Это решение — для небольшого числа людей, которые очень ценят свободу информации, очень ценят надёжность и готовы инвестировать своё внимание во всякое «технарское колдунство».
  2. Периодическая недоступность VPS:
    Uptime бюджетного VPS — примерно 99.9% (бывает и выше, и ниже). Это значит, что примерно 42 минуты в месяц VPS может быть недоступен (иногда эти минуты растягиваются до часов и даже дней). То есть вы гарантированно однажды встретитесь с ситуацией, когда VPS временно не отвечает ни по IP, ни через CDN. Причин множество, я встречался как минимум с этими тремя: факап хостера, DDOS‑атака на хостера, проблемы в дата‑центре где физически находится VPS (на которые сам хостер повлиять не может).Я решаю этот вопрос просто — у меня два сервера от разных хостерах в разных странах (основной и запасной), этого хватает.Другое решение — на случай форс‑мажора иметь под рукой запасную строку‑ключ (shadowsocks, vless, trojan) от какого‑нибудь бесплатного сервиса, благо в телеграмме их полно. Конечно, передавать свой трафик через бесплатный сервис — это стрёмно, но если VPS недоступен, а доступ нужен срочно, то временное использование бесплатного сервиса может оказаться приемлемым, решайте сами.
  3. Доверие китайским программистам:
    Хотя и сервер, и клиенты — это opensource приложения (основанные на Xray и SingBox), они не проходили независимый аудит, и теоретически там могут быть ошибки, а разработчики — тоже теоретически — могут добавить зловредный код в новые версии (впрочем, такое можно сказать про любое opensource‑решение, но это не мешает существованию опенсорса в мире). Один из вариантов управления этим риском — использовать проверенные версии клиентских и серверных приложений.