[v0.9.4] - 2026-10-23
🚀 Features & Enhancements
-
AmneziaWG Protocol Support (AWG 3.1):
- Native Runner & Kernel Integration: Added full support for AmneziaWG (AWG 3.1) inbounds and outbounds alongside WireGuard.
- DPI-Resistant Obfuscation: Implemented configurable handshake obfuscation parameters (
jc,jmin,jmax,s1,s2,s3,s4,h1,h2,h3,h4) designed to evade Deep Packet Inspection (DPI) while preserving high wire-speed performance. - Downloadable Client Configurations: Built one-click
.conffile download generator creating complete[Interface]and[Peer]configuration profiles with custom DNS, MTU, client private keys, server public keys, and obfuscation parameters. - Mobile & Desktop Share Links: Added support for standard
vpn://(AmneziaWG format) andwireguard://share links, client QR codes, and clipboard export.
-
MTProto Proxy Integration with FakeTLS (
mtg):- Integrated
mtgSidecar: Embedded process supervisor formtg-multi(v1.16.0) across all Linux architectures (amd64, arm64, armv7, armv6, armv5, 386, s390x) and Darwin with automatic lifecycle and process monitoring. - FakeTLS Domain Camouflage: Built generator and validator for FakeTLS secrets (
ee.../dd...+ 32-hex secret + hex-encoded domain) enabling Telegram traffic to masquerade as standard TLS traffic to camouflage hosts (e.g., Cloudflare). - One-Click Telegram Connection Links: Direct
tg://proxyandt.me/proxylink generation, interactive QR codes, and clipboard actions for seamless mobile integration. - Multi-Tenant User Accounting: Support for multiple Telegram clients under a single inbound with independent credentials, email identifiers, and status tracking.
- Integrated
-
External Proxy Endpoint Application Across Client Configs & URIs:
- Dynamic Ingress Endpoint Overrides: Extended
streamSettings.externalProxy(dest,port,remark,forceTls,clientTlsSettings) to override client connection endpoints without changing local server listening ports. - WireGuard & AmneziaWG
.confExport: Configured external proxy host and port are automatically populated asEndpoint = dest:portin generated client.confdownloads, QR codes, andvpn:///wireguard://links. - Telegram Proxy Share Links: Applied external proxy host and port to
tg://proxy?server=dest&port=port&secret=...links across frontend modals (inbound_info_modal.html,qrcode_modal.html,clients.html) and backend subscription services (subService.go,subJsonService.go). - Automated Unit Testing: Created comprehensive test suite in
internal/sub/sub_external_proxy_test.goverifying endpoint overrides for AmneziaWG, WireGuard, and MTProto subscriptions and config downloads.
- Dynamic Ingress Endpoint Overrides: Extended
-
Curve25519 Cryptographic Keypair Architecture:
- RFC 7748 Standard Clamping: Implemented native
GenerateWireguardKeypair(),DerivePublicKey(), andGenerateWireguardPSK()ininternal/util/wireguard/wireguard.go. - Client Credential Decoupling: Fixed client private key generation for AmneziaWG and WireGuard to ensure standard 32-byte Base64-encoded Curve25519 keys are always produced, resolving issues where Trojan password strings were previously reused.
- Automatic Public Key Derivation: Automatically calculates and validates the Curve25519 public key from the private key if omitted during client creation or update.
- RFC 7748 Standard Clamping: Implemented native
-
Finalmask Obfuscation & Stream-Masking System Overhaul:
- Modular Reusable Templates: Created
stream_finalmask_fields.htmlconsolidating shared mask components (xdnsDomains,noiseFields,fragmentFields,sudokuFields,filterFields,udpHopFields,headerCustomTcp,headerCustomUdp). - Inbound & Outbound Parity: Unified
stream_finalmask.html,stream_settings.html, andoutbound.htmlwith support for all mask types across TCP and UDP (includingfilterIP ACLs,realm, and QUIC parameters formasqueandhysteria). - Standalone QUIC Parameters: Fixed
hasFinalMaskandtoJsonin bothinbound.jsandoutbound.jsso QUIC parameters (congestion, brutal upload/download, window sizes) are saved and retained without requiring non-empty TCP/UDP mask arrays. - Core Compatibility & udpHop Migration: Stripped server-side
quicParams.udpHopinGenXrayInboundConfigandBuildInboundConfigviaxray.TakeUDPHopto prevent Xray-core rejection; transformed client udpHop to the requiredudphopUDP mask insubService.goandsubJsonService.go. - Safe Client Distribution: Implemented
getClientFinalMaskStringand deep-cloning in subscription services to strip server-sidefilterIP ACLs and prevent leaking internal filters to client links. - Expanded Share Links: Added
fmquery/JSON export to VMess and Masque share links and link parsers. - Unit Test Coverage: Created
xray/finalmask_test.goverifyingTakeUDPHop,MoveUDPHopToMask,UpgradeXDNSMasks, andStripFilterMasks.
- Modular Reusable Templates: Created
-
Telegram Bot Multi-Protocol Credential Architecture:
- Upgraded client addition handler in
internal/web/service/tgbot.goto support Shadowsocks 2022 (correct key length calculation and generation), traditional Shadowsocks AEAD, Trojan, Hysteria (Auth), and Masque (MasquePass). - Synced client credential fields with database models and node client services.
- Upgraded client addition handler in
-
Bash Management Scripts & Aliases:
- Command Alias: Added
/usr/bin/tx-uisymlink ininstall.shandx-ui.sh, allowing users to manage the panel using eithertx-uiorx-ui. - Version Tag Normalization: Enhanced
install.shandlegacy_versioninx-ui.shto automatically normalize version inputs with or without thevprefix. - Menu Option Range: Fixed main menu selection prompt and error validation in
x-ui.shfrom[0-25]to[0-26]to fully include Theme Management. - Branch Sync: Fixed uninstall script URL to use the
mainbranch instead of deprecatedmaster.
- Command Alias: Added