VLESS + WebSocket

WebSocket — это механизм, которым пользуется обычный веб: чаты, уведомления, биржевые котировки, панели управления. Долгое соединение к сайту, по которому в обе стороны идут сообщения, — рутина, а не аномалия. VLESS поверх WebSocket встраивается именно в эту рутину: снаружи это долгий разговор браузера с сайтом, каких у любого провайдера тысячи.

Что такое VLESS WebSocket

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

WebSocket подошёл, потому что он и есть обычный веб. Запрос к сайту, стандартный заголовок с просьбой перейти на долгое соединение, дальше обмен сообщениями. Шлюз видит знакомую конструкцию и пропускает.

Важнее оказалось другое: такое соединение можно поставить за сеть доставки контента. Эти сети рассчитаны как раз на долгие соединения к сайтам, и такой трафик для них ничем не выделяется. Адрес сервера при этом снаружи не виден вовсе, а это защита другого уровня, чем маскировка содержимого.

Как работает VLESS WebSocket

Соединение начинается как обычный запрос к сайту по HTTPS: настоящий домен, настоящий сертификат, обычный заголовок с просьбой перейти на WebSocket. Всё это неотличимо от того, что делает браузер, открывая страницу с живыми обновлениями.

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

Отсюда главное свойство: такое соединение можно поставить за CDN. Тогда наружу смотрит не адрес вашего сервера, а адрес крупной сети доставки контента, за которым стоят миллионы чужих сайтов. Блокировать его целиком — значит задеть их все.

VLESS WebSocket через CDN

CDN — сеть доставки контента — принимает соединение клиента на своём узле, а к вашему серверу открывает отдельное. WebSocket она пропускает штатно: для неё это обычное долгое соединение с сайтом. В итоге клиент подключается к адресу CDN, а адрес вашего сервера знает только сама CDN.

Мастер toNet за CDN сервер не ставит. Сертификат выписывается на служебное имя вида «IP-сервера.sslip.io», а за CDN можно поставить только домен, которым вы управляете. Если такой домен есть, это делается вручную: домен подключается к CDN с проксированием и направляется на IP сервера, а в клиенте адрес и имя хоста меняются на этот домен. Ключ и путь WebSocket остаются прежними.

Две детали. Сертификат на сервере выписан не на ваш домен, поэтому CDN нужен режим, в котором она не сверяет имя в сертификате сервера с доменом. И подписка такую правку не сохранит: при обновлении она вернёт прямое подключение, поэтому профиль через CDN держите отдельным.

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

Плюсы VLESS WebSocket

Проходит там, где разрешено ровно одно: обычный веб. Корпоративные сети, гостиницы, общественный Wi-Fi часто пропускают только соединения к сайтам по стандартному порту и режут всё остальное. Этот протокол под такое описание попадает полностью.

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

Прячет адрес сервера за чужой инфраструктурой. Это защищает иначе, чем маскировка содержимого: до вашего адреса блокировка просто не добирается.

Работает поверх TCP, а не UDP, поэтому не страдает в сетях, где UDP ограничен или закрыт.

Минусы VLESS WebSocket: когда не подходит

Нужны домен и сертификат. Без имени, на которое выписан сертификат, маскировка разваливается: соединение с адресом, за которым нет сайта, выглядит тем, чем и является. Reality этого не требует, и в этом его преимущество.

Лишний слой стоит скорости. Данные упаковываются в сообщения WebSocket, те — в защищённый канал, и накладные расходы складываются. На быстром канале это заметно при больших загрузках.

Задержка выше, чем у протоколов без обёрток. Для чтения и видео это неважно, для игр и голосовых звонков — важно.

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

Когда выбрать VLESS WebSocket

Берите его, когда в сети разрешён только веб: офис, гостиница, кафе, гостевой Wi-Fi. Где не открывается ничего, кроме обычных сайтов, он пройдёт.

Хорош как запасной к Hysteria2 на телефоне: тот быстрее в мобильной сети, но не работает там, где закрыт UDP, а этот пройдёт.

Дома, где сеть ничего не режет, выигрыша нет — Reality даст ту же незаметность без домена, сертификата и лишнего слоя.

VLESS WebSocket или Reality, Trojan и VMess

Все четыре идут поверх TCP и снаружи выглядят как HTTPS. VLESS + Reality быстрее и обходится без сертификата: внутри у него нет обёртки WebSocket. Trojan тоже без лишнего слоя и по скорости ближе к Reality. VLESS WebSocket медленнее обоих, зато его, как и VMess, можно поставить за CDN — Reality и Trojan так не умеют.

С VMess + WebSocket разница внутри: транспорт тот же, но у VMess свой слой шифрования поверх TLS, у VLESS его нет. Поэтому VLESS быстрее и меньше выделяется, а VMess держат ради старых клиентов.

  • VLESS + WebSocket
    Транспорт
    TCP
    Как выглядит в сети
    WebSocket поверх HTTPS
    Сертификат
    выпускается сам
    Если UDP закрыт
    проходит
    Скорость
    средняя
    Батарея
    средний расход
    Мобильная сеть
    средне
  • Транспорт
    TCP
    Как выглядит в сети
    HTTPS к известному сайту
    Сертификат
    не нужен
    Если UDP закрыт
    проходит
    Скорость
    высокая
    Батарея
    средний расход
    Мобильная сеть
    средне
  • Транспорт
    TCP
    Как выглядит в сети
    HTTPS-соединение
    Сертификат
    выпускается сам
    Если UDP закрыт
    проходит
    Скорость
    высокая
    Батарея
    средний расход
    Мобильная сеть
    средне
  • Транспорт
    TCP
    Как выглядит в сети
    WebSocket поверх HTTPS
    Сертификат
    выпускается сам
    Если UDP закрыт
    проходит
    Скорость
    ниже средней
    Батарея
    средний расход
    Мобильная сеть
    средне

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

Подробнее: VLESS vs VMess vs Trojan. Все протоколы в одной таблице — на странице о протоколах.

Чем подключиться к VLESS WebSocket

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

Как добавить: скопируйте ссылку-подписку в личном кабинете и вставьте её в приложение («+» → «Добавить из буфера обмена») или отсканируйте QR-код — в списке появятся все протоколы сервера, включая этот.

Протоколу нужен настоящий сертификат: он выпускается и продлевается при установке автоматически, от вас тут ничего не требуется.

Пошаговые инструкции по платформам: Android, iPhone и iPad, Windows, macOS, Linux; все вместе — в разделе инструкций.

VLESS WebSocket: частые вопросы

Зачем VLESS WebSocket домен и сертификат?

WebSocket здесь идёт внутри TLS, а TLS без сертификата на имя сервера выглядит подделкой, и клиент такое соединение не примет. Покупать домен не нужно: toNet выпускает сертификат Let’s Encrypt на служебное имя вида «IP-сервера.sslip.io» и продлевает его на сервере сам.

Можно ли поставить VLESS WebSocket за CDN, например Cloudflare?

Да, протокол для этого и подходит: CDN пропускает WebSocket как обычный веб-трафик. Нужен свой домен, подключённый к CDN, — мастер этого не делает, настройка ручная. Что поменять в клиенте и на что обратить внимание, описано на этой странице в разделе про CDN.

Почему VLESS WebSocket медленнее Reality?

Данные упаковываются в сообщения WebSocket, а те — в TLS, и каждый слой добавляет заголовки и работу процессору. У Reality обёртки WebSocket нет, а режим Vision ещё и не шифрует уже зашифрованное второй раз. На мобильном канале разница почти незаметна, на быстром проводном — заметна на больших загрузках.

Какие клиенты поддерживают VLESS WebSocket?

Почти все клиенты семейства Xray и sing-box: Happ, Hiddify, v2rayNG, v2rayN, NekoBox, Streisand, V2Box, Shadowrocket. Протокол приходит в общей подписке вместе с остальными, отдельно настраивать его не нужно.

Чего не делает ни один протокол

Протокол прячет содержимое соединения от сети по дороге, но не делает вас анонимным: сайты по-прежнему узнают вас по учётным записям и cookie, хостинг видит трафик своего сервера, а объём и время соединений скрыть нельзя. Что при этом видит сам сервис, разобрано в разделе о безопасности.

Что дальше

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

Заведите свой VPN-сервер

Вход по ссылке из письма — пароль придумывать не нужно. Дальше мастер всё настроит сам.

Создать свой VPN