Обход блокировки Ютуб и Дискорд.Интернет-пространство становится все более ограниченным, и многие пользователи сталкиваются с блокировкой популярных ресурсов, таких как YouTube и Instagram.У меня уже была подобная статья - в этой добавился пункт с настройкой CDN Cloudflare. В этой статье рассмотрен способ обхода цензуры путем создания своего VPN, используя протокол VLESS XTLS Reality, который позволяет получить доступ к сайтам, блокирующим пользователей из Российской Федерации. На данный момент vless-xtls-reality не может быть обнаружен с помощью DPI (глубокой проверки пакетов) даже в таких странах, как Китай. Однако следует учитывать, что регуляторы могут применить другие методы блокировки. Для повышения надежности обратите внимание на следующие советы:Что нельзя делать:1. Не используйте VPS для протоколов, которые могут быть обнаружены. Например, такие как WireGuard, OpenVPN, Shadowsocks и другие. Некоторые провайдеры блокируют VPS, на которых ранее использовались подобные протоколы.2. Не заходите в рунет через VPS. Лучше осуществлять доступ к российским сайтам напрямую, минуя прокси. В крайнем случае, используйте цепочку Я->VPS->Warp->Рунет. Это предотвратит подозрения со стороны цензоров, так как двойное пересечение границы (туда и обратно) в короткий промежуток времени может вызвать подозрения и блокировку прокси.3. Ограничьте доступ к прокси небольшим кругом пользователей. Идеально — до 5 человек. В Китае аномальный трафик к серверу от большого числа пользователей может привести к блокировке сервера, и российские провайдеры могут перенять этот опыт. Соблюдая эти правила, доступ к серверу будет трудно заблокировать. Однако для дополнительной безопасности рекомендуется подготовить “План Б” — проксирование трафика через CDN (сеть доставки контента).CloudFlare Warp Warp — это публичная сеть прокси, предоставляемая CloudFlare, использующая протокол WireGuard. В России подключение к Warp невозможно, но с зарубежного VPS — вполне реально. В этом сценарии Warp выполняет две функции:1. Обход западной цензуры — некоторые западные сайты могут блокировать доступ с вашего VPS, но с помощью Warp можно обойти эти ограничения.2. Дополнительная защита от блокировок — проксирование запросов от VPS в российский интернет, чтобы не компрометировать VPS.Первое что вам будет нужно - VPS сервер. Говоря о том, что нам там предлагают под наши цели — это виртуальные VPS сервера, расположенные в странах европы, России и США. С реальной скоростью соединения с сервером примерно 700-800 мбит/с и безлимитным трафиком (что очень важно для VPN сервера). Лично я буду использовать хостера Aeza - дешевый и стабильный, с нормальными характеристиками сервера, он полностью подходит под наши требования.1. Пошаговая инструкция: настройка VPS1. Зарегистрируйтесь на сайте хостинг-провайдера и перейдите в личный кабинет.2. Выберите виртуальный сервер с тарифом Shared, минимальной конфигурацией и операционной системой Ubuntu 22.04.3. Отключите бэкапы и оплатите аренду сервера.4. Подождите активации сервера, после чего получите данные для авторизации.Подключение и настройка сервера1. Подключитесь к серверу по SSH, используя командуssh root@ip-адрес2. Обновите систему:apt update && apt full-upgrade -y3. Перезагрузите сервер: reboot4. Установите необходимые пакеты:apt install docker.io docker-compose git curl bash openssl nano -y5. Установите панель управления 3X-UI версии 2.0.2:Внимание: я делал инструкцию для версии 2.0.2, если вы хотите сделать все в точности по инструкции, используйте эту же версию. В новых поменялся интерфейс и логика работы с WARP, я же создавал инструкцию и делал скриншоты именно с версии v2.0.2, она стабильная и самодостаточная.• Склонируйте репозиторий и установите 3x-ui v2.0.2:git clone https://github.com/MHSanaei/3x-ui.git cd 3x-ui nano docker-compose.ymlоткроется текстовый редактор:в 6 строке замените "latest" на "v2.0.2"было: image: ghcr.io/mhsanaei/3x-ui:latestстало: image: ghcr.io/mhsanaei/3x-ui:v2.0.2чтобы сохранится, нажмите: CTRL+X, Y, ENTERИ используем командуdocker-compose up -d6. Установите Warp, используя скрипт:• Удалите старую версию: warp u• Установите новую версию:bash <(curl -sSL https://raw.githubusercontent.com/hamid-gh98/x-ui-scripts/main/install_warp_proxy.sh)Во время установки скрипт спросит у вас цифру, нужно ответить 40000.7. Сгенерируйте самоподписанный TLS-сертификат и скопируйте его в панель 3X-UI:openssl req -x509 -newkey rsa:4096 -nodes -sha256 -keyout private.key -out public.key -days 3650 -subj "/CN=APP" docker cp private.key 3x-ui:private.key docker cp public.key 3x-ui:public.keyПока что остановимся с настройкой сервера, вернемся к этому еще раз позже.2. Настройка панели 3X-UI1. Откройте панель управления в браузере по адресу http://ip-адрес:2053/.2. Войдите в систему, используя логин admin и пароль admin.3. В разделе “Panel Settings” укажите следующие параметры:• 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”. После перезапуска панели обновите страницу, изменив порт в адресной строке на новый.4. В разделе “Security Settings” замените стандартные логин и пароль на новые.Теперь панель будет доступна по HTTPS-адресу вида https://:<ваш порт>/<ваш путь>/.Настройка Xray1. Перейдите в раздел “Xray Settings” и включите следующие опции:• IPv4 Configs -> Use IPv4 for Google.• WARP Configs -> Route OpenAI (ChatGPT) через WARP.Сохраните настройки и перезагрузите Xray.2. В разделе “Routing Rules” настройте правила маршрутизации, чтобы направить весь российский трафик через WARP:• Отредактируйте строку “geosite:openai”, добавив geosite:category-gov-ru,regexp:.*\.ru$,geosite:openai• Добавьте новое правило: IP: geoip:ru, Outbound tag: WARP.В итоге благодаря этому мы видим следующую картину - РУ трафик идет через WARP, а зарубежный через сервер.Сохраните настройки и перезагрузите Xray.3. Маскировка под сайт и получение ключа1. Найдите сайт для маскировки. Не советую использовать малоизвестные и мелкие сайты, в моменте они могут перестать работать должным образом, сам недавно с этим столкнулся. Пробуйте yadndex.ru, google.com, cloudflare.com и подобное. Проверьте время отклика сайта с сервера, найдите сайт м наименьшим откликом и используйте его.Не используйте сайт со скриншота - просто пример.Не используйте сайт со скриншота - просто пример.Проверяем командой ping <адрес сайта>, например ping cloudflare.com.Настройте 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) завершает создание.Добавление пользователя.Нажимаем на три точки и Add Client.Тут вводим Email - это название профиля (необязательно, можно оставить то, что изначально). И выбираем Flow - xtls-rprx-vision. Нажимаем Add Client, идем дальше.Получите ключ VLESS: Жмем на QR код в строке с вашим профилем.Открывается QR, нажатием на него копируется ключ vless, выглядит следующим образом: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=%2F&flow=xtls-rprx-vision#NiceVPN-%D0%94%D0%BB%D1%8F%20%D1%81%D1%82%D0%B0%D1Сохраните его в удобном месте, нужен для подключения.4. Настройка защиты сервера:3.1. Установка и настройка UFW, обязательно сделать:Идем обратно в cmd, подключаемся по ssh. Убедитесь, что находитесь не в репозитории 3x-ui, просто введите cd и нажмите Enter.Для защиты сервера установите и настройте брандмауэр UFW:sudo apt install ufw -yОткройте только необходимые порты:sudo ufw allow 22/tcp # SSH, оставляем 22 sudo ufw allow 54321/tcp # Порт панели 3x-ui, меняем на ваш, который указывали выше sudo ufw allow 443/tcp # Порт для VLESS/XTLS Reality, оставляем 443 sudo ufw allow 2053/tcp # В случае, если настраиваем CDN.Включите UFW:sudo ufw enable3.2. Настройка Fail2ban, делаем по желанию, но советую сделать, 5 минут по времени.УстановкаЕсли до этого вы не обновляли базы данных apt, то установку можно начать с этого:sudo apt update sudo apt upgradeПосле обновления apt можно переходить к установке Fail2ban:sudo apt install fail2banТеперь активируем Fail2ban, чтобы она автоматически запускалась после перезагрузки сервера:sudo systemctl enable fail2banПеред запуском Fail2ban в работу осталось настроить параметры фильтрации, по которым будет происходить блокировка IP.НастройкаПо умолчанию Fail2ban использует правила блокировки, указанные в файле jail.conf. Это системный файл, который обновляется вместе с программой, поэтому использовать его в качестве основного файла с параметрами блокировки не рекомендуется.Мы создадим собственный конфигурационный файл jail.local. Система приоритетов в Fail2ban настроена таким образом, что в качестве основных применяются правила, указанные в jail.local.Структура конфигурационного файлаКонфигурационный файл Fail2ban состоит из так называемых jail-ов — отдельных блоков правил для разных служб. В одном файле jail.local можно не только указать все правила для всех сетевых служб сервера, но и управлять их включением и выключением.Структура всех jail-ов одинакова:В первой строке в квадратных скобках указывают название службы, к которой будет применяться следующий ниже набор правил. В нашем случае это [sshd].Далее определяют параметр enabled, отвечающий за включение или отключение данного jail-а. Мы установим его true, чтобы наш jail был активен.После этого указывают условия блокировки: максимальное количество попыток подключения (maxretry), время, за которое эти попытки были произведены (findtime), и время, на которое нужно запретить доступ с этого IP (bantime).В последней части jail-а указывают IP-адреса, которые считаются надёжными (ignoreip), например, IP-адрес вашего домашнего компьютера.Мы рекомендуем добавить в строку ignoreip домашний адрес вашего компьютера, чтобы в случае особо жёстких настроек фильтрации программа не заблокировала вам доступ к серверу — например, после нескольких неудачных попыток ввода пароля.Создадим конфигурационный файл:sudo vim /etc/fail2ban/jail.localТекст конфигурационного файла будет примерно таким:[sshd] enabled = true maxretry = 6 findtime = 1h bantime = 1d ignoreip = 127.0.0.1/8 23.34.45.56Этот набор условий означает, что IP-адрес, с которого было произведено 6 неудачных попыток SSH-подключения за последний час (3600 секунд), будет заблокирован на одни сутки (86400 секунд). Не будут блокироваться IP-адреса в диапазоне от 127.0.0.1 до 127.0.0.8 и адрес 23.34.45.56 (указываем свое).Время для параметров findtime и bantime можно указывать не только в секундах, но и в минутах, часах, днях и даже неделях. Для этого необходимо сразу после численного значения параметра указать соответствующую букву (m, h, d, w).Получение уведомленийПосле строки с указанием надёжных IP можно добавить параметр, отвечающий за отправку на e-mail уведомлений о заблокированных IP.Добавьте в конфигурационный файл строку:destemail=admin@example.comТеперь на указанную здесь почту будут приходить уведомления о каждом заблокированном программой IP-адресе.Чтобы получать более детальную информацию о заблокированных IP, на сервер можно установить службу whois:sudo apt install whoisВ этом случае в письма о блокировке будут добавлены более подробные сведения, получаемые службой whois.Будьте внимательны при настройке уведомлений!Fail2ban отправляет отдельным письмом сведения о каждом заблокированном IP, а в случае брутфорс-атаки количество IP, с которых проводится подключение, может достигать нескольких сотен.Начало работыПосле создания конфигурационного файла, содержащего все необходимые правила, можно запускать Fail2ban и наблюдать за его работой.Команда для запуска программы:sudo systemctl start fail2banКоманда для вывода на экран сведений о работе jail-а, отвечающего за службу sshd:sudo fail2ban-client status sshdЕсли в данный момент сервер не подвергается атаке, сразу после установки и запуска программы на экране будет следующая информация:Status for the jail: sshd |- Filter | |- Currently failed: 0 | |- Total failed: 0 | `- File list: /var/log/auth.log `- Actions |- Currently banned: 0 |- Total banned: 0 `- Banned IP list:Здесь приведены сведения о попытках подключения к серверу и о заблокированных IP-адресах.Если вы решите изменить настройки, указанные в конфигурационном файле jail.local, не забудьте перезапустить Fail2ban, чтобы изменения вступили в силу:sudo systemctl restart fail2banПодключение к клиенту VLESSHiddify. Для Windows и Android.1. Загрузите и установите приложение Hiddify с [GitHub](https://github.com/hiddify/hiddify-next/releases) или через Google Play для Android.2. Скопируйте ключ, который был создан ранее, и откройте приложение.3. Создайте новый профиль, выбрав опцию добавления из буфера обмена.4. Подключитесь, нажав кнопку «Нажмите для подключения». После этого ваш IP-адрес изменится на IP-адрес вашего сервера.Streisand. Для IOS1. Загрузите приложение Streisand из [App Store](https://apps.apple.com/ru/app/streisand/id6450534064).2. Скопируйте ранее созданный ключ и откройте приложение.3. Добавьте ключ через опцию «Добавить из буфера обмена».4.Включите VPN, нажав на кнопку включения. Ваш IP-адрес теперь будет заменен на IP-адрес вашего сервера.FoxRay. Для MacOS1. Скачайте приложение FoXray из AppStore по ссылке ниже:FoXray2. Скопируйте ссылку для подключения.3. Запустите приложение FoXray и нажмите на иконку вставки текста.4. Готово, профиль добавлен! Теперь нажмите на кнопку "Play", далее разрешите добавление конфигурации VPN и можете пользоваться VPN соединением.Настройка CDN CloudFlareПереходим к последнему, самому интересному разделу.Любое управление рисками сводится к трём шагам:Определить риск (в данном случае, это риск, что рф-цензура заблокирует ваш сервер)Минимизировать риск (вы это уже сделали, воплотив знания из "Теории ч3")Определить План Б на тот редкий случай, если риск всё-же реализуется.Хотя я не верю, что - с принятой предосторожностью - сервер вообще может быть когда-либо заблокирован, но обычно реальность не интересуется нашими верованиями.Проксирование через CDN - это и есть "План Б". Сейчас вы настроите ещё одно, запасное соединение, которое будет работать, даже если ваш VPS станет недоступен изнутри РФ.Шаг 1: Выберите продавца доменного имени (в моем случае он все тот же - Аеза) и убедитесь что доменное имя свободно (см. Теория ч2), но НЕ ПОКУПАЙТЕ его пока. CloudFlare работает только с доменными именами второго уровня (есть исключения, но они нам не помогут). Доменное имя второго уровня — это имя с одной точкой, вроде mypersonalsite.com или myhabraproxy.ru.Для этой инструкции я выбрал доменное имя habraproxy.store у уже знакомого продавца Aeza. Внимание: я не призываю покупать домен тут, есть сайты где домен куда дешевле. В случае же с сервером - цена/качество тут на уровне. Переходим во вкладку "Домен", выбираем что по душе и подешевле и оплачиваем.Итак, продавец выбран, доменное имя выбрано но не куплено, идём дальше.Шаг 2: Зарегистрируйтесь на CloudFlare.com (Sign Up — Тариф Free — Add Website — e‑mail+пароль). Сохраните пароль, подтвердите аккаунт по ссылке из письма.Шаг 3: Зайдите в CloudFlare, в верхнем разделе "Websites" добавьте ещё не купленное доменное имя. Далее - Тариф Free - Continue... пока наконец вы не попадёте на страницу "Change your nameservers" с двумя оранжевыми облаками.Эти две строки нам понадобятся. Ваши строки могут отличаться от моих.Мы пойдём другим путёмШаг 4: Теперь смело покупайте ваше доменное имя, а во время покупки укажите, что будете использовать name-сервера свои, а не те что предлагает продавец. Впишите эти две строки и завершите покупку.Итак, вы купили домен и указали нужные неймсервера. Активация свежекупленного домена займёт несколько минут, самое время донастроить CloudFlare.Шаг 6: В разделе DNS создайте A‑запись для вашего домена и IP вашего сервера. У меня это выглядит вот так:Шаг 7: В разделе Network включите "gRPC" (обойдусь без скриншота).Шаг 8: В разделе Rules->Origin Rules создайте два правила:(1) Все запросы на сервер направляйте на порт 54321 (укажите порт, на котором работает ваша панель 3xui)(2) Все запросы по секретному адресу /my-gRPC-3049382 (придумайте что-то своё) направляйте на порт 2053Последовательность этих двух правил важна.Нажми на кнопку - получишь результат!Шаг 9: Вернитесь на Overview, и если под оранжевыми облаками найдёте кнопку "Check nameservers now" - нажмите её, чтобы поторопить систему.(если прошло много времени и там нет ни облаков, ни кнопки - вообще отлично, переходите к следующему шагу)Шаг 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)Шаг 10: Финальная настройка CloudFlare.Каково это, быть избранным?Обновите раздел Overview.CloudFlare должен вас обрадовать сообщением: "Great news! Cludflare is now protecting your site"Если этого сообщения нет, а вместо него - страница, на которой остались два оранжевых облака - значит одно из двух:Нужно ещё немного подождатьВы что-то сделали не так.Если всё так, тогда: в разделе 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,Удалите allowInsecure=1Отредактируйте имя (после #) по своему желаниюБыло: 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%20CDN-tjo1giflСтало: vless://03684ba0-1994-4106-86da-e91fdd9007e0@habraproxy.store:443?type=grpc&serviceName=my-gRPC-3049382&security=tls&fp=chrome&alpn=My%20CDNНаконец, копируйте эту строку в приложение, проверяйте работоспособность и наслаждайтесь запасным каналом для своего прокси.Понятное дело, что то, что CDN разрешают на своих бесплатных тарифах проксировать Websockets и gRPC — это такой жест доброй воли от них. Давайте не наглеть и использовать эти возможности только в совсем безвыходных случаях, которые, надеюсь, все‑таки не наступят.Спасибо за прочтение этой статьи, теперь ты можешь смотреть ютуб без замедления и посещать весь интернет без ограничений. Оцени пожалуйста статью, напиши свое мнение в комментариях. Я постарался сделать эту статью исчерпывающей и самодостаточной, чтобы своими руками настроить личный прокси‑сервер.