Лучший способ обхода всех блокировок. Создание своего сервиса: пошаговая инструкция. Обход блокировки Ютуб и Дискорд.
Одним из наиболее действенных методов для обхода блокировок YouTube является применение передовой технологии управления трафиком — протокола VLESS XTLS. Этот подход гарантирует не только высокий уровень защиты, но и стабилизирует скорость соединения, что позволяет пользователям обойти ограничения и наслаждаться контентом без задержек.
Проблема ограничения также затрагивает Discord, известную платформу для общения среди геймеров и профессиональных пользователей. Множество пользователей ищут способы преодолеть барьеры и продолжить общение с друзьями и коллегами. В этой связи протокол VLESS XTLS проявил себя как действенное решение для обеспечения свободного доступа к платформам для обмена мгновенными сообщениями в условиях ограничений.
Таким образом, современные протоколы, такие как VLESS XTLS, становятся важными инструментами для обхода блокировок YouTube и Discord. Это решение позволяет российским пользователям подключаться к глобальным интернет-ресурсам, защищаясь от цензуры и надежно получая доступ к необходимому контенту. Интернет-пространство всё больше сужается, и многие пользователи сталкиваются с ограничениями на доступ к популярным ресурсам, таким как YouTube и Instagram.
Все статьи в случае их блокировки, новости связанные с блокировками - можно найти в моем телеграмм канале.
Конец воды, начало статьи
В этой статье рассмотрен способ обхода цензуры путем создания своего 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 сервера). Лично я буду использовать хостера Аеза - дешевый и стабильный, с нормальными характеристиками сервера, он полностью подходит под наши требования.
1. Пошаговая инструкция: настройка VPS
1. Зарегистрируйтесь на сайте хостинг-провайдера и перейдите в личный кабинет.
2. Выберите виртуальный сервер с тарифом Shared, минимальной конфигурацией и операционной системой Ubuntu 22.04.
3. Отключите бэкапы и оплатите аренду сервера.
4. Подождите активации сервера, после чего получите данные для авторизации.
Подключение и настройка сервера
1. Подключитесь к серверу по SSH, используя команду
- ssh root@ip-адрес
2. Обновите систему:
- apt update && apt full-upgrade -y
3. Перезагрузите сервер: reboot
4. Установите необходимые пакеты:
- apt install docker.io docker-compose git curl bash openssl nano -y
5. Установите панель управления 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 -d
6. Установите 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-UI
1. Откройте панель управления в браузере по адресу 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://:<ваш порт>/<ваш путь>/.
Настройка Xray
1. Перейдите в раздел “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 enable
3.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
Подключение к клиенту VLESS
Hiddify. Для Windows и Android.
1. Загрузите и установите приложение Hiddify с [GitHub](https://github.com/hiddify/hiddify-next/releases) или через Google Play для Android.
2. Скопируйте ключ, который был создан ранее, и откройте приложение.
3. Создайте новый профиль, выбрав опцию добавления из буфера обмена.
4. Подключитесь, нажав кнопку «Нажмите для подключения». После этого ваш IP-адрес изменится на IP-адрес вашего сервера.
Streisand. Для IOS
1. Загрузите приложение Streisand из [App Store](https://apps.apple.com/ru/app/streisand/id6450534064).
2. Скопируйте ранее созданный ключ и откройте приложение.
3. Добавьте ключ через опцию «Добавить из буфера обмена».
4.Включите VPN, нажав на кнопку включения. Ваш IP-адрес теперь будет заменен на IP-адрес вашего сервера.
FoxRay. Для MacOS
1. Скачайте приложение FoXray из AppStore по ссылке ниже:
2. Скопируйте ссылку для подключения.
3. Запустите приложение FoXray и нажмите на иконку вставки текста.
4. Готово, профиль добавлен! Теперь нажмите на кнопку "Play", далее разрешите добавление конфигурации VPN и можете пользоваться VPN соединением.
Настройка CDN CloudFlare
Переходим к последнему, самому интересному разделу.
Любое управление рисками сводится к трём шагам:
Определить риск (в данном случае, это риск, что рф-цензура заблокирует ваш сервер)Минимизировать риск (вы это уже сделали, воплотив знания из "Теории ч3")Определить План Б на тот редкий случай, если риск всё-же реализуется.
Хотя я не верю, что - с принятой предосторожностью - сервер вообще может быть когда-либо заблокирован, но обычно реальность не интересуется нашими верованиями.
Проксирование через CDN - это и есть "План Б". Сейчас вы настроите ещё одно, запасное соединение, которое будет работать, даже если ваш VPS станет недоступен изнутри РФ.
Шаг 1: Выберите продавца доменного имени (в моем случае он все тот же) и убедитесь что доменное имя свободно (см. Теория ч2), но НЕ ПОКУПАЙТЕ его пока. CloudFlare работает только с доменными именами второго уровня (есть исключения, но они нам не помогут). Доменное имя второго уровня — это имя с одной точкой, вроде mypersonalsite.com или myhabraproxy.ru.
Итак, продавец выбран, доменное имя выбрано но не куплено, идём дальше.
Шаг 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 — это такой жест доброй воли от них. Давайте не наглеть и использовать эти возможности только в совсем безвыходных случаях, которые, надеюсь, все‑таки не наступят.
Спасибо за прочтение этой статьи, теперь ты можешь смотреть ютуб без замедления и посещать весь интернет без ограничений. Оцени пожалуйста статью, напиши свое мнение в комментариях. Я постарался сделать эту статью исчерпывающей и самодостаточной, чтобы своими руками настроить личный прокси‑сервер.