v25.3.6

XTLS/Xray-corev25.3.6Mar 6, 2025by RPRX

AI Summary

Major update focusing on XHTTP optimizations (path padding migration, stream-up fixes) and the new MITM-Domain-Fronting feature. Upgraded to Go 1.24+.

Key Highlights

  • Path padding migrated to Referer header to reduce log size and fix stream-up issues with Cloudflare.
  • New MITM-Domain-Fronting feature to bypass GFW using TLS MITM and domain fronting.
  • h2c:// support for DoH to bypass recent GFW blocks on standard DoH.
  • Upgraded to Go 1.24+ and upgraded quic-go to v0.49.0.

Breaking Changes

  • sockopt config: Remove `tcpNoDelay`

New Features

  • MITM-Domain-Fronting
  • h2c DoH support
  • Go 1.24+ support
  • XHTTP improvements and fixes

Full Release Notes

## XHTTP: Beyond REALITY #4113 & MITM-Domain-Fronting

距离上次写 release notes 已过了近三个月,在此期间 XHTTP 积累了大量的改进与修复,**其中感知最明显的是逐步将 HTTP request header 的 path padding 迁移至了 Referer header 以避免产生过长的日志(由 @rPDmYQ 提出),以及逐步修复了 stream-up 通过 CF 时连接 100 秒后被掐断的问题**,请查看 commit history 及第四版 [XHTTP: Beyond REALITY](https://github.com/XTLS/Xray-core/discussions/4113)。

**XHTTP 服务端需要及时升级至该版本,以支持新版 XHTTP  客户端。**

另一项重点开发的功能是 **MITM-Domain-Fronting**:
- 比如现在你可以用 Xray 对浏览器发出的 TLS MITM 并强制域前置,**以实现无代理服务器直连一些被 GFW 封锁的网站**。
- Xray 内置 DNS 也加了 h2c:// 以搭配 freedom 出站实现内置 DoH 域前置,**它正好可以绕过近期 GFW 对 DoH 的封锁**。并且 Xray 内置 DoH 现在均默认使用 Chrome 指纹、加了 header padding。
- @patterniha 分享出了适用于伊朗的完整 serverless 配置,包括 TCP/TLS fragment 和 UDP noises:[Serverless-for-Iran](https://github.com/XTLS/Xray-examples/tree/main/Serverless-for-Iran)。Please join the official Xray Iranian group https://t.me/projectXhttp for more information.

**请支持一个 REALITY NFT:https://opensea.io/assets/ethereum/0x5ee362866001613093361eb8569d59c4141b76d1/2**

如果你有余力,请支持一个 Project X NFT:https://opensea.io/assets/ethereum/0x5ee362866001613093361eb8569d59c4141b76d1/1

**Xray 接下来的重心转向 Vision Seed & VLESS Encryption,Windows Tun & GUI Client,以及 ECH 和 REALITY 抗量子更新。**

最低 Go 版本要求已升至 Go 1.24+,@KobeArthurScofield 正在维护 https://github.com/XTLS/go-win7 以继续支持 Win7。

虽然我们 tag 了 v1.250306.0,但目前仅打算在稳定版时更新这种 tag,所以如果你的项目需要追新,仍需指定 commit id。

## What's Changed
* XHTTP XMUX: Fix OpenUsage never gets reduced by @RPRX in https://github.com/XTLS/Xray-core/commit/1410b6335ba81aaa20f6cf460ec640501b968cef
* XHTTP client: Make H3 httptrace work on v2rayNG by @RPRX in https://github.com/XTLS/Xray-core/commit/53b04d560b0a4d3aaed62eb30aaa971bdccf2de6
* XHTTP client: Merge Open* into OpenStream(), and more by @RPRX in https://github.com/XTLS/Xray-core/commit/db934f083218dddf40811e8f716074de2c280160
* DNS: Always use a DNS Message ID of 0 for DoH and DoQ by @maoxikun @dyhkwong in https://github.com/XTLS/Xray-core/pull/4193
* chore: use errors.New to replace fmt.Errorf with no parameters by @RiceChuan in https://github.com/XTLS/Xray-core/pull/4204
* Core: Add mutex to injection resolution by @yuhan6665 in https://github.com/XTLS/Xray-core/pull/4206
* Dokodemo TPROXY: Interrupt UDP download if upload timeouts by @RPRX in https://github.com/XTLS/Xray-core/commit/a8559a1b465909ef4d7ce222361c316bcaaa7f4f
* XHTTP XMUX: Increase the default value for cMaxReuseTimes by @RPRX in https://github.com/XTLS/Xray-core/commit/ff4331a7a86bb2e4341713fbfb20270bb1b17c20
* XHTTP XMUX: `cMaxLifetimeMs` -> `hMaxReusableSecs`, Refactor default values by @RPRX in https://github.com/XTLS/Xray-core/commit/4ce65fc74c4c50919b10b3faff9725f75bba5d73
* Sockopt config: Add `penetrate` for XHTTP U-D-S, Remove `tcpNoDelay` by @RPRX in https://github.com/XTLS/Xray-core/commit/369d8944cf3773300eb8dad3f909957e5705fc49
* Inbounds config: Add `mixed` as an alias of `socks` by @RPRX in https://github.com/XTLS/Xray-core/commit/5af90684c44d88036b99fbd441f3ad96847992a2
* Build: Use patched newer Go version to build Windows 7 assets by @KobeArthurScofield in https://github.com/XTLS/Xray-core/pull/4192
* Upgrade quic-go to patched v0.48.2 by @RPRX in https://github.com/XTLS/Xray-core/commit/8a6a5385ff174d0cf72b923b736128a4f7020c93
* Config: Correctly marshal Int32Range to JSON by @yiguous in https://github.com/XTLS/Xray-core/pull/4234
* Freedom config: Fix noises delay by @GFW-knocker in https://github.com/XTLS/Xray-core/pull/4233
* Workflows: Trigger all Build & Test on all branches & files by @RPRX in https://github.com/XTLS/Xray-core/commit/dd4ba823f50fbfee804ae0f01d3d90b949971a41
* Freedom noises: Change legacy variable name by @Fangliding in https://github.com/XTLS/Xray-core/pull/4238
* Freedom noises: Support "hex" as `type` & `packet` by @GFW-knocker @RPRX in https://github.com/XTLS/Xray-core/pull/4239
* Freedom noises: Support RawURLEncoding for "base64" by @RPRX in https://github.com/XTLS/Xray-core/commit/2f52aa7ed8624ec2889508451d59797e47573b8c
* Upgrade gVisor to a newer version by @hossinasaadi in https://github.com/XTLS/Xray-core/pull/3903
* Build: Update GeoIP/GeoSite Cache per hour by @KobeArthurScofield in https://github.com/XTLS/Xray-core/pull/4247
* XHTTP XMUX: Abandon `client` if `client.Do(req)` failed by @RPRX in https://github.com/XTLS/Xray-core/pull/4253
* Freedom: Don't use rawConn copy when using utls by @Fangliding in https://github.com/XTLS/Xray-core/pull/4272
* chore: fix struct field name in comment by @dashangcun in https://github.com/XTLS/Xray-core/pull/4284
* Commands: Fix dumping merged config for XHTTP by @vrnobody in https://github.com/XTLS/Xray-core/pull/4290
* Mixed inbound: Handle immediately closing connection gracefully by @rPDmYQ @RPRX in https://github.com/XTLS/Xray-core/pull/4297
* XHTTP client: Move `x_padding` into `Referer` header by @rPDmYQ in https://github.com/XTLS/Xray-core/pull/4298
* DNS: Implement queryStrategy for "localhost" by @Fangliding in https://github.com/XTLS/Xray-core/pull/4303
* XHTTP server: Add `scStreamUpServerSecs`, enabled by default by @RPRX in https://github.com/XTLS/Xray-core/pull/4306
* DNS DoH: Add h2c Remote mode (with TLS `serverNameToVerify`) by @RPRX in https://github.com/XTLS/Xray-core/commit/2522cfd7becdab686d87e54c5aba6986f4ef6a9c
* RAW: Allow setting ALPN http/1.1 for non-REALITY uTLS by @RPRX in https://github.com/XTLS/Xray-core/commit/740a6b0dcd06c7f357ae6f8906f5d280a1620a3c
* Log: Add microseconds for all kinds of logs by @RPRX in https://github.com/XTLS/Xray-core/commit/5679d717eef23f48d4f60a0a34684f46c478e053
* UDS: Keep valid source addr by @Fangliding in https://github.com/XTLS/Xray-core/pull/4325
* Upgrade quic-go to official v0.49.0 by @RPRX in https://github.com/XTLS/Xray-core/commit/a7a83624c57ce7647de06528325b3222dbdff437
* README.md: Add xray-checker to Xray Tools by @kutovoys in https://github.com/XTLS/Xray-core/pull/4319
* XTLS Vision: Use separate uplink/downlink flag for direct copy by @yuhan6665 in https://github.com/XTLS/Xray-core/pull/4329
* XHTTP client: Add back minimal path padding for compatibility  by @RPRX in https://github.com/XTLS/Xray-core/commit/efdc70fbf782433689dcb114e37426395100614d
* Commands: Fix ambiguous printing of private x25519 key by @auvred in https://github.com/XTLS/Xray-core/pull/4343
* README.md: Add Project XHTTP (Persian) to Telegram by @RPRX in https://github.com/XTLS/Xray-core/commit/480c7d7db7602979d0f638b7bf138b747c91ee48
* MITM: Allow forwarding local negotiated ALPN http/1.1 to the real website by @RPRX in https://github.com/XTLS/Xray-core/commit/9b7841178a4cb7d5b7ce558afa221254d8d3fa56
* MITM: Allow using local received SNI in the outgoing `serverName` & `verifyPeerCertInNames` by @RPRX in https://github.com/XTLS/Xray-core/commit/c6a31f457cddc64b8c3bd08c66db1db128036c4f
* Log: Add microseconds for golang's standard logger by @RPRX in https://github.com/XTLS/Xray-core/commit/527caa3711a1dc3e29fd2a62549d4b1efdd64a77
* MITM freedom RAW TLS: Report website with unexpected Negotiated Protocol / invalid Domain Fronting certificate by @RPRX in https://github.com/XTLS/Xray-core/commit/117de1fd3c2703c0c85705e47dc7e93716e97c79
* API: Add user IPs and access times tracking by @mr1cloud in https://github.com/XTLS/Xray-core/pull/4360
* Chore: Make some Maps into real Sets by @arturmelanchyk in https://github.com/XTLS/Xray-core/pull/4362
* README.md: Add XrayUI to Asuswrt-Merlin clients by @DanielLavrushin in https://github.com/XTLS/Xray-core/pull/4355
* Geofiles: Switch to Loyalsoldier's v2ray-rules-dat by @RPRX in https://github.com/XTLS/Xray-core/commit/c81d8e488a0f4cd47016cd3b6095d2e7238f7627
* Workflows: Reduce Geodata update frequency by @KobeArthurScofield in https://github.com/XTLS/Xray-core/pull/4369
* MITM freedom RAW TLS: Allow "fromMitm" to be written at any position in `verifyPeerCertInNames`, Add checking for `alpn` "fromMitm" by @RPRX in https://github.com/XTLS/Xray-core/commit/d4c7cd02fd8b5d98dfd67b7322af381e192dc0f1
* DNS DoH h2c Remote: Add `verifyPeerCertInNames` "fromMitm" support by @RPRX in https://github.com/XTLS/Xray-core/commit/613c63b165829a0b3e5bfc3a72eff21d96ab4874
* Commands: Use ".crt" & ".key" suffixes when generating TLS certificates by @RPRX in https://github.com/XTLS/Xray-core/commit/925a985cc02f59f2dbd94d8209aa08fe8bd9af12
* XHTTP server: Finish stream-up's HTTP POST when its request.Body is closed by @RPRX in https://github.com/XTLS/Xray-core/commit/dcd7e92c4536b78aaa6ecf99c9fdb4dcef37ef32
* Workflows: Fix Actions' manual dispatch for assets update by @KobeArthurScofield in https://github.com/XTLS/Xray-core/pull/4378
* Config: Correctly marshal PortList and NameServerConfig to JSON by @yiguous in https://github.com/XTLS/Xray-core/pull/4386
* UDS: Make all remote addr 0.0.0.0 by @Fangliding @RPRX in https://github.com/XTLS/Xray-core/pull/4390
* Build: End of the easily mistaken 'Makefile' by @KobeArthurScofield @RPRX in https://github.com/XTLS/Xray-core/pull/4395
* API: Improve cli usage descriptions by @billzhong in https://github.com/XTLS/Xray-core/pull/4401
* XTLS: More separate uplink/downlink flags for splice copy by @yuhan6665 in https://github.com/XTLS/Xray-core/pull/4407
* XHTTP server: Set remoteAddr & localAddr correctly by @RPRX in https://github.com/XTLS/Xray-core/commit/8cb63db6c0c83f73333d033f8a30bf8730955e65
* XHTTP client: Revert "Add back minimal path padding for compatibility" by @RPRX in https://github.com/XTLS/Xray-core/commit/c5de08bea62cab07c79edac307bfadf27e71bff2
* Metrics: Add direct listen by @Fangliding in https://github.com/XTLS/Xray-core/pull/4409
* UDS: Use UnixListenerWrapper & UnixConnWrapper by @Fangliding @RPRX in https://github.com/XTLS/Xray-core/pull/4413
* XHTTP server: Fix stream-up "single POST problem", Use united httpServerConn instead of recover() by @RPRX in https://github.com/XTLS/Xray-core/commit/b786a50aee65359c8bbab6fc8ab39f33f4bf0d9a
* Outbound: Add outbound sendThrough origin behavior  by @lastrise in https://github.com/XTLS/Xray-core/pull/4349
* Use Go 1.24 by @RPRX in https://github.com/XTLS/Xray-core/commit/ce2384ccccb92a92fd1faf3eb7748459c09e53c6
* Chore: Fix tests by @Fangliding in https://github.com/XTLS/Xray-core/pull/4440
* XHTTP server: Switch to Go 1.24 native h2c support by @yin1999 in https://github.com/XTLS/Xray-core/pull/4451
* TLS fingerprints: Refine "random" & "randomized", Add "randomizednoalpn" by @RPRX in https://github.com/XTLS/Xray-core/commit/8d46f7e14c4a0256638f6f914709546b94326f42
* Sockopt: Add `addressPortStrategy` (query SRV or TXT) by @j3l11234 @Fangliding in https://github.com/XTLS/Xray-core/pull/4416
* DNS DoH: Use Chrome's fingerprint & keepAlivePeriod, Add header padding by default by @RPRX in https://github.com/XTLS/Xray-core/commit/e466b0497c3c563622146e2595d4870e4a43f56e
* REALITY config: Add `password` as an alias of `publicKey` by @RPRX in https://github.com/XTLS/Xray-core/commit/dde0a4f2729d9c56c0b7c7581b77d98f8f46e108
* Mux server: Clone the session.Content attached on ctx as well by @RPRX in https://github.com/XTLS/Xray-core/commit/16eee1b89c835dd7be44f12c24ce7f303bda8a9f
* README.md: Add Happ to iOS clients by @mangustyura in https://github.com/XTLS/Xray-core/pull/4465

以及升级一些依赖,使用 Go 1.24.1 进行编译。

## New Contributors
* @maoxikun made their first contribution in https://github.com/XTLS/Xray-core/pull/4193
* @RiceChuan made their first contribution in https://github.com/XTLS/Xray-core/pull/4204
* @GFW-knocker made their first contribution in https://github.com/XTLS/Xray-core/pull/4233
* @dashangcun made their first contribution in https://github.com/XTLS/Xray-core/pull/4284
* @rPDmYQ made their first contribution in https://github.com/XTLS/Xray-core/pull/4297
* @kutovoys made their first contribution in https://github.com/XTLS/Xray-core/pull/4319
* @auvred made their first contribution in https://github.com/XTLS/Xray-core/pull/4343
* @arturmelanchyk made their first contribution in https://github.com/XTLS/Xray-core/pull/4362
* @DanielLavrushin made their first contribution in https://github.com/XTLS/Xray-core/pull/4355
* @billzhong made their first contribution in https://github.com/XTLS/Xray-core/pull/4401
* @lastrise made their first contribution in https://github.com/XTLS/Xray-core/pull/4349
* @j3l11234 made their first contribution in https://github.com/XTLS/Xray-core/pull/4416
* @mangustyura made their first contribution in https://github.com/XTLS/Xray-core/pull/4465

**Full Changelog**: https://github.com/XTLS/Xray-core/compare/v24.12.18...v25.3.6