Skip to content

Releases: XTLS/Xray-core

Xray-core v1.1.5

25 Dec 15:50
0203190
Compare
Choose a tag to compare

🎅 🎄 🦌 圣诞快乐!本次的 release note 不在这里,若找不到彩蛋,就等下一个版本吧

🧦 ⛄ 🎁 Xray-install 有大量更新,请查收!感谢 @kirin10000 的贡献

Xray-core v1.1.4

18 Dec 13:52
4140ed7
Compare
Choose a tag to compare

Optimize Memory Usage

Xray-core 及 v2ray-core v4.32.0+ 均默认内部读取 json 并反复解码整个 dat 文件,启动时会消耗非常多的内存,且迟迟不还给系统。#68

于是,现在 Xray-core 会先 预解析 dat 文件的 pb 结构,只 Unmarshal 需要的部分,并多次主动 GC,加载完配置主动触发 FreeOSMemory 释放内存。这大幅降低了启动时的瞬时内存占用,解决了默认 jsonem 带来的问题,预解析更是让更多的设备可以直接加载配置。45f44c4

目前 VMess 协议常与 WSS 等结合使用,此时服务端的 drain 机制是没有必要的,所以非纯 TCP/DS 时关闭了此机制以节省资源。f390047

More Configurable TLS

此版本开始,Xray 的 tlsSettings & xtlsSettings 新增了四项配置:minVersionmaxVersioncipherSuitespreferServerCipherSuites
十分感谢 @eMeab 的多个 PR,现在你可以自由配置它们以改变客户端的 TLS 指纹、提升服务端的网站评级等,详见 #56 (comment)

此外,早已弃用的 allowInsecureCiphers 已被完全移除。注意,allowInsecure 仍然保留。这些改动可能需要重新生成 pb 配置。

More Powerful XTLS

现在你可以在更多场景下使用 XTLS Splice 了:出站的 Splice 现已支持入站是 XTLS 的场景(即入站是任意 XTLS 且出站是 XTLS Splice)
关于 Linux 内核参数,我们有了新的进展:已确认大多数硬路由等带硬件 NAT 的设备不会受到明显影响,详见 v1.1.3 的最新说明

Trojan XTLS 已就绪,使用方式及规则与 VLESS XTLS 完全相同:支持 Splice、Direct 等,服务端 Trojan XTLS 兼容客户端普通 Trojan TLS
理论上,Xray-core 的 Trojan 与 VLESS 在性能上没有区别,包括 XTLS 系列,可直接参考以往 VLESS XTLS 的性能测试

Other Changes

  • Fix: HTTP dialer uses ctx instead of context.Background() @JimhHan
  • Config loader returns error instead of directly panic @JimhHan

Chores

  • Upgrade dependencies
  • Update geoip.dat, geosite.dat

Notices

  • Xray-core releases 中的 Linux 预编译版不再附带 service 文件。
  • Xray-install 内置 service 文件,暂时不含自动重启功能。

Xray-core v1.1.3

11 Dec 11:10
d71fa16
Compare
Choose a tag to compare

Topic: Transparent Proxies & Hardware NAT

REDIRECT

在此版本前,我们进行了大量的研究与尝试,并最终重构了透明代理的 REDIRECT 模式 f1eb5e3 ,使之同时支持 IPv4 和 IPv6。
十分感谢 @badO1a5A90 @LGA1150 协助测试,这项重构解决了一个历史遗留问题 v2ray/v2ray-core#1309 (comment)

Suggestion

我们偶然发现 Linux 内核的一些参数设置对处理数据包的性能有影响,但大多数硬路由等带硬件 NAT 的设备不会受到明显影响。
若你的中间设备只是透明代理,不涉及 NAT 转换(即内核直接在多网段间修改并转发数据包),建议设置(并重启):

net.ipv4.ip_forward=0
net.ipv6.conf.all.forwarding=0

在测试机器上,任开其一即会严重拉低各协议组合的性能,包括 Splice。而对于仅透明代理,实测这两个参数都是不必开启的。
事实上,即使存在多个网段,不带硬件 NAT 的设备也完全可以配成仅透明代理 —— 毕竟路由器本质上也相当于“透明代理”。

#59 有更详细的信息,希望有更多实测与反馈,因为不同环境的受影响程度不同。说实话,专门的硬件 NAT 是个好东西。

Other Changes

  • 调整切换至 Splice 前的 CPU 出让方式为 runtime.Gosched()
  • Trojan XTLS Outbound 现已支持 Splice 请用之后的版本
  • 修正一些 Code generator 的行为 @JimhHan
  • 完善对 v2ray.core API 的兼容方式 @JimhHan

Chores

  • Upgrade dependencies
  • Update geoip.dat, geosite.dat

Notices

  • 若你需要缩小可执行文件的体积,推荐使用 UPX
  • 手工编译 Xray-core 时,建议关闭 CGO

Xray-core v1.1.2

06 Dec 10:08
bf9401a
Compare
Choose a tag to compare

Topic: Linux Kernel Splice(适用于 Android、路由器等 Linux 环境)

What's Splice

Splice 是 Linux Kernel 提供的函数,系统内核直接转发 TCP,不再经过 Xray 的内存,大大减少了数据拷贝、CPU 上下文切换的次数。XTLS Direct Mode 读取数据时不需多余处理,此前引入了默认的全平台 ReadV 增强,性能已与 VLESS 裸奔持平。而现在,你可以选择性开启 Splice 增强:经测试,性能达到了 VLESS 裸奔的两倍。你没看错,比现在的裸奔更省资源。

Scene Limits

  1. Linux 环境,入站为 任意门、Socks、HTTP 等纯净的 TCP 连接。
  2. 出站为 VLESS XTLS。Trojan XTLS、裸奔等尚未增加此项优化。

Usage

  1. 客户端 flow 改为 xtls-rprx-splice。若不需拦截 QUIC,填写 xtls-rprx-splice-udp443
  2. 服务端 flow 保持 Direct。以后服务端也会有 Splice 优化。

More

  1. 若你开了流量统计,Splice 转发完一整条 TCP 才会反馈数据量。
  2. 其实应用 Splice 后,性能已与软件架构无关,只取决于你的机器和系统内核的表现,非常纯粹。

Xray-core 1k stars 啦,感谢各位的支持!文档 coming soon

Performance

Other Changes

Chores

  • Regenerate .pb.go files
  • Use Go 1.15.6
  • Upgrade dependencies
  • Update geoip.dat, geosite.dat

Notices

  • 新增 Xray-android-arm64-v8a.zip,建议 Magisk 和 Termux 优先用此版本。
  • 可执行文件均 Reproducible,相同版本 Go 交叉编译即可验证。

Xray-core v1.0.0

25 Nov 11:03
Compare
Choose a tag to compare

New Beginning

Xray-core 基于 v2ray-core 修改而来,改动较大,你只需知道:

  • 只有一个可执行文件,含 ctl 的功能,run 为默认指令
  • 配置上完全兼容,环境变量和 API 对应要改为 XRAY
  • 全平台开放了裸协议的 ReadV,有待更多测试与反馈
  • 提供完整的 VLESS & Trojan XTLS 支持,均有 ReadV

Credits

https://github.com/XTLS/Xray-core/blob/main/README.md

Performance

与 v2ray-core v4.32.1、v4.33.0 的一些 测试与对比