Skip to content

Xray-core v1.4.0

Compare
Choose a tag to compare
@RPRX RPRX released this 14 Mar 15:59
· 1084 commits to main since this release
9dec65e

Topic: WebSocket 0-RTT & gRPC Transport,均可用于 CDN

WebSocket 0-RTT

快速上手

  1. 客户端、服务端均升至 Xray-core v1.4.0+,注意不需要改服务端的任何配置
  2. 只需在客户端的 path 后加上 ?ed=2048 即可减少 1-RTT,2048 代表 early data 的长度上限,目前建议写 2048

比如 path 本来是 /example,则只需改为 /example?ed=2048 - Xray-core WebSocket 0-RTT 整体设计理念

长度上限

  1. 取决于整个反代链路均可接受的 header 长度,比如 Nginx 默认 4K,而 Fallbacks 不是反代故没有限制
  2. Base64 编码会使数据膨胀 4/3,比如 2048 长度编码后约长 2731,这还不包括 header 中其它部分

所以订阅下发者应确保该值有效,若无特殊需求,2048 即可 - 其实你现在就可以下发带 ?ed=2048 的订阅

gRPC Transport

我们在此版本中引入了对 gRPC Transport 的试验性支持,它的积极意义在于:

  1. 能够以 alpn h2, http/1.1 通过 CDN
  2. 自带的 mux 可以降低延迟、减少特征

Xray-core 专门对它进行了性能优化,并且支持 multi 模式,详见 gRPC 文档

十分感谢 @DuckSoft @JimhHan @xiaokangwang

Features

Fake DNS

  • Add Fake DNS support, and more contribution @yuhan6665
  • Use 198.18.0.0/16 as default Fake IP Pool, and more contribution @JimhHan

DNS and Dialer

  • Dialer 支持先用内置 DNS 服务器解析出 IP:配置 sockoptdomainStrategy @JimhHan
  • 支持带传输层链式代理:配置 sockoptdialerProxy @JimhHan
  • 增加 DNS 查询日志 @JimhHan
  • 修复 DoH 遗留问题 @JimhHan

TCP Fast Open

  • Linux Server 支持指定 TCP Fast Open 队列长度 @risetechlab
  • "tcpFastOpen": true 的默认队列长度由 1 改为 256

VMess

  • Add VMess zero encryption (but still slower than VLESS and Trojan) @AkinoKaede
  • You can set XRAY_VMESS_AEAD_FORCED = true at server side @AkinoKaede

Fixes

UDP

  • Skip Port 53, 443 before using single XUDP for VLESS & VMess,这项改变带来了更强的兼容性
  • Freedom Outbound will use buf.PacketReader when UDPOverride is available(UDP 重定向)

Fallbacks related

  • Stop at '?' when reading HTTP PATH before shunting,这是配合 WebSocket 0-RTT 的重要更改
  • Do not cause error when json:"fallback" is null @RManLuo

Others

  • Fix panic: Header called after Handler finished @JimhHan, Thank @liang-chang
  • Fix panic: runtime error: slice bounds out of range [15:14], Thank @rurirei

Chores

  • Adjust release.yml @AkinoKaede @JimhHan
  • linux-rppc64le -> linux-ppc64le
  • Use Go 1.16.2
  • Upgrade dependencies

Notices

  • 毫无悬念:下个版本会有 uTLS
  • 欢迎讨论:想象一下用浏览器中转 WSS、H2、QUIC?现在我们正式发布这一想法 v2ray/discussion#754 (comment)