Description
There is a configuration conflict when a single user (same UUID) is shared across multiple VLESS inbounds with different transport protocols in the panel.
Specifically, if I want to create two inbounds for the same user (same UUID):
- Inbound A: VLESS + TCP + REALITY
- Inbound B: VLESS + gRPC + TLS
For Inbound A to work optimally with REALITY, the user's Flow must be set to xtls-rprx-vision.
However, because the Flow setting in the panel is tied to the user level (UUID) rather than the transport level, Inbound B (gRPC) inherits the xtls-rprx-vision flow.
According to Xray-core specifications, xtls-rprx-vision is strictly for TCP and is incompatible with gRPC/WebSocket. This inheritance causes a fatal protocol conflict, breaking the gRPC connection completely.
The Dilemma
Currently, I can only enable or disable xtls-rprx-vision globally for this UUID.
- If enabled: Inbound A (REALITY) works, but Inbound B (gRPC) breaks.
- If disabled: Inbound B (gRPC) works, but Inbound A loses the anti-detection benefits of Vision.
Expected Behavior / Suggested Fix
The panel should smartly handle the flow setting to prevent this conflict. Two possible solutions:
- Auto-Striping: When generating the Xray config file (or in the UI logic), if the inbound's transport
network is set to grpc or ws, the panel should automatically ignore or strip the flow: xtls-rprx-vision setting for the clients within that specific inbound, even if the user has it enabled.
- Per-Inbound Flow Override: Allow users to override or disable the
flow setting at the inbound level, decoupling it from the global UUID database.
Steps to Reproduce
- Create a VLESS + TCP + REALITY inbound. Add a user and enable
xtls-rprx-vision.
- Create a second inbound using VLESS + gRPC + TLS.
- Add the exact same user (same UUID) to the second inbound.
- Notice that the gRPC inbound fails to connect because Xray rejects
vision flow over gRPC.
Hope this logic can be optimized to allow multi-protocol sharing for the same UUID safely. Thank you for your amazing work!
Description
There is a configuration conflict when a single user (same UUID) is shared across multiple VLESS inbounds with different transport protocols in the panel.
Specifically, if I want to create two inbounds for the same user (same UUID):
For Inbound A to work optimally with REALITY, the user's
Flowmust be set toxtls-rprx-vision.However, because the
Flowsetting in the panel is tied to the user level (UUID) rather than the transport level, Inbound B (gRPC) inherits thextls-rprx-visionflow.According to Xray-core specifications,
xtls-rprx-visionis strictly for TCP and is incompatible with gRPC/WebSocket. This inheritance causes a fatal protocol conflict, breaking the gRPC connection completely.The Dilemma
Currently, I can only enable or disable
xtls-rprx-visionglobally for this UUID.Expected Behavior / Suggested Fix
The panel should smartly handle the
flowsetting to prevent this conflict. Two possible solutions:networkis set togrpcorws, the panel should automatically ignore or strip theflow: xtls-rprx-visionsetting for the clients within that specific inbound, even if the user has it enabled.flowsetting at the inbound level, decoupling it from the global UUID database.Steps to Reproduce
xtls-rprx-vision.visionflow over gRPC.Hope this logic can be optimized to allow multi-protocol sharing for the same UUID safely. Thank you for your amazing work!