Что это
Протокол и инструмент для обхода интернет-блокировок — маскирует VPN-трафик под обычный зашифрованный веб-трафик (HTTPS), так его сложнее заблокировать по характерному "рисунку".
Как используем
Для клиентов, которым обычного VPN уже недостаточно — строим схему «входной узел в РФ → выходной узел в ЕС» с постоянным туннелем и мониторингом живости трассы.
Где Xray нужен бизнесу
- Обычный VPN перестал работать: соединение режут по характерному рисунку трафика.
- Вы продаёте VPN по подписке, и клиенты должны подключаться с любого провайдера.
- Команде нужен корпоративный шлюз к рабочим сервисам, который не отличить от обычного HTTPS.
Какие бывают входы
- VLESS Reality — маскирует соединение под TLS к чужому сайту, не требует ни домена, ни сертификата. Стоит на нашем узле в Нидерландах.
- WebSocket + TLS — туннель под видом обычного сайта на вашем домене. Работает через nginx, подходит для клиента на Windows 7.
- XHTTP — ещё один способ завернуть трафик в HTTP. На тестовом стенде все входы — Reality, XHTTP, QUIC, WS+TLS — подключаются в Xray из одной подписки.
Какой вход живой, зависит от провайдера и дня, поэтому в подписке их несколько, а клиент выбирает сам.
Как мы это используем
- Ядро клиента. В OshaVPN Xray — основное ядро, второе — sing-box. Интерфейс, подписка и маршрутизация общаются с ядром через узкий слой engine-api, поэтому ядро меняется настройкой, без переустановки. При обрыве Xray переключает вход через API маршрутизации за доли секунды, без перезапуска ядра.
- Трасса. На VPN-трассе входной nginx проксирует WebSocket-туннель VLESS; путь без заголовка Upgrade отвечает 404, как несуществующая страница.
- Шлюз. В корпоративном шлюзе Xray отвечает за маршрутизацию и шифрование трафика сотрудников.
- Выдача ключей. Бот Tech Poly VPN выдаёт VLESS-ключи через панель Marzban.
Трассы и шлюзы — в разделе Инфраструктура, клиенты — в разделе Приложения.
Типичные проблемы
- Windows 7. Xray, собранный новым Go, там не запускается, поэтому клиент для семёрки работает на sing-box через системный прокси и вход WS+TLS.
- Один вход не спасает. Вход может умереть у конкретного провайдера. Клиент пробует все входы из подписки одновременно и берёт первый, который открыл интернет; на стенде гонка занимает 0,9–1,3 секунды.
- Мёртвый TLS похож на живой. Вход, у которого не завершился TLS-хендшейк, автоматика не считает живым и не выбирает.
- Домен трафика заметят. Непрерывный WebSocket рано или поздно видно, поэтому домены трафика и подписок разделены.
Когда это не нужно
Если соединение никто не режет и нужно просто связать сотрудников с офисом, WireGuard проще и быстрее. Xray оправдан там, где обычный VPN уже блокируют.