You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In the latest v2rayNG beta versions (utilizing updated Xray-core/uTLS), many REALITY connections have started failing in Russia due to advanced DPI (TSPU) signature matching.
Observed behavior:
SNI + Fingerprint Correlation: The block is often specific to the combination. For example, using a Google domain + the default chrome fingerprint results in an immediate reset, while changing the domain OR switching to a fingerprint like ios or qq restores the connection.
Regression in Beta: The default firefox fingerprint in the latest beta is now detectable and blocked. Rolling back to an older v2rayNG version fixes the issue because the older core used a different uTLS mapping for the generic firefox label.
PresetFingerprints (Generic labels currently exposed in v2rayNG)
ModernFingerprints (Specific versions like hellochrome_120, hellochrome_131, hellofirefox_120)
OtherFingerprints (Stable older versions like hellofirefox_105, helloios_13, helloqq_11_1)
The Problem: v2rayNG's UI only allows selecting from a few generic presets. When the core's default firefox or chrome updates to a newer version that is flagged by local DPI, users have no easy way to "pin" a working, older version (like hellofirefox_105) without manual JSON editing, which is often overwritten by the GUI.
Requested Features
1. Full uTLS ID Support in UI
Expand the fingerprint selection to include all strings from ModernFingerprints and OtherFingerprints.
Suggestion: Add a "Show Advanced Fingerprints" toggle in App Settings to populate the spinner with specific IDs.
2. Global Fingerprint Mapping (Alias)
Add a global configuration form in "Settings" to map generic labels to specific IDs.
Example: Set a global rule: firefox -> hellofirefox_105.
This allows users to fix all their profiles at once when a specific core update breaks the default fingerprint behavior.
3. Manual String Input
Allow the fingerprint field to accept any string. The app should pass the input directly to Xray-core instead of reverting it to a predefined default.
Why this is necessary
DPI systems are now targeting specific TLS handshake signatures. The generic labels (chrome, firefox) are moving targets. Providing access to the full list of uTLS IDs is the only way for users to maintain a stable, stealthy connection in a rapidly changing censorship environment.
This discussion was converted from issue #5406 on March 26, 2026 12:07.
Heading
Bold
Italic
Quote
Code
Link
Numbered list
Unordered list
Task list
Attach files
Mention
Reference
Menu
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
Description
In the latest v2rayNG beta versions (utilizing updated Xray-core/uTLS), many REALITY connections have started failing in Russia due to advanced DPI (TSPU) signature matching.
Observed behavior:
chromefingerprint results in an immediate reset, while changing the domain OR switching to a fingerprint likeiosorqqrestores the connection.firefoxfingerprint in the latest beta is now detectable and blocked. Rolling back to an older v2rayNG version fixes the issue because the older core used a different uTLS mapping for the genericfirefoxlabel.Technical Analysis (Xray-core Reference)
As seen in the Xray-core source code [transport/internet/tls/tls.go (Line 180)](https://github.com/XTLS/Xray-core/blob/cb7bfeb54c79d7e81ee1f9d8c6a7e0a2125ab898/transport/internet/tls/tls.go#L180), the core supports a wide range of specific uTLS IDs categorized into:
PresetFingerprints(Generic labels currently exposed in v2rayNG)ModernFingerprints(Specific versions likehellochrome_120,hellochrome_131,hellofirefox_120)OtherFingerprints(Stable older versions likehellofirefox_105,helloios_13,helloqq_11_1)The Problem: v2rayNG's UI only allows selecting from a few generic presets. When the core's default
firefoxorchromeupdates to a newer version that is flagged by local DPI, users have no easy way to "pin" a working, older version (likehellofirefox_105) without manual JSON editing, which is often overwritten by the GUI.Requested Features
1. Full uTLS ID Support in UI
Expand the
fingerprintselection to include all strings fromModernFingerprintsandOtherFingerprints.2. Global Fingerprint Mapping (Alias)
Add a global configuration form in "Settings" to map generic labels to specific IDs.
firefox->hellofirefox_105.3. Manual String Input
Allow the
fingerprintfield to accept any string. The app should pass the input directly to Xray-core instead of reverting it to a predefined default.Why this is necessary
DPI systems are now targeting specific TLS handshake signatures. The generic labels (
chrome,firefox) are moving targets. Providing access to the full list of uTLS IDs is the only way for users to maintain a stable, stealthy connection in a rapidly changing censorship environment.Beta Was this translation helpful? Give feedback.
All reactions