Поле flow и режим XTLS-Vision
В поле flow стоит имя режима, в котором данные идут внутри защищённого слоя. Самый известный такой режим — XTLS-Vision. Его смысл в одной фразе: не шифровать второй раз то, что уже зашифровано.
Короткий ответ
Это не защита и не протокол. Это способ уложить поток внутри уже существующей защиты.
- Vision — режим, а не отдельный протокол. Он стоит рядом с Reality в той же связке и решает другую задачу.
- Он убирает двойное шифрование и тем самым снимает нагрузку с процессора устройства.
- Значение поля назначает сервер. Оно должно совпадать с его настройкой — иначе подключения не будет.
- Отсутствие поля — не поломка. Если сервер работает без этого режима, поля в строке просто нет.
- Трогать его руками нельзя, как и любой другой параметр: ошибка в одном значении ломает всю строку.
Что именно он убирает
Двойная защита не делает соединение крепче — она просто заставляет устройство работать дважды.
Три слова в одной связке — и все про разное
Их постоянно путают между собой, хотя отвечают они за разные вещи.
- VLESS — что и куда передаём.
- Защитный слой, в том числе Reality, — как соединение выглядит снаружи.
- Vision — как устроен поток внутри этого слоя.
Почему значение обязано совпасть с серверным
Потому что режим передачи — это договорённость двух сторон. Одна сторона не может передавать по-своему и надеяться, что вторая догадается.
На практике это частный случай общего правила: любой параметр в строке либо совпадает с настройкой сервера, либо подключения не будет. Подобрать значение со стороны клиента невозможно.
Где это поле видно, а где его нет
Видно его ровно в одном месте — в самой строке подключения.
- В настройках приложения его нет. Переключателя режима там не бывает: всё, что нужно, приходит вместе со строкой.
- Вводить руками ничего не требуется. Адреса, порты и способы защиты лежат внутри добавляемой записи.
- Ручной ввод полей — редкий случай. Он нужен тем, кто поднял собственный сервер и знает, что на нём настроено.
- Запись, заведённая руками, сама не обновится. Обновление — свойство адреса списка серверов, а не отдельной строки.
Что будет, если сервер и запись разошлись
Ничего драматичного: соединение просто не поднимется.
Приложение не подскажет, какое именно поле не совпало, — оно и не может этого знать. Поэтому единственный рабочий путь — взять строку заново у того, кто её выдал.
Здесь мы обязаны оговориться
Про само поле — что именно оно задаёт и что значение обязано совпадать с серверным — у нас один источник, и это не документация разработчика.
Мы приводим его как есть и за проверенное нами не выдаём.
Что проверено и не зависит от этого источника: двойное шифрование стоит процессорного времени и задержки, а ошибка в любом параметре строки ломает подключение целиком.
Почему мы вообще ставим такие оговорки, а не пишем ровным уверенным тоном, — объяснено на отдельной странице.
Короткие ответы
У меня в строке нет поля flow. Это плохо?
Нет. Значит, сервер настроен без этого режима. Работать соединение будет так же, просто без экономии на двойной работе.
Можно дописать поле самому, чтобы стало быстрее?
Нет. Режим должен быть включён на сервере; дописанное в строке значение приведёт только к отказу подключения.
Vision ускоряет интернет?
Он снимает лишнюю работу с процессора. Скорость же определяет сервер и путь до него, а не режим передачи.
Vision — это то же, что Reality?
Нет. Reality отвечает за то, как соединение выглядит снаружи, Vision — за устройство потока внутри. Они часто стоят в одной строке рядом, но задачи у них разные.