github Jolymmiles/Xray-core v26.9.5-0936
Xray-core v26.9.5-0936

4 hours ago

Highlights

SMUX Brutal now respects locked TCP Brutal v2 destination rules. Connections continue under the kernel-managed rate instead of failing during bandwidth negotiation when the kernel returns EPERM.

Fork fixes

  • Previously, selecting brutal on an already locked socket or writing a locked rate caused Xray to reject the Brutal exchange and close the carrier. Xray now reads the active congestion-control algorithm on that same socket and continues only when it confirms brutal.
  • Preserve the system-managed rate and group. A rejected algorithm change is not followed by a rate write. Other algorithms, failed reads, malformed kernel responses, and other socket errors remain fatal.
  • Add behavioral regression tests and opt-in real-module tests for application-managed rates, locked algorithm/rate rules, and rate-only locking. Kernel response decoding remains bounded and uses no new external dependency.

Upstream changes

Includes upstream/main through cd4ce973 (the WebSocket delay-dial panic fix), unchanged from v26.9.4-2204. No newer upstream/main commits were available when preparing this release.

Compatibility notes

  • Configure TCP Brutal v2 separately on Linux. Locked destination rules take precedence over the SMUX-negotiated rate; size the system rule for the receiving link. Ordinary application-controlled rates still work when no rule applies.
  • Existing SMUX bandwidth-exchange bytes and advertised receive ceilings are unchanged. VLESS, Trojan, REALITY and Vision protocol/authentication rules are preserved.
  • REALITY minClientVer and maxClientVer remain optional operator settings, without an implicit minimum. The displayed HHMM stamp is not added to REALITY's three-byte version identity.
  • The real-module regression was validated with TCP Brutal 2.0.0 on Linux 7.1.9/amd64 in an isolated VM. This establishes compatibility on that kernel, not improved traffic camouflage or packet-loss throughput.

Validation

  • Local unit, race, checkptr, vet, formatting and protobuf-header checks passed, including RED/GREEN version verification and static Linux/amd64 and Linux/arm64 builds.
  • The fix passed 24/24 SMUX interoperability cells with Xray, sing-box and Mihomo clients, 18/18 peak reconnect cycles, and 300/300 bounded hardening cycles. Five microbenchmark samples retained zero allocations per operation.
  • Three baseline/candidate performance comparisons passed the duration and resource budgets; median ratios were 0.985–1.005 on the shared native Linux host. No speedup is claimed.
  • Real TCP Brutal v2 socket and full Xray SMUX process tests passed in all three rule modes; the pre-fix binary reproduced the carrier failure under a locked rule.
  • The release candidate separately passed all 36 VLESS TCP TLS/REALITY no-flow/Vision cells across Xray, sing-box and Mihomo clients, plus targeted VLESS/REALITY unit, race, checkptr and vet checks.
  • Tests and Checkings passed on release commit 32dd701a: repository tests, formatting and protobuf-header consistency.
  • Pre-release Validation passed on the same commit: repository-wide unit/race/checkptr and vet, process interoperability and lifecycle gates, peak and 50-cycle reconnect profiles, performance/resource budgets, the RemnaNode environment/configuration contract, a 30-minute soak (61 cycles), and Linux/amd64 artifact inspection.

Don't miss a new Xray-core release

NewReleases is sending notifications on new releases.