VLESS и Shadowsocks-2022: настройка прокси на XRay для обхода блокировок

Подробное руководство по развёртыванию VLESS и Shadowsocks-2022 на сервере XRay: установка, конфигурация, маскировка трафика, настройка клиентов и маршрутизации.

Зачем нужны VLESS и Shadowsocks-2022

Современные методы блокировки интернет-трафика, применяемые в России, научились распознавать и подавлять популярные VPN-протоколы, такие как OpenVPN и WireGuard. Это вынуждает пользователей искать альтернативы, которые могут маскировать прокси-трафик под обычные HTTPS-соединения. Два таких протокола — VLESS и Shadowsocks-2022 — получили широкое распространение благодаря своей эффективности и относительной простоте настройки.

VLESS — это легковесный прокси-протокол, разработанный как эволюция V2Ray. Его ключевая особенность — отсутствие шифрования на уровне самого протокола (шифрование делегируется TLS), что снижает накладные расходы и повышает производительность. В сочетании с технологией REALITY VLESS может имитировать TLS-соединение с реальным сайтом, например, с microsoft.com. Для цензора такой трафик выглядит как обычное посещение веб-ресурса, что делает блокировку крайне затруднительной.

Shadowsocks-2022 — это обновлённая версия классического протокола Shadowsocks, которая использует современные шифры (например, AES-128-GCM) и улучшенную схему аутентификации. В отличие от VLESS, Shadowsocks-2022 не маскируется под TLS, а его трафик выглядит как случайный шум. Это делает его более уязвимым для блокировок по принципу «белых списков», когда разрешается только трафик, который цензор может однозначно идентифицировать. Тем не менее Shadowsocks-2022 остаётся полезным как запасной вариант, особенно если VLESS-конфигурация перестаёт работать из-за блокировки домена или других проблем.

Важно понимать, что и VLESS, и Shadowsocks-2022 — это прокси, а не VPN. Они не создают виртуальный сетевой интерфейс и не маршрутизируют весь трафик на уровне ядра, а работают на прикладном уровне, перенаправляя запросы через прокси-сервер. Это накладывает определённые ограничения, но для большинства задач — обход блокировок, доступ к заблокированным сайтам — их возможностей достаточно.

Выбор сервера и подготовка окружения

Для развёртывания прокси на базе XRay потребуется сервер за пределами России. Рекомендуются Нидерланды, Германия или другие страны с развитой инфраструктурой и лояльным законодательством. Многие хостеры, такие как IHOR или VDSina, принимают оплату в рублях с российских карт, что упрощает процесс покупки.

Минимальные требования к серверу скромные: достаточно 1–2 виртуальных ядер и 512 МБ оперативной памяти. В качестве операционной системы лучше выбрать Debian 11/12 или Ubuntu 22.04/24.04 — они стабильны и хорошо поддерживаются. Базовые навыки работы с консолью обязательны, так как вся настройка выполняется через командную строку.

Перед началом установки необходимо обновить систему и установить базовые утилиты: curl, mc, htop, nano. Это можно сделать командой apt install curl mc htop nano. Затем следует установить XRay, используя официальный скрипт установки с GitHub. После установки нужно остановить службу XRay, чтобы отредактировать конфигурационный файл.

Важно заранее продумать выбор домена для маскировки VLESS. Это должен быть сайт, поддерживающий TLSv1.3, желательно расположенный в той же стране, что и ваш сервер. Например, если сервер находится в Нидерландах, можно использовать сайт крупной голландской компании. Домен не должен быть заблокирован в России, иначе маскировка потеряет смысл.

Установка XRay и генерация ключей

Установка XRay выполняется одной командой, которая загружает и запускает официальный скрипт установки. После завершения установки служба XRay будет запущена автоматически, но её нужно остановить для редактирования конфигурации: systemctl stop xray.service.

Далее необходимо сгенерировать UUID для клиента VLESS и ключевую пару X25519 для REALITY. UUID можно получить командой /usr/local/bin/xray uuid, а ключи — командой /usr/local/bin/xray x25519. Важно сохранить сгенерированные ключи в надёжном месте, так как они не сохраняются в файлах автоматически. Приватный ключ понадобится для конфигурации сервера, публичный — для настройки клиентов.

Также потребуется сгенерировать пароль для Shadowsocks-2022. Для этого используется команда openssl rand -base64 16, которая создаёт случайную строку длиной 16 байт в base64-кодировке. Этот пароль будет использоваться в конфигурации Shadowsocks.

После генерации всех ключей можно приступать к редактированию конфигурационного файла /usr/local/etc/xray/config.json. В нём будут определены два входящих соединения: одно для VLESS на порту 443 (стандартный HTTPS-порт), другое для Shadowsocks-2022 на произвольном порту, например, 42639.

Конфигурация VLESS с REALITY

VLESS-соединение настраивается на порту 443 с использованием технологии REALITY. REALITY позволяет серверу имитировать TLS-рукопожатие с реальным сайтом, не имея при этом его сертификата. Это достигается за счёт использования ключей X25519 и указания домена, к которому будет происходить «привязка».

В конфигурационном файле для VLESS необходимо указать:

  • port: 443
  • protocol: "vless"
  • clients: массив с UUID клиента, email и flow "xtls-rprx-vision"
  • streamSettings: network "tcp", security "reality", realitySettings с параметрами dest (адрес реального сайта, например, www.microsoft.com:443), serverNames (домен для SNI), privateKey (приватный ключ X25519), shortIds (короткий идентификатор, генерируется командой openssl rand -hex 8)

Важно, чтобы домен, указанный в serverNames, поддерживал TLSv1.3 и был доступен из России. Если цензор заблокирует этот домен, VLESS перестанет работать, поэтому стоит выбирать максимально устойчивый и популярный сайт.

Также рекомендуется включить сниффинг (sniffing) для определения типа трафика (HTTP или TLS), что позволяет более точно маршрутизировать запросы.

Конфигурация Shadowsocks-2022

Shadowsocks-2022 настраивается как второе входящее соединение на отдельном порту. В конфигурации указывается метод шифрования 2022-blake3-aes-128-gcm и пароль, сгенерированный ранее. Порт можно выбрать любой, например, 42639, но важно, чтобы он не конфликтовал с другими службами.

Shadowsocks-2022 не требует маскировки под TLS, поэтому его конфигурация проще. Однако из-за того, что его трафик выглядит как случайные данные, он более уязвим для блокировок по «белым спискам». Тем не менее, он служит отличным запасным вариантом, если VLESS-соединение будет заблокировано.

В конфигурации Shadowsocks-2022 также можно указать поддержку UDP (network: "tcp,udp"), что полезно для некоторых приложений, например, для DNS-запросов.

Настройка клиентов и импорт конфигурации

После настройки сервера необходимо подготовить строки подключения для клиентов. Для VLESS строка выглядит следующим образом: vless://@:443?security=reality&encryption=none&pbk=<публичный ключ>&headerType=none&fp=chrome&type=tcp&flow=xtls-rprx-vision&sni=<домен>&sid=#<имя профиля>

Для Shadowsocks-2022 строка проще: ss://<пароль>@:<порт>#<имя профиля>

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

Популярные клиенты:

  • Android: Hiddify, v2rayNG, NekoBox
  • iOS: Foxray, Streisand
  • Десктоп: Nekoray, Hiddify

Все они поддерживают VLESS и Shadowsocks-2022, а также позволяют настраивать маршрутизацию.

Маскировка и защита сервера

Чтобы сервер не был обнаружен цензором, необходимо предпринять дополнительные меры. Во-первых, следует изменить порт SSH с 22 на любой другой, например, в диапазоне 10000–40000. Это предотвратит сканирование, которое может выявить, что на сервере работает прокси.

Во-вторых, рекомендуется настроить переадресацию трафика с портов 80 и 443 на реальный сайт, используемый для маскировки. Это делается с помощью iptables:

iptables -t nat -A PREROUTING -i eth0 -p udp --dport 443 -j DNAT --to-destination :443
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to-destination :80

Эти правила перенаправляют входящие запросы на порты 80 и 443 на IP-адрес реального сайта, что делает сервер похожим на обычный веб-хостинг.

Также важно настроить маршрутизацию на клиенте, чтобы трафик к российским сайтам шёл напрямую, а не через прокси. Это снижает нагрузку на прокси и уменьшает вероятность обнаружения. В клиентах, таких как Hiddify, можно выбрать регион и автоматически применить правила geoip/geosite.

Настройка маршрутизации и правил обхода

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

В клиентах, таких как Nekoray или Hiddify, можно задать пользовательские правила. Пример конфигурации для прямого доступа к российским сайтам:

{
  "rules": [
    {
      "domain_keyword": ["google", "vkontakte", "userapi", "yandex", "yastatic", "dzen", "yahoo", "microsoft", "tinkoff", "tbank", "gosuslugi", "lkfl", "lkfl2", "nalog", "sberbank"],
      "outbound": "direct"
    },
    {
      "domain_suffix": [".ru", ".su", ".by", ".рф", "vk.com", "userapi.com", "youtube.com", "gstatic.com", "gosuslugi.ru", "esia.gosuslugi.ru", "tbank.ru", "www.tbank.ru", "sme.tinkoff.ru", "lkfl2.nalog.ru", "sberbank.ru", "www.sberbank.ru", "sber.ru", "www.sber.ru", "online.sber.ru", "online.sberbank.ru"],
      "outbound": "direct"
    }
  ]
}

Эти правила направляют трафик к указанным доменам напрямую, минуя прокси. Список можно дополнять в зависимости от ваших предпочтений.

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

Тестирование и устранение неполадок

После настройки сервера и клиентов необходимо проверить работоспособность. Для этого можно открыть в браузере сайт, который был недоступен без прокси, например, YouTube или Instagram. Если сайт открывается, значит, прокси работает.

Если возникают проблемы, стоит проверить:

  • Правильность введённых ключей и UUID в конфигурации.
  • Доступность портов на сервере (443 и порт Shadowsocks).
  • Логи XRay на сервере (journalctl -u xray).
  • Настройки маршрутизации на клиенте.

Частая ошибка — неверно указанный домен для маскировки. Если домен не поддерживает TLSv1.3 или заблокирован, VLESS не будет работать. В этом случае стоит заменить домен на другой.

Также стоит проверить, что SSH-порт изменён, иначе сервер может быть обнаружен сканером.

Ограничения и перспективы

Несмотря на эффективность, VLESS и Shadowsocks-2022 имеют ограничения. Они не являются полноценными VPN и не шифруют весь трафик на уровне ядра. Это означает, что некоторые приложения могут работать некорректно, особенно те, которые требуют привязки к сетевому интерфейсу.

Кроме того, методы блокировки постоянно совершенствуются. Если цензор внедрит «белые списки» или научится распознавать REALITY, VLESS может перестать работать. Поэтому важно иметь запасные варианты, такие как Shadowsocks-2022 или другие протоколы.

Тем не менее, на данный момент VLESS с REALITY считается одним из самых надёжных способов обхода блокировок в России. Он позволяет сохранять доступ к заблокированным ресурсам, не привлекая внимания цензора.

Вопросы и ответы

В чём разница между VLESS и Shadowsocks-2022?

VLESS — это прокси-протокол, который не шифрует трафик сам по себе, а полагается на TLS. В сочетании с REALITY он маскирует соединение под обычный HTTPS-запрос к реальному сайту, что делает его трудно обнаруживаемым. Shadowsocks-2022 — это протокол с собственным шифрованием (например, AES-128-GCM), но его трафик выглядит как случайный шум, что делает его более уязвимым для блокировок по «белым спискам». VLESS обычно используется как основной протокол, а Shadowsocks-2022 — как запасной.

Какой сервер выбрать для прокси?

Рекомендуется выбирать сервер за пределами России, например, в Нидерландах или Германии. Минимальные требования — 1–2 ядра и 512 МБ ОЗУ. Операционная система — Debian 11/12 или Ubuntu 22.04/24.04. Важно, чтобы хостинг-провайдер принимал оплату удобным для вас способом, например, в рублях с российских карт.

Нужно ли менять порт SSH?

Да, настоятельно рекомендуется изменить порт SSH с 22 на любой другой, например, в диапазоне 10000–40000. Это снижает риск обнаружения сервера сканером, который может выявить, что на сервере работает прокси, и заблокировать его.

Как настроить маршрутизацию, чтобы российские сайты открывались напрямую?

В клиентских приложениях, таких как Hiddify или Nekoray, можно задать правила маршрутизации. Например, добавить правила для доменов с суффиксами .ru, .su, .by, .рф и ключевыми словами (google, yandex, vk и т.д.), чтобы они шли напрямую, минуя прокси. Это снижает нагрузку и уменьшает вероятность обнаружения.

Что делать, если VLESS перестал работать?

Если VLESS перестал работать, сначала проверьте, не заблокирован ли домен, используемый для маскировки. Попробуйте заменить его на другой. Также проверьте логи XRay на сервере и правильность конфигурации. Если проблема не решается, используйте запасной Shadowsocks-2022.

Можно ли использовать VLESS и Shadowsocks-2022 на мобильных устройствах?

Да, существуют клиенты для Android (Hiddify, v2rayNG, NekoBox) и iOS (Foxray, Streisand). Они поддерживают импорт конфигураций по ссылке или QR-коду, что упрощает настройку.

Какие риски связаны с использованием прокси?

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