diff --git a/docs/config/features/env.md b/docs/config/features/env.md index f88239555..641da3a99 100644 --- a/docs/config/features/env.md +++ b/docs/config/features/env.md @@ -2,32 +2,6 @@ Xray 提供以下环境变量以供修改 Xray 的一些底层配置。 -## XTLS 信息显示 - - - -### VLESS - -- 名称:`xray.vless.xtls.show` 或 `XRAY_VLESS_XTLS_SHOW`。 -- 默认值:`""`。 - -使用 VLESS 协议时,设置此环境变量为 true 时, 会在终端或日志中输出 XTLS 的相关信息. - -::: tip -可打开此环境变量并根据是否有输出 XTLS 相关信息, 来确定 XTLS 是否成功被应用. -::: - -### TROJAN - -- 名称:`xray.trojan.xtls.show` 或 `XRAY_TROJAN_XTLS_SHOW`。 -- 默认值:`""`。 - -使用 trojan 协议时, 设置此环境变量为 true 时, 会在终端或日志中输出 XTLS 的相关信息. - -::: tip -可打开此环境变量并根据是否有输出 XTLS 相关信息, 来确定 XTLS 是否成功被应用. -::: - ## 资源文件路径 - 名称:`xray.location.asset` 或 `XRAY_LOCATION_ASSET`。 diff --git a/docs/config/inbounds/trojan.md b/docs/config/inbounds/trojan.md index cf05f8937..f6eaada5f 100644 --- a/docs/config/inbounds/trojan.md +++ b/docs/config/inbounds/trojan.md @@ -14,8 +14,7 @@ Trojan 被设计工作在正确配置的加密 TLS 隧道 { "password": "password", "email": "love@xray.com", - "level": 0, - "flow": "xtls-rprx-direct" + "level": 0 } ], "fallbacks": [ @@ -48,8 +47,7 @@ Xray 的 Trojan 有完整的 fallbacks 支持,配置方式完全一致。 { "password": "password", "email": "love@xray.com", - "level": 0, - "flow": "xtls-rprx-direct" + "level": 0 } ``` @@ -70,14 +68,3 @@ Xray 的 Trojan 有完整的 fallbacks 支持,配置方式完全一致。 用户等级,连接会使用这个用户等级对应的 [本地策略](../policy.md#levelpolicyobject)。 userLevel 的值, 对应 [policy](../policy.md#policyobject) 中 `level` 的值。 如不指定, 默认为 0。 - -> `flow`: string - -流控模式,用于选择 XTLS 的算法。 - -目前入站协议中有以下流控模式可选: - -- `xtls-rprx-origin`: 最初的流控模式,此时客户端仅可选择 `xtls-rprx-origin` 和 `xtls-rprx-origin-udp443` 这两种流控模式。该模式纪念价值大于实际使用价值。 -- `xtls-rprx-direct`: 所有平台皆可使用的典型流控方式,此时客户端可选择任何流控模式 - -此外,目前 XTLS 仅支持 TCP、mKCP、DomainSocket 这三种传输方式。 diff --git a/docs/config/inbounds/vless.md b/docs/config/inbounds/vless.md index c1423403a..694f73bdb 100644 --- a/docs/config/inbounds/vless.md +++ b/docs/config/inbounds/vless.md @@ -2,7 +2,6 @@ ::: danger 目前 VLESS 没有自带加密,请用于可靠信道,如 TLS。 -目前 VLESS 不支持分享。 ::: VLESS 是一个无状态的轻量传输协议,它分为入站和出站两部分,可以作为 Xray 客户端和服务器之间的桥梁。 @@ -92,8 +91,5 @@ level 的值, 对应 [policy](../policy.md#policyobject) 中 `level` 的值。 - 无 `flow`,空字符或者 `none`:使用普通 TLS 代理 - `xtls-rprx-vision`:使用新 XTLS 模式 包含内层握手随机填充 -- `xtls-rprx-vision,none`:使用新 XTLS 模式 同时兼容同端口使用普通 TLS 代理的客户端 -- `xtls-rprx-origin`: 最初的流控模式,此时客户端仅可选择 `xtls-rprx-origin` 和 `xtls-rprx-origin-udp443` 这两种流控模式。该模式纪念价值大于实际使用价值。 -- `xtls-rprx-direct`: 所有平台皆可使用的典型流控方式,此时客户端可选择任何流控模式 此外,目前 XTLS 仅支持 TCP、mKCP、DomainSocket 这三种传输方式。 diff --git a/docs/config/outbounds/trojan.md b/docs/config/outbounds/trojan.md index 0c9afbd7e..4dad01c22 100644 --- a/docs/config/outbounds/trojan.md +++ b/docs/config/outbounds/trojan.md @@ -16,7 +16,6 @@ Trojan 被设计工作在正确配置的加密 TLS 隧道 "port": 1234, "password": "password", "email": "love@xray.com", - "flow": "xtls-rprx-direct", "level": 0 } ] @@ -35,7 +34,6 @@ Trojan 被设计工作在正确配置的加密 TLS 隧道 "port": 1234, "password": "password", "email": "love@xray.com", - "flow": "xtls-rprx-direct", "level": 0 } ``` @@ -56,43 +54,6 @@ Trojan 被设计工作在正确配置的加密 TLS 隧道 邮件地址,可选,用于标识用户 -> `flow`: string - -流控模式,用于选择 XTLS 的算法。 - -目前出站协议中有以下流控模式可选: - -- `xtls-rprx-origin`: 最初的流控模式。该模式纪念价值大于实际使用价值 -- `xtls-rprx-origin-udp443`: 同 `xtls-rprx-origin`, 但放行了目标为 443 端口的 UDP 流量 -- `xtls-rprx-direct`: 所有平台皆可使用的典型流控模式 -- `xtls-rprx-direct-udp443`: 同 `xtls-rprx-direct`, 但是放行了目标为 443 端口的 UDP 流量 -- `xtls-rprx-splice`: Linux 平台下最建议使用的流控模式 -- `xtls-rprx-splice-udp443`: 同 `xtls-rprx-splice`, 但是放行了目标为 443 端口的 UDP 流量 - -此外,目前 XTLS 仅支持 TCP、mKCP、DomainSocket 这三种传输方式。 - - -::: tip 关于 xtls-rprx-\*-udp443 流控模式 - -启用了 Xray-core 的 XTLS 时,通往 UDP 443 端口的流量默认会被拦截(一般情况下为 QUIC),这样应用就不会使用 QUIC 而会使用 TLS,XTLS 才会真正生效。实际上,QUIC 本身也不适合被代理,因为 QUIC 自带了 TCP 的功能, 它作为 UDP 流量在通过 Trojan 协议传输时,底层协议为 TCP,就相当于两层 TCP 了。 - -若不需要拦截,请在客户端填写 `xtls-rprx-*-udp443`,服务端不变。 -::: - -::: tip 关于 Splice 模式 -Splice 是 Linux Kernel 提供的函数,系统内核直接转发 TCP,不再经过 Xray 的内存,大大减少了数据拷贝、CPU 上下文切换的次数。 -::: - -Splice 模式的的使用限制: - -- Linux 环境 -- 入站协议为 `Dokodemo door`、`Socks`、`HTTP` 等纯净的 TCP 连接, 或其它使用了 XTLS 的入站协议 -- 出站协议为 VLESS + XTLS 或 Trojan + XTLS - -此外,使用 Splice 时网速显示会滞后,这是特性,不是 bug。 - -需要注意的是,使用 mKCP 协议时不会使用 Splice(是的,虽然没有报错,但实际上根本没用到)。 - > `level`: number 用户等级,连接会使用这个用户等级对应的 [本地策略](../policy.md#levelpolicyobject)。 diff --git a/docs/config/outbounds/vless.md b/docs/config/outbounds/vless.md index 4d029c3b9..2acb87315 100644 --- a/docs/config/outbounds/vless.md +++ b/docs/config/outbounds/vless.md @@ -2,7 +2,6 @@ ::: danger 目前 VLESS 没有自带加密,请用于可靠信道,如 TLS。 -目前 VLESS 不支持分享。 ::: VLESS 是一个无状态的轻量传输协议,它分为入站和出站两部分,可以作为 Xray 客户端和服务器之间的桥梁。 @@ -69,7 +68,7 @@ VLESS 是一个无状态的轻量传输协议,它分为入站和出站两部 { "id": "5783a3e7-e373-51cd-8642-c83782b807c5", "encryption": "none", - "flow": "xtls-rprx-direct", + "flow": "xtls-rprx-vision", "level": 0 } ``` @@ -103,12 +102,6 @@ VLESS 的用户 ID,可以是任意小于 30 字节的字符串, 也可以是 - 无 `flow`,空字符或者 `none`:使用普通 TLS 代理 - `xtls-rprx-vision`:使用新 XTLS 模式 包含内层握手随机填充 支持 uTLS 模拟客户端指纹 - `xtls-rprx-vision-udp443`:同 `xtls-rprx-vision`, 但是放行了目标为 443 端口的 UDP 流量 -- `xtls-rprx-origin`: 最初的流控模式。该模式纪念价值大于实际使用价值 -- `xtls-rprx-origin-udp443`: 同 `xtls-rprx-origin`, 但放行了目标为 443 端口的 UDP 流量 -- `xtls-rprx-direct`: 所有平台皆可使用的典型流控模式 -- `xtls-rprx-direct-udp443`: 同 `xtls-rprx-direct`, 但是放行了目标为 443 端口的 UDP 流量 -- `xtls-rprx-splice`: Linux 平台下最建议使用的流控模式 -- `xtls-rprx-splice-udp443`: 同 `xtls-rprx-splice`, 但是放行了目标为 443 端口的 UDP 流量 此外,目前 XTLS 仅支持 TCP、mKCP、DomainSocket 这三种传输方式。 @@ -122,19 +115,16 @@ VLESS 的用户 ID,可以是任意小于 30 字节的字符串, 也可以是 ::: tip 关于 Splice 模式 Splice 是 Linux Kernel 提供的函数,系统内核直接转发 TCP,不再经过 Xray 的内存,大大减少了数据拷贝、CPU 上下文切换的次数。 -::: Splice 模式的的使用限制: - Linux 环境 - 入站协议为 `Dokodemo door`、`Socks`、`HTTP` 等纯净的 TCP 连接, 或其它使用了 XTLS 的入站协议 -- 出站协议为 VLESS + XTLS 或 Trojan + XTLS +- 出站协议为 VLESS + XTLS +- 需要注意的是,使用 mKCP 协议时不会使用 Splice(是的,虽然没有报错,但实际上根本没用到) 此外,使用 Splice 时网速显示会滞后,这是特性,不是 bug。 -需要注意的是,使用 mKCP 协议时不会使用 Splice(是的,虽然没有报错,但实际上根本没用到)。 - -::: tip 使用 Vision 模式 如果满足上述条件 会自动启用 Splice ::: diff --git a/docs/config/transport.md b/docs/config/transport.md index d625ff5ed..9f26e398b 100644 --- a/docs/config/transport.md +++ b/docs/config/transport.md @@ -96,19 +96,19 @@ - `"none"` 表示不加密(默认值) - `"tls"` 表示使用 [TLS](https://en.wikipedia.org/wiki/base/transport_Layer_Security)。 -- `"xtls"` 表示使用 [XTLS](./features/xtls.md)。 +- `"reality"` 表示使用 REALITY。 > `tlsSettings`: [TLSObject](#tlsobject) TLS 配置。TLS 由 Golang 提供,通常情况下 TLS 协商的结果为使用 TLS 1.3,不支持 DTLS。 -> `xtlsSettings`: [XTLSObject](#tlsobject) +> `realitySettings`: [RealityObject](#realityobject) -XTLS 配置。XTLS 是 Xray 的原创黑科技, 也是使 Xray 性能一骑绝尘的核心动力。 XTLS 与 TLS 有相同的安全性, 配置方式也和 TLS 一致. +Reality 配置。Reality 是 Xray 的原创黑科技。 Reality 比 TLS 的安全性更高, 配置方式也和 TLS 一致. ::: tip -TLS / XTLS 是目前最安全的传输加密方案, 且外部看来流量类型和正常上网具有一致性。 启用 XTLS 并且配置合适的 XTLS 流控模式, 可以在保持和 TLS 相同的安全性的前提下, -性能达到数倍甚至十几倍的提升。 当 `security` 的值从 `tls` 改为 `xtls` 时, 只需将 `tlsSettings` 修改成为 `xtlsSettings` +Reality 是目前最安全的传输加密方案, 且外部看来流量类型和正常上网具有一致性。 启用 Reality 并且配置合适的 XTLS Vision 流控模式, 可以 +达到数倍甚至十几倍的性能提升。 ::: > `tcpSettings`: [TcpObject](./transports/tcp.md) @@ -265,6 +265,38 @@ CipherSuites 用于配置受支持的密码套件列表, 每个套件名称之 请参考 [这里](https://github.com/XTLS/Xray-core/discussions/56#discussioncomment-215600). ::: +### RealityObject + +Reality 在 TLS 一部分设定的基础上 有以下独有设置 + +```json +{ + "show": false, // 选填,若为 true,输出调试信息 + "dest": "example.com:443", // 必填,格式同 VLESS fallbacks 的 dest + "xver": 0, // 选填,格式同 VLESS fallbacks 的 xver + "serverNames": [ // 必填,客户端可用的 serverName 列表,暂不支持 * 通配符 + "example.com", + "www.example.com" + ], + "privateKey": "", // 必填,执行 ./xray x25519 生成 + "minClientVer": "", // 选填,客户端 Xray 最低版本,格式为 x.y.z + "maxClientVer": "", // 选填,客户端 Xray 最高版本,格式为 x.y.z + "maxTimeDiff": 0, // 选填,允许的最大时间差,单位为毫秒 + "shortIds": [ // 必填,客户端可用的 shortId 列表,可用于区分不同的客户端 + "", // 若有此项,客户端 shortId 可为空 + "0123456789abcdef" // 0 到 f,长度为 2 的倍数,长度上限为 16 + ] + // 客户端选项 + "publicKey": "", // 服务端私钥对应的公钥 + "shortId": "", // 服务端 shortIds 之一 + "spiderX": "" // 爬虫初始路径与参数,建议每个客户端不同 +} +``` + +::: tip +更多信息请参考 [REALITY 项目](https://github.com/XTLS/REALITY). +::: + #### CertificateObject ```json diff --git a/docs/document/level-0/ch08-xray-clients.md b/docs/document/level-0/ch08-xray-clients.md index 372dea5cc..41c2b5968 100644 --- a/docs/document/level-0/ch08-xray-clients.md +++ b/docs/document/level-0/ch08-xray-clients.md @@ -41,7 +41,7 @@ - 服务器【地址】: `a-name.yourdomain.com` - 服务器【端口】: `443` - 连接的【协议】: `vless` -- 连接的【流控】: `xtls-rprx-direct` (direct 模式适合全平台,若是 Linux/安卓用户,可改成 `xtls-rprx-splice` 性能全开) +- 连接的【流控】: `xtls-rprx-vision` (vision 模式适合全平台) - 连接的【验证】: `uuiduuid-uuid-uuid-uuiduuiduuid` - 连接的【安全】: `"allowInsecure": false` diff --git a/docs/document/level-2/tproxy.md b/docs/document/level-2/tproxy.md index f1c30fb4e..f02d6a7b1 100644 --- a/docs/document/level-2/tproxy.md +++ b/docs/document/level-2/tproxy.md @@ -4,7 +4,7 @@ title: TProxy 透明代理 # 透明代理(TProxy)配置教程 -本配置基于[TProxy 透明代理的新 V2Ray 白话文教程](https://guide.v2fly.org/app/tproxy.html),加入了 Xray 的新特性,使用 VLESS + XTLS Splice 方案,并将旧教程中默认出站代理的分流方式改为默认出站直连,使用者请按照实际情况进行修改。 +本配置基于[TProxy 透明代理的新 V2Ray 白话文教程](https://guide.v2fly.org/app/tproxy.html),加入了 Xray 的新特性,使用 VLESS + XTLS Vision 方案,并将旧教程中默认出站代理的分流方式改为默认出站直连,使用者请按照实际情况进行修改。 本文中所有配置已在 Raspberry Pi 2B、Ubuntu 20.04 环境下测试成功,如在其它环境中使用请自行调整配置。 @@ -76,7 +76,7 @@ sudo curl -oL /usr/local/share/xray/geosite.dat https://github.com/Loyalsoldier/ "users": [ { "id": "UUID", - "flow": "xtls-rprx-splice", + "flow": "xtls-rprx-vision", "encryption": "none" } ] diff --git a/docs/en/config/features/env.md b/docs/en/config/features/env.md index f88239555..641da3a99 100644 --- a/docs/en/config/features/env.md +++ b/docs/en/config/features/env.md @@ -2,32 +2,6 @@ Xray 提供以下环境变量以供修改 Xray 的一些底层配置。 -## XTLS 信息显示 - - - -### VLESS - -- 名称:`xray.vless.xtls.show` 或 `XRAY_VLESS_XTLS_SHOW`。 -- 默认值:`""`。 - -使用 VLESS 协议时,设置此环境变量为 true 时, 会在终端或日志中输出 XTLS 的相关信息. - -::: tip -可打开此环境变量并根据是否有输出 XTLS 相关信息, 来确定 XTLS 是否成功被应用. -::: - -### TROJAN - -- 名称:`xray.trojan.xtls.show` 或 `XRAY_TROJAN_XTLS_SHOW`。 -- 默认值:`""`。 - -使用 trojan 协议时, 设置此环境变量为 true 时, 会在终端或日志中输出 XTLS 的相关信息. - -::: tip -可打开此环境变量并根据是否有输出 XTLS 相关信息, 来确定 XTLS 是否成功被应用. -::: - ## 资源文件路径 - 名称:`xray.location.asset` 或 `XRAY_LOCATION_ASSET`。 diff --git a/docs/en/config/inbounds/trojan.md b/docs/en/config/inbounds/trojan.md index cf05f8937..f6eaada5f 100644 --- a/docs/en/config/inbounds/trojan.md +++ b/docs/en/config/inbounds/trojan.md @@ -14,8 +14,7 @@ Trojan 被设计工作在正确配置的加密 TLS 隧道 { "password": "password", "email": "love@xray.com", - "level": 0, - "flow": "xtls-rprx-direct" + "level": 0 } ], "fallbacks": [ @@ -48,8 +47,7 @@ Xray 的 Trojan 有完整的 fallbacks 支持,配置方式完全一致。 { "password": "password", "email": "love@xray.com", - "level": 0, - "flow": "xtls-rprx-direct" + "level": 0 } ``` @@ -70,14 +68,3 @@ Xray 的 Trojan 有完整的 fallbacks 支持,配置方式完全一致。 用户等级,连接会使用这个用户等级对应的 [本地策略](../policy.md#levelpolicyobject)。 userLevel 的值, 对应 [policy](../policy.md#policyobject) 中 `level` 的值。 如不指定, 默认为 0。 - -> `flow`: string - -流控模式,用于选择 XTLS 的算法。 - -目前入站协议中有以下流控模式可选: - -- `xtls-rprx-origin`: 最初的流控模式,此时客户端仅可选择 `xtls-rprx-origin` 和 `xtls-rprx-origin-udp443` 这两种流控模式。该模式纪念价值大于实际使用价值。 -- `xtls-rprx-direct`: 所有平台皆可使用的典型流控方式,此时客户端可选择任何流控模式 - -此外,目前 XTLS 仅支持 TCP、mKCP、DomainSocket 这三种传输方式。 diff --git a/docs/en/config/inbounds/vless.md b/docs/en/config/inbounds/vless.md index c1423403a..694f73bdb 100644 --- a/docs/en/config/inbounds/vless.md +++ b/docs/en/config/inbounds/vless.md @@ -2,7 +2,6 @@ ::: danger 目前 VLESS 没有自带加密,请用于可靠信道,如 TLS。 -目前 VLESS 不支持分享。 ::: VLESS 是一个无状态的轻量传输协议,它分为入站和出站两部分,可以作为 Xray 客户端和服务器之间的桥梁。 @@ -92,8 +91,5 @@ level 的值, 对应 [policy](../policy.md#policyobject) 中 `level` 的值。 - 无 `flow`,空字符或者 `none`:使用普通 TLS 代理 - `xtls-rprx-vision`:使用新 XTLS 模式 包含内层握手随机填充 -- `xtls-rprx-vision,none`:使用新 XTLS 模式 同时兼容同端口使用普通 TLS 代理的客户端 -- `xtls-rprx-origin`: 最初的流控模式,此时客户端仅可选择 `xtls-rprx-origin` 和 `xtls-rprx-origin-udp443` 这两种流控模式。该模式纪念价值大于实际使用价值。 -- `xtls-rprx-direct`: 所有平台皆可使用的典型流控方式,此时客户端可选择任何流控模式 此外,目前 XTLS 仅支持 TCP、mKCP、DomainSocket 这三种传输方式。 diff --git a/docs/en/config/outbounds/trojan.md b/docs/en/config/outbounds/trojan.md index 0c9afbd7e..4dad01c22 100644 --- a/docs/en/config/outbounds/trojan.md +++ b/docs/en/config/outbounds/trojan.md @@ -16,7 +16,6 @@ Trojan 被设计工作在正确配置的加密 TLS 隧道 "port": 1234, "password": "password", "email": "love@xray.com", - "flow": "xtls-rprx-direct", "level": 0 } ] @@ -35,7 +34,6 @@ Trojan 被设计工作在正确配置的加密 TLS 隧道 "port": 1234, "password": "password", "email": "love@xray.com", - "flow": "xtls-rprx-direct", "level": 0 } ``` @@ -56,43 +54,6 @@ Trojan 被设计工作在正确配置的加密 TLS 隧道 邮件地址,可选,用于标识用户 -> `flow`: string - -流控模式,用于选择 XTLS 的算法。 - -目前出站协议中有以下流控模式可选: - -- `xtls-rprx-origin`: 最初的流控模式。该模式纪念价值大于实际使用价值 -- `xtls-rprx-origin-udp443`: 同 `xtls-rprx-origin`, 但放行了目标为 443 端口的 UDP 流量 -- `xtls-rprx-direct`: 所有平台皆可使用的典型流控模式 -- `xtls-rprx-direct-udp443`: 同 `xtls-rprx-direct`, 但是放行了目标为 443 端口的 UDP 流量 -- `xtls-rprx-splice`: Linux 平台下最建议使用的流控模式 -- `xtls-rprx-splice-udp443`: 同 `xtls-rprx-splice`, 但是放行了目标为 443 端口的 UDP 流量 - -此外,目前 XTLS 仅支持 TCP、mKCP、DomainSocket 这三种传输方式。 - - -::: tip 关于 xtls-rprx-\*-udp443 流控模式 - -启用了 Xray-core 的 XTLS 时,通往 UDP 443 端口的流量默认会被拦截(一般情况下为 QUIC),这样应用就不会使用 QUIC 而会使用 TLS,XTLS 才会真正生效。实际上,QUIC 本身也不适合被代理,因为 QUIC 自带了 TCP 的功能, 它作为 UDP 流量在通过 Trojan 协议传输时,底层协议为 TCP,就相当于两层 TCP 了。 - -若不需要拦截,请在客户端填写 `xtls-rprx-*-udp443`,服务端不变。 -::: - -::: tip 关于 Splice 模式 -Splice 是 Linux Kernel 提供的函数,系统内核直接转发 TCP,不再经过 Xray 的内存,大大减少了数据拷贝、CPU 上下文切换的次数。 -::: - -Splice 模式的的使用限制: - -- Linux 环境 -- 入站协议为 `Dokodemo door`、`Socks`、`HTTP` 等纯净的 TCP 连接, 或其它使用了 XTLS 的入站协议 -- 出站协议为 VLESS + XTLS 或 Trojan + XTLS - -此外,使用 Splice 时网速显示会滞后,这是特性,不是 bug。 - -需要注意的是,使用 mKCP 协议时不会使用 Splice(是的,虽然没有报错,但实际上根本没用到)。 - > `level`: number 用户等级,连接会使用这个用户等级对应的 [本地策略](../policy.md#levelpolicyobject)。 diff --git a/docs/en/config/outbounds/vless.md b/docs/en/config/outbounds/vless.md index 4d029c3b9..2acb87315 100644 --- a/docs/en/config/outbounds/vless.md +++ b/docs/en/config/outbounds/vless.md @@ -2,7 +2,6 @@ ::: danger 目前 VLESS 没有自带加密,请用于可靠信道,如 TLS。 -目前 VLESS 不支持分享。 ::: VLESS 是一个无状态的轻量传输协议,它分为入站和出站两部分,可以作为 Xray 客户端和服务器之间的桥梁。 @@ -69,7 +68,7 @@ VLESS 是一个无状态的轻量传输协议,它分为入站和出站两部 { "id": "5783a3e7-e373-51cd-8642-c83782b807c5", "encryption": "none", - "flow": "xtls-rprx-direct", + "flow": "xtls-rprx-vision", "level": 0 } ``` @@ -103,12 +102,6 @@ VLESS 的用户 ID,可以是任意小于 30 字节的字符串, 也可以是 - 无 `flow`,空字符或者 `none`:使用普通 TLS 代理 - `xtls-rprx-vision`:使用新 XTLS 模式 包含内层握手随机填充 支持 uTLS 模拟客户端指纹 - `xtls-rprx-vision-udp443`:同 `xtls-rprx-vision`, 但是放行了目标为 443 端口的 UDP 流量 -- `xtls-rprx-origin`: 最初的流控模式。该模式纪念价值大于实际使用价值 -- `xtls-rprx-origin-udp443`: 同 `xtls-rprx-origin`, 但放行了目标为 443 端口的 UDP 流量 -- `xtls-rprx-direct`: 所有平台皆可使用的典型流控模式 -- `xtls-rprx-direct-udp443`: 同 `xtls-rprx-direct`, 但是放行了目标为 443 端口的 UDP 流量 -- `xtls-rprx-splice`: Linux 平台下最建议使用的流控模式 -- `xtls-rprx-splice-udp443`: 同 `xtls-rprx-splice`, 但是放行了目标为 443 端口的 UDP 流量 此外,目前 XTLS 仅支持 TCP、mKCP、DomainSocket 这三种传输方式。 @@ -122,19 +115,16 @@ VLESS 的用户 ID,可以是任意小于 30 字节的字符串, 也可以是 ::: tip 关于 Splice 模式 Splice 是 Linux Kernel 提供的函数,系统内核直接转发 TCP,不再经过 Xray 的内存,大大减少了数据拷贝、CPU 上下文切换的次数。 -::: Splice 模式的的使用限制: - Linux 环境 - 入站协议为 `Dokodemo door`、`Socks`、`HTTP` 等纯净的 TCP 连接, 或其它使用了 XTLS 的入站协议 -- 出站协议为 VLESS + XTLS 或 Trojan + XTLS +- 出站协议为 VLESS + XTLS +- 需要注意的是,使用 mKCP 协议时不会使用 Splice(是的,虽然没有报错,但实际上根本没用到) 此外,使用 Splice 时网速显示会滞后,这是特性,不是 bug。 -需要注意的是,使用 mKCP 协议时不会使用 Splice(是的,虽然没有报错,但实际上根本没用到)。 - -::: tip 使用 Vision 模式 如果满足上述条件 会自动启用 Splice ::: diff --git a/docs/en/config/transport.md b/docs/en/config/transport.md index d625ff5ed..9f26e398b 100644 --- a/docs/en/config/transport.md +++ b/docs/en/config/transport.md @@ -96,19 +96,19 @@ - `"none"` 表示不加密(默认值) - `"tls"` 表示使用 [TLS](https://en.wikipedia.org/wiki/base/transport_Layer_Security)。 -- `"xtls"` 表示使用 [XTLS](./features/xtls.md)。 +- `"reality"` 表示使用 REALITY。 > `tlsSettings`: [TLSObject](#tlsobject) TLS 配置。TLS 由 Golang 提供,通常情况下 TLS 协商的结果为使用 TLS 1.3,不支持 DTLS。 -> `xtlsSettings`: [XTLSObject](#tlsobject) +> `realitySettings`: [RealityObject](#realityobject) -XTLS 配置。XTLS 是 Xray 的原创黑科技, 也是使 Xray 性能一骑绝尘的核心动力。 XTLS 与 TLS 有相同的安全性, 配置方式也和 TLS 一致. +Reality 配置。Reality 是 Xray 的原创黑科技。 Reality 比 TLS 的安全性更高, 配置方式也和 TLS 一致. ::: tip -TLS / XTLS 是目前最安全的传输加密方案, 且外部看来流量类型和正常上网具有一致性。 启用 XTLS 并且配置合适的 XTLS 流控模式, 可以在保持和 TLS 相同的安全性的前提下, -性能达到数倍甚至十几倍的提升。 当 `security` 的值从 `tls` 改为 `xtls` 时, 只需将 `tlsSettings` 修改成为 `xtlsSettings` +Reality 是目前最安全的传输加密方案, 且外部看来流量类型和正常上网具有一致性。 启用 Reality 并且配置合适的 XTLS Vision 流控模式, 可以 +达到数倍甚至十几倍的性能提升。 ::: > `tcpSettings`: [TcpObject](./transports/tcp.md) @@ -265,6 +265,38 @@ CipherSuites 用于配置受支持的密码套件列表, 每个套件名称之 请参考 [这里](https://github.com/XTLS/Xray-core/discussions/56#discussioncomment-215600). ::: +### RealityObject + +Reality 在 TLS 一部分设定的基础上 有以下独有设置 + +```json +{ + "show": false, // 选填,若为 true,输出调试信息 + "dest": "example.com:443", // 必填,格式同 VLESS fallbacks 的 dest + "xver": 0, // 选填,格式同 VLESS fallbacks 的 xver + "serverNames": [ // 必填,客户端可用的 serverName 列表,暂不支持 * 通配符 + "example.com", + "www.example.com" + ], + "privateKey": "", // 必填,执行 ./xray x25519 生成 + "minClientVer": "", // 选填,客户端 Xray 最低版本,格式为 x.y.z + "maxClientVer": "", // 选填,客户端 Xray 最高版本,格式为 x.y.z + "maxTimeDiff": 0, // 选填,允许的最大时间差,单位为毫秒 + "shortIds": [ // 必填,客户端可用的 shortId 列表,可用于区分不同的客户端 + "", // 若有此项,客户端 shortId 可为空 + "0123456789abcdef" // 0 到 f,长度为 2 的倍数,长度上限为 16 + ] + // 客户端选项 + "publicKey": "", // 服务端私钥对应的公钥 + "shortId": "", // 服务端 shortIds 之一 + "spiderX": "" // 爬虫初始路径与参数,建议每个客户端不同 +} +``` + +::: tip +更多信息请参考 [REALITY 项目](https://github.com/XTLS/REALITY). +::: + #### CertificateObject ```json diff --git a/docs/en/document/level-0/ch08-xray-clients.md b/docs/en/document/level-0/ch08-xray-clients.md index 372dea5cc..41c2b5968 100644 --- a/docs/en/document/level-0/ch08-xray-clients.md +++ b/docs/en/document/level-0/ch08-xray-clients.md @@ -41,7 +41,7 @@ - 服务器【地址】: `a-name.yourdomain.com` - 服务器【端口】: `443` - 连接的【协议】: `vless` -- 连接的【流控】: `xtls-rprx-direct` (direct 模式适合全平台,若是 Linux/安卓用户,可改成 `xtls-rprx-splice` 性能全开) +- 连接的【流控】: `xtls-rprx-vision` (vision 模式适合全平台) - 连接的【验证】: `uuiduuid-uuid-uuid-uuiduuiduuid` - 连接的【安全】: `"allowInsecure": false` diff --git a/docs/en/document/level-2/tproxy.md b/docs/en/document/level-2/tproxy.md index f1c30fb4e..f02d6a7b1 100644 --- a/docs/en/document/level-2/tproxy.md +++ b/docs/en/document/level-2/tproxy.md @@ -4,7 +4,7 @@ title: TProxy 透明代理 # 透明代理(TProxy)配置教程 -本配置基于[TProxy 透明代理的新 V2Ray 白话文教程](https://guide.v2fly.org/app/tproxy.html),加入了 Xray 的新特性,使用 VLESS + XTLS Splice 方案,并将旧教程中默认出站代理的分流方式改为默认出站直连,使用者请按照实际情况进行修改。 +本配置基于[TProxy 透明代理的新 V2Ray 白话文教程](https://guide.v2fly.org/app/tproxy.html),加入了 Xray 的新特性,使用 VLESS + XTLS Vision 方案,并将旧教程中默认出站代理的分流方式改为默认出站直连,使用者请按照实际情况进行修改。 本文中所有配置已在 Raspberry Pi 2B、Ubuntu 20.04 环境下测试成功,如在其它环境中使用请自行调整配置。 @@ -76,7 +76,7 @@ sudo curl -oL /usr/local/share/xray/geosite.dat https://github.com/Loyalsoldier/ "users": [ { "id": "UUID", - "flow": "xtls-rprx-splice", + "flow": "xtls-rprx-vision", "encryption": "none" } ]