Xray-core

Latest version: v1.8.24

Safety actively analyzes 687918 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 11 of 12

1.3.1

Features

- Enable (X)TLS hot reloading by default 281
- Add `/opt/share/xray/` to assets location kidonng

Fixes

- Fix key derivation function panic in Go 1.16 rprx
- Fix freedom outbound UDP redirect rprx
- Fix context canceled while dialing HTTP/2 JimhHan
- Restrict tags to be unique JimhHan
- Skip closed client being chosen for reverse connection Xray9
- Fix ALPN being set to h2 by default when using TCP transport with (X)TLS AkinoKaede
- Remove useless imports in `main/run.go` rprx

Chores

- Add GitHub Actions kokeri xinb AkinoKaede JimhHan
- Use Go 1.16.0
- Upgrade dependencies

1.3.0

1. 服务端防火墙需要放行 UDP 高位端口(1024-65535),Docker 容器的网络模式需要是 Host
2. 此时 100% 能实现 FullCone,起作用的是 VPS 的公网 IP,与本地的 NAT 环境无关
3. 客户端 Xray-core v1.3.0+、服务端 v2fly-core 时,会测出假的 FullCone

若你需要关闭 Xray-core 的 FullCone 特性,可在客户端设置环境变量 `XRAY_CONE_DISABLED = true`

Milestone

至此,Xray-core 实现了全软件全协议全出入站全传输方式的全面 FullCone,这是一个里程碑式的成就:

**无论你在用 VLESS/VMess/Mux/Trojan/Shadowsocks,无论你选择 XTLS/KCP/CDN/H2/QUIC,无论 Socks 还是 TPROXY... 全部 FullCone**

FullCone 不再是哪个协议的专利,它已经像空气一样自然,随处可见,不留任何遗憾。

Features

Single-port Multi-user API

Xray-core 的 Shadowsocks AEAD 服务端单端口多用户现已支持 API 动态增删用户 AkinoKaede

至此,Xray-core 的 VLESS、Trojan、VMess、Shadowsocks 入站全部支持端口复用、API。

XTLS & TLS hot reloading

服务端更新 OCSP 数据前自动检查并重载证书及私钥文件 eMeab

证书、私钥填路径并开启 OCSP Stapling,即可无需在更新上述文件后重启 Xray-core。

Mixed JSON/TOML/YAML

多文件配置现已支持同时读取不同格式的配置文件 yjh1021317464

Chores

- Use Go 1.15.8
- Update geoip.dat, geosite.dat

Happy 🐮 Year 🎉

1.2.4

Socks

解决两个“连接至标准 Socks 服务端时可能出错”的历史遗留问题:

- 设置 Socks 出站 UDP Associate 请求中的 IP、Port 为空,符合 [RFC 1928](https://tools.ietf.org/html/rfc1928)
- 修正 Socks 出站 Username/Password 认证行为,符合 [RFC 1929](https://tools.ietf.org/html/rfc1929)

> Xray-core 不全等于 XTLS,Xray 解决了大量的历史遗留问题、进行了性能等多方面的优化,并且拥有更丰富的功能特性。

Fixes

- Fix acceptProxyProtocol bohanyang
- Fix OCSP Stapling eMeab
- Fix tests JimhHan
- Avoid panic in BytesTo func https://github.com/XTLS/Xray-core/issues/193

Chores

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

Notices

- v1.2.3 的一个依赖存在问题,补发 v1.2.4,也包含其它更多修复
- M1 版本切换至由 Go 1.16rc1 直接编译,Reproducible

> Xray-core 100 commits GET √

1.2.3

https://github.com/XTLS/Xray-examples/tree/main/Shadowsocks-AEAD

1. AEAD 加密方式使接收方能够验证解密是否成功,这是一切的基础
2. 服务端便可以通过尝试解密收到的第一个包来找到对应的用户

以下套件属于 AEAD 加密方式:

- AES-128-GCM
- AES-256-GCM
- ChaCha20-Poly1305 (alias ChaCha20-IETF-Poly1305)

希望推动 AEAD 被更广泛应用:

1. 我们只建议使用 AEAD 加密方式,且后续对 Shadowsocks 的增强只支持 AEAD
2. 老旧加密方式虽然不会被移除,但属于 deprecated,在文档中会做隐藏处理

端口复用有待进一步增强,比如实现同 IP 优先尝试机制、支持 API 动态增删用户等。

推荐一个高性能的 Shadowsocks AEAD 端口复用中转方案:[mmp-go](https://github.com/Qv2ray/mmp-go)

Optimizations

TPROXY

为 `FakeUDP socket` 设置 `SO_REUSEPORT`,优化了 TPROXY UDP 的代码与 err 处理逻辑。

Trojan

Trojan fallbacks 也支持匹配请求的 SNI 了,配置方式与 VLESS fallbacks 完全一致,详见 [Xray-core v1.2.2](https://github.com/XTLS/Xray-core/releases/tag/v1.2.2)

Sniffing

Feature: Exclude some domains in sniffing destOverride (151) AkinoKaede

Fixes

- Fix fallbacks xver when original address is not TCP address (182) bohanyang
- Convert domain names to lowercase before matching (195) badO1a5A90

Chores

- Regenerate .pb.go files JimhHan
- Use Go 1.15.7 Beginner-Go
- Upgrade dependencies
- Update geoip.dat, geosite.dat

Notices

- 已知此版本的 fallbacks xver / acceptProxyProtocol 可能不会生效,Tracker:https://github.com/XTLS/Xray-core/pull/182#issuecomment-766180999
- M1 版本由 Go 1.16beta1 直接编译,Reproducible(2021/1/28:`xray-M1` -> `xray`)

1.2.2

VLESS UUID v5 mapping standard

[VLESS UUID 映射标准:将自定义字符串映射为一个 UUIDv5](https://github.com/XTLS/Xray-core/issues/158)

简单来说,和 Trojan、SS 可以自定义密码一样,Xray-core 的 VLESS 和 VMess 也可以自定义 id 了,一些规则见上方链接。

- 若无特殊需求,建议首选全随机的 UUIDv4
- 若选择自定义 id,建议保持一定的复杂度

现在 VLESS、VMess 加载配置时就会检查 id 是否有效,Xray-core 自带的 UUID generator 也得到了增强:

- `xray uuid` 输出的全随机 UUID 现在遵循 RFC 4122 的 [UUIDv4](https://tools.ietf.org/html/rfc4122#section-4.4) 标准
- `xray uuid -i "example"` 将会输出 `example` 的 UUIDv5 映射

VLESS fallbacks SNI shunt

VLESS 的 fallbacks 数组子元素新增 `name` 配置项(与 `alpn` 同级),作为 substr 来匹配请求的 SNI,实现 SNI 分流。

- 比如填 `example.com` 可以匹配 `example.com` 和 `*.example.com`
- 若另一个子元素填的是 `www.example.com`,则有更高的优先级

其它规则不变,Xray-core 将为每一次回落分流匹配到最精确的子元素。感谢 eMeab 开坑。

Trojan 的 fallbacks 暂不支持此配置。

Optimizations & Fixes

小小白白话文

瓜瓜 ricuhkaen 的小小白白话文已经完结,广受好评,快去看看吧:https://xtls.github.io/documents/level-0/

DoH

以前 non-local DoH 会走 Mux,第一个 DNS 请求返回后连接就会被关闭,导致同一个连接的其它请求均失败。

badO1a5A90 解决了此问题,同时对 non-local DoH 应用了适当的路由策略,详见 https://github.com/XTLS/Xray-core/pull/147

Log

这个版本进一步增强了 access 日志信息 eMeab ,目前格式如下:

- 命中了路由规则:`[inbound tag -> outbound tag]`
- 未命中路由规则:`[inbound tag >> outbound tag]`

Trojan

Do not panic when UDP dispatcher failed to write response maskedeken https://github.com/XTLS/Xray-core/pull/153

Chores

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

Notices

- Xray-core 2k stars,再次感谢各位的支持
- Support M1 Chip,记得先 `Open Anyway`

1.2.1

Configuration Detector

Xray-core 现支持 FullCone 和 Symmetric 两种模式,而 VLESS、VMess、Mux 暂不支持 FullCone,需要 Symmetric 模式

所以为了防止 VLESS、VMess、Mux 被应用 FullCone,v1.2.0 开始有一个配置检测机制,说明如下:

1. v1.2.1 开始此机制被移至 [core/xray.go](https://github.com/XTLS/Xray-core/blob/main/core/xray.go) 的 `initInstanceWithConfig` 函数开头,以便在 v2rayNG 上生效 https://github.com/XTLS/Xray-core/issues/138#issuecomment-757437547
2. Xray-core 默认选择 FullCone 模式,除非出站配置有 VLESS/VMess 且无 SS/Trojan,此时是 Symmetric
3. 若出站配置的任一 SS/Trojan 开了 Mux,则一票否决,Xray-core 选择 Symmetric 模式

Optimizations & Fixes

TPROXY

修复 TPROXY 的 UDP/IPv6 伪造,详见 https://github.com/XTLS/Xray-core/issues/137#issuecomment-756064627 ,十分感谢 Ninedyz changyp6 发现、定位问题

**关于 TPROXY UDP 的重要说明:**

其它软件 TPROXY FullCone 的实现方式是为每一个返回的 UDP 包创建一个 connected UDP socket,write 一次即销毁
而 Xray-core 的实现方式是创建 unconnected UDP socket,且 writeTo 后不销毁,存进 map 供下次复用
这样做更优雅,理论上也有更好的性能,**要求 iptables 没有针对 UDP 的“避免已有连接的包二次通过 TPROXY”规则**

(实际上对于其它软件 TPROXY FullCone 的实现方式,这个 UDP 规则似乎也没有用,因为都会进 TPROXY)

UDP Worker

调整入站 UDP Worker 的 GC 策略为“每 60 秒清理一次 300 秒无活动的映射”,影响 Socks、SS、TPROXY,详见 https://github.com/XTLS/Xray-core/issues/129#issuecomment-757355137

之前没有注意到这个机制,调整后 UDP 的整体表现更加稳定了,彩虹六号再也不会掉线了,十分感谢 GleenJi 等协助测试

Log

根据这个提议 https://github.com/XTLS/Xray-core/discussions/56#discussioncomment-255112 增强 access 日志信息 eMeab https://github.com/XTLS/Xray-core/pull/121

现在你可以在 access 日志中看到路由信息了,格式为 `[inbound tag -> outbound tag]`,注意目前需经过路由才有完整信息

Socks

优化 Socks 代码、智能化 Socks5 的 UDP Associate 回应:

现在 Socks 入站开启 UDP 时无需再额外填本机 IP 了,且可以接受来自任何网口的请求(若配置中额外填了本机 IP,则以它为准)

Trojan

精简 Trojan UDP 的处理代码 maskedeken https://github.com/XTLS/Xray-core/pull/142

修复 Trojan 出站 TCP 行为:一些 TCP 连接是服务端先发数据,现在 Trojan 可以在此场景下正常工作了,详见 https://github.com/XTLS/Xray-core/issues/127#issuecomment-756720453

Chores

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

Notices

1. Socks5、Shadowsocks 都是原生 UDP,它们的 UDP 不走底层传输方式
2. VLESS、Trojan、VMess、Mux 都是 UDP over TCP,且走底层传输方式
3. HTTP 出入站不支持代理 UDP,Socks 版本 5 之前也不支持 UDP
4. 这里的 FullCone 指的是 UDP 的 NAT 行为,配置时尤其注意防火墙
4. 链式代理若要实现 FullCone,一般来说所有环节都要支持 FullCone
5. Docker 若要实现 FullCone,相关容器的网络模式需要是 Host

Page 11 of 12

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.