Add fingerprint xray_random (#1540)

* Add fingerprint xray_random

xray_random means to pick a random uTLS fingerprint at the core startup
This way, the fingerprint is stable for a user for some days. While there is no identifiable signature for the whole xray community

* Fingerprint "random" refine

Exclude old fingerprint from RNG
This commit is contained in:
yuhan6665 2023-01-20 23:36:08 -05:00 committed by GitHub
parent 77d2f9edd7
commit 3fb67f065a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 56 additions and 18 deletions

View file

@ -22,7 +22,7 @@ func Dial(ctx context.Context, dest net.Destination, streamSettings *internet.Me
if config := tls.ConfigFromStreamSettings(streamSettings); config != nil {
tlsConfig := config.GetTLSConfig(tls.WithDestination(dest))
if fingerprint, ok := tls.Fingerprints[config.Fingerprint]; ok {
if fingerprint, ok := tls.GetFingerprint(ctx, config.Fingerprint); ok {
conn = tls.UClient(conn, tlsConfig, fingerprint)
if err := conn.(*tls.UConn).Handshake(); err != nil {
return nil, err