Skip to content

Add optional VLESS flow parameter#494

Open
SafaSafari wants to merge 1 commit into
eycorsican:masterfrom
SafaSafari:vless-flow
Open

Add optional VLESS flow parameter#494
SafaSafari wants to merge 1 commit into
eycorsican:masterfrom
SafaSafari:vless-flow

Conversation

@SafaSafari

Copy link
Copy Markdown

VLESS outbounds always sent the xtls-rprx-vision flow in the request header and wrapped the stream in the Vision parser. The flow was hardcoded, with no way to turn it off.

Vision operates on the raw TLS stream and only works with the plain TCP transport — it cannot be used with WebSocket, gRPC or HTTP/2 (see Project X docs). With the flow forced on, vless outbounds over those transports could not work at all.

Since enabling Vision is a deployment choice, it is better left to the user. This adds a flow field to VlessOutboundSettings:

  • empty or absent → no addons are sent (addon length 0x00) and the Vision wrapper is disabled — works with any transport;
  • "xtls-rprx-vision" → restores the previous behaviour.

The default is empty (no flow).

VLESS outbounds always sent the "xtls-rprx-vision" flow in the request
header and wrapped the stream in the Vision parser. The flow was
hardcoded, with no way to turn it off.

Vision operates on the raw TLS stream and only works with the plain TCP
transport; it cannot be used with WebSocket, gRPC or HTTP/2. With the
flow forced on, vless outbounds over those transports could not work.

Add a `flow` field to VlessOutboundSettings so the choice is left to the
user. When empty or absent the outbound sends no addons (addon length 0)
and the Vision wrapper is disabled; setting it to "xtls-rprx-vision"
restores the previous behaviour.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant