From e195acb0475fde50297c8e8f2417cceddd845582 Mon Sep 17 00:00:00 2001 From: Meo597 <197331664+Meo597@users.noreply.github.com> Date: Sun, 8 Jun 2025 14:40:53 +0800 Subject: [PATCH] Replace Limit to LimitFb --- README.en.md | 12 ++++++------ README.md | 12 ++++++------ common.go | 24 ++++++++++++------------ tls.go | 18 +++++++++--------- 4 files changed, 33 insertions(+), 33 deletions(-) diff --git a/README.en.md b/README.en.md index 0655f7c..ac63446 100644 --- a/README.en.md +++ b/README.en.md @@ -52,12 +52,12 @@ TODO List: TODO // The six limit below are optional for rate limiting falling REALITY connections. Default are 0 means disabled // WARNING: Enabling rate limiting may create detectable patterns for GFW! // If you're a GUI/panel/one-click script developer, RANDOMIZE these parameters! - limitUploadRate: 0, // Base upload speed (bytes/s) - limitUploadBurst: 0, // Upload burst capacity (bytes) - limitUploadAfter: 0, // Start upload throttling after (bytes) - limitDownloadRate: 0, // Base download speed (bytes/s) - limitDownloadBurst: 0, // Download burst capacity (bytes) - limitDownloadAfter: 0, // Start download throttling after (bytes) + limitFbUploadRate: 0, // Base upload speed (bytes/s) + limitFbUploadBurst: 0, // Upload burst capacity (bytes) + limitFbUploadAfter: 0, // Start upload throttling after (bytes) + limitFbDownloadRate: 0, // Base download speed (bytes/s) + limitFbDownloadBurst: 0, // Download burst capacity (bytes) + limitFbDownloadAfter: 0, // Start download throttling after (bytes) }, }, }, diff --git a/README.md b/README.md index 4ee94f6..4af9642 100644 --- a/README.md +++ b/README.md @@ -51,12 +51,12 @@ TODO List: TODO ], // 下列六个 limit 为选填,可对回落的 REALITY 连接限速。默认为 0 即不启用 // 警告:启用限速可能会引入新的特征被GFW探测到!如果您是GUI/面板/一键脚本开发者,请务必让这些参数随机化! - limitUploadRate: 0, // 上行基准速率 (字节/秒) - limitUploadBurst: 0, // 上行突发速率 (字节/秒) - limitUploadAfter: 0, // 上行指定字节后开始限速 - limitDownloadRate: 0, // 下行基准速率 (字节/秒) - limitDownloadBurst: 0, // 下行突发速率 (字节/秒) - limitDownloadAfter: 0, // 下行指定字节后开始限速 + limitFbUploadRate: 0, // 上行基准速率 (字节/秒) + limitFbUploadBurst: 0, // 上行突发速率 (字节/秒) + limitFbUploadAfter: 0, // 上行指定字节后开始限速 + limitFbDownloadRate: 0, // 下行基准速率 (字节/秒) + limitFbDownloadBurst: 0, // 下行突发速率 (字节/秒) + limitFbDownloadAfter: 0, // 下行指定字节后开始限速 }, }, }, diff --git a/common.go b/common.go index 17ceec7..83d7f31 100644 --- a/common.go +++ b/common.go @@ -556,12 +556,12 @@ type Config struct { MaxTimeDiff time.Duration ShortIds map[[8]byte]bool - LimitUploadRate float64 - LimitUploadBurst int64 - LimitUploadAfter int64 - LimitDownloadRate float64 - LimitDownloadBurst int64 - LimitDownloadAfter int64 + LimitFbUploadRate float64 + LimitFbUploadBurst int64 + LimitFbUploadAfter int64 + LimitFbDownloadRate float64 + LimitFbDownloadBurst int64 + LimitFbDownloadAfter int64 // Rand provides the source of entropy for nonces and RSA blinding. // If Rand is nil, TLS uses the cryptographic random reader in package @@ -977,12 +977,12 @@ func (c *Config) Clone() *Config { MaxClientVer: c.MaxClientVer, MaxTimeDiff: c.MaxTimeDiff, ShortIds: c.ShortIds, - LimitUploadRate: c.LimitUploadRate, - LimitUploadBurst: c.LimitUploadBurst, - LimitUploadAfter: c.LimitUploadAfter, - LimitDownloadRate: c.LimitDownloadRate, - LimitDownloadBurst: c.LimitDownloadBurst, - LimitDownloadAfter: c.LimitDownloadAfter, + LimitFbUploadRate: c.LimitFbUploadRate, + LimitFbUploadBurst: c.LimitFbUploadBurst, + LimitFbUploadAfter: c.LimitFbUploadAfter, + LimitFbDownloadRate: c.LimitFbDownloadRate, + LimitFbDownloadBurst: c.LimitFbDownloadBurst, + LimitFbDownloadAfter: c.LimitFbDownloadAfter, Rand: c.Rand, Time: c.Time, Certificates: c.Certificates, diff --git a/tls.go b/tls.go index 61b3136..886df16 100644 --- a/tls.go +++ b/tls.go @@ -247,14 +247,14 @@ func Server(ctx context.Context, conn net.Conn, config *Config) (*Conn, error) { if config.Show && hs.clientHello != nil { fmt.Printf("REALITY remoteAddr: %v\tforwarded SNI: %v\n", remoteAddr, hs.clientHello.serverName) } - if config.LimitUploadRate == 0 || config.LimitUploadBurst == 0 { + if config.LimitFbUploadRate == 0 || config.LimitFbUploadBurst == 0 { io.Copy(target, underlying) } else { // Limit upload speed for fallback connection io.Copy(target, &RatelimitedConn{ Conn: underlying, - Bucket: ratelimit.NewBucketWithRate(config.LimitUploadRate, config.LimitUploadBurst), - LimitAfter: config.LimitUploadAfter - config.LimitUploadBurst, + Bucket: ratelimit.NewBucketWithRate(config.LimitFbUploadRate, config.LimitFbUploadBurst), + LimitAfter: config.LimitFbUploadAfter - config.LimitFbUploadBurst, }) } } @@ -387,28 +387,28 @@ func Server(ctx context.Context, conn net.Conn, config *Config) (*Conn, error) { if hs.c.conn == conn { // if we processed the Client Hello successfully but the target did not waitGroup.Add(1) go func() { - if config.LimitUploadRate == 0 || config.LimitUploadBurst == 0 { + if config.LimitFbUploadRate == 0 || config.LimitFbUploadBurst == 0 { io.Copy(target, underlying) } else { // Limit upload speed for fallback connection (handshake ok but hello failed) io.Copy(target, &RatelimitedConn{ Conn: underlying, - Bucket: ratelimit.NewBucketWithRate(config.LimitUploadRate, config.LimitUploadBurst), - LimitAfter: config.LimitUploadAfter - config.LimitUploadBurst, + Bucket: ratelimit.NewBucketWithRate(config.LimitFbUploadRate, config.LimitFbUploadBurst), + LimitAfter: config.LimitFbUploadAfter - config.LimitFbUploadBurst, }) } waitGroup.Done() }() } conn.Write(s2cSaved) - if config.LimitDownloadRate == 0 || config.LimitDownloadBurst == 0 { + if config.LimitFbDownloadRate == 0 || config.LimitFbDownloadBurst == 0 { io.Copy(underlying, target) } else { // Limit download speed for fallback connection io.Copy(underlying, &RatelimitedConn{ Conn: target, - Bucket: ratelimit.NewBucketWithRate(config.LimitDownloadRate, config.LimitDownloadBurst), - LimitAfter: config.LimitDownloadAfter - config.LimitDownloadBurst, + Bucket: ratelimit.NewBucketWithRate(config.LimitFbDownloadRate, config.LimitFbDownloadBurst), + LimitAfter: config.LimitFbDownloadAfter - config.LimitFbDownloadBurst, }) } // Here is bidirectional direct forwarding: