[v0.9.6] - 2026-11-02
🚀 Features & Enhancements
-
WireGuard Client Configuration & QR Code Preshared Keys:
- Interoperable PSK Delivery: Standardized preshared key handling (
preSharedKeyandpsk) across client configuration file downloads (.conf) and share link URLs. - Complete URL Query Parameters: Added
pre_shared_key,preshared_key, andpskURL parameters towireguard://links and QR codes, ensuring compatibility across diverse client apps (v2rayN, NekoBox, Shadowrocket, Streisand, etc.). - Client Modal & Bulk Sync: Synchronized
preSharedKeyandpskacross client creation/edit forms, bulk client generation, and detail modal downloads. - Key Transparency: Added Public Key, Private Key, and Preshared Key fields directly into the Client Details modal table.
- Subscription Service Parity: Ensured preshared keys are preserved in both standard URI (
subService.go) and JSON (subJsonService.go) subscription outputs.
- Interoperable PSK Delivery: Standardized preshared key handling (
-
Xray-core v26.10.31 Integration (26.10.21 -> 26.10.31):
- Dependency Upgrade: Upgraded
github.com/xtls/xray-corefrom commit1b1647cd9ddf(v26.10.21) to commita4a3dff5b20c(v26.10.31). - XHTTP Transport Enhancements:
- Added support for
OPTIONSasuplinkHTTPMethodinstream_xhttp.html(matching Xray-core #7290). - Added configurable HTTP/2 server parameters (
h2Params) inxHTTPStreamSettingsmodel (inbound.js) and UI (stream_xhttp.html) for fine-grained tuning of Go'shttp.HTTP2Configon SplitHTTP servers (Xray-core #7295).
- Added support for
- XDRIVE Transport S3 Storage Backend:
- Integrated native
"s3"service backend inXDriveStreamSettings(inbound.js,outbound.js), inbounds (stream_xdrive.html), and outbounds (outbound.html). - Added support for S3 endpoint, region, bucket, path-style addressing, and S3 credentials (AccessKeyID, SecretAccessKey, session token) (Xray-core #7231).
- Integrated multi-slot ring buffering session management for Google Drive backend (Xray-core #7217).
- Integrated native
- TUN Inbound WFP Leak Protection:
- Enhanced
autoSystemWfpBlockLeakintun.htmlwith tag mode to support customtcp/<port>andudp/<port>leak-blocking rules (e.g.tcp/853,udp/853), alongsidewindnsclient,dns, andmisconfigtun(Xray-core #7288).
- Enhanced
- Security & Network Core Fixes:
- Disabled MPTCP by default on listeners to mitigate Linux CVE-2026-98432 while preserving explicit
sockopt.tcpMptcpopt-in (Xray-core #7291). - Geodata streaming gzip decompression for asset downloads, download size limit (256 MiB), and mandatory
.datfile extensions with >= 1 minute interval guards (Xray-core #7267, #7294). - Freedom outbound deprecation warnings guiding migration of legacy
fragmentandnoisesto Finalmask (Xray-core #7242). - WebSocket transport EOF handling on normal close frames (Xray-core #7236).
- API commands fix for
xray api bi balancer1 balancer2(Xray-core #7299) andxray api adrules(Xray-core #7276). - QUIC sniffer gap rejection in CRYPTO data (Xray-core #7292).
- Disabled MPTCP by default on listeners to mitigate Linux CVE-2026-98432 while preserving explicit
- Internationalization (i18n):
- Added localized S3 parameters (
s3Endpoint,s3Region,s3Bucket,s3PathStyle,s3SecretsDesc) across all 13 supported languages.
- Added localized S3 parameters (
- Docker & Documentation Alignment:
- Updated
DockerInit.shbinary download URL tov26.10.31. - Updated mock Xray version in interactive documentation (
docs.html) tov26.10.31. - Updated feature lists in all language
READMEfiles to reflect v26.10.31 features.
- Updated
- Dependency Upgrade: Upgraded
🐛 Bug Fixes
- WireGuard Inbound Client Management & Stability:
- Idempotent Client Traffic Creation: Resolved
UNIQUE constraint failed: client_traffics.inbound_id, client_traffics.emailon inbound updates by makingAddClientStatupdate existing records without wiping traffic usage counters. - Dynamic Inbound Client Addition (Zero Restart): Implemented
AddUsersupport for thewireguardprotocol inxray/api.govia Xray'sHandlerServicegRPC API, eliminating forced Xray restarts when adding WireGuard clients. - AllowedIPs CIDR Normalization: Guaranteed valid subnet prefixes (
/32for IPv4,/128for IPv6) in WireGuard peer configurations, fixing client ping/connectivity issues caused by unadorned IP addresses. - Schema Fallback Resiliency: Added fallback between
peersandclientssetting keys inGetClients,BuildInboundConfig,AddInboundClient, andwireguardClientsAsPeersto prevent empty peer arrays.
- Idempotent Client Traffic Creation: Resolved
- Core Lifecycle & API Port Readiness:
- Eliminated Transient Connection Refusals: Resolved
connection refuseddebug errors during Xray restarts by verifying that the gRPC API port is actively accepting TCP connections beforeProcess.Start()returns. - Graceful Termination Wait in
Process.Stop(): Added process exit tracking viadoneChanandisStoppingflag, ensuring the terminated Xray core fully exits and releases all network ports/sockets before a new instance is spawned. - Atomic Restart Lifecycle Tracking: Added
isRestartingstate tracking inXrayServiceto prevent concurrent traffic jobs from dialing unready endpoints. - Duplicate Log Suppression: Removed redundant
Failed to fetch Xray trafficdebug logging inGetXrayTraffic.
- Eliminated Transient Connection Refusals: Resolved
- Auto-Delete Depleted Clients Enforcement:
- Updated
AutoDeleteDepletedClientsJobto checkautoDeleteDay <= 0at the very entry point, ensuring the job does not run or log when disabled (autoDeleteDay = 0).
- Updated
- UI & Inbound API Robustness:
- Login Secret Reactivity: Initialized
loginSecretin theUserclass constructor (login.html) to guarantee Vue reactivity and eliminated button spinner flickering on page load. - Comprehensive Xray Process Nil-Guards: Added nil-safe checks to
*xray.Processmethods and guarded live Xray API invocations acrossInboundServicewithp != nil && p.IsRunning(). - API Timeout Contexts: Added 5-second timeout contexts to
AddInbound,DelInbound, andAddUsergRPC calls inXrayAPI.
- Login Secret Reactivity: Initialized