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 新增了四项配置:minVersion
、maxVersion
、cipherSuites
、preferServerCipherSuites
十分感谢 @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 文件,暂时不含自动重启功能。