Browse Source

Goodby QUIC & UDS

May the Kobe be with you
pull/570/head
风扇滑翔翼 3 months ago committed by GitHub
parent
commit
fae74f958e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 2
      docs/.vuepress/config/sidebar/zh.ts
  2. 43
      docs/config/transports/domainsocket.md
  3. 74
      docs/config/transports/quic.md

2
docs/.vuepress/config/sidebar/zh.ts

@ -63,11 +63,9 @@ export const sidebarZh: SidebarConfig = {
{
text: '底层传输',
children: [
'/config/transports/domainsocket.md',
'/config/transports/grpc.md',
'/config/transports/h2.md',
'/config/transports/mkcp.md',
'/config/transports/quic.md',
'/config/transports/tcp.md',
'/config/transports/websocket.md',
'/config/transports/httpupgrade.md',

43
docs/config/transports/domainsocket.md

@ -1,43 +0,0 @@
# Domain Socket
::: danger
推荐写到 [inbounds](../inbound.md) 的 `listen` 处,传输方式可选 TCP、WebSocket、HTTP/2.
未来这里的 DomainSocket 可能会被弃用。
:::
Domain Socket 使用标准的 Unix domain socket 来传输数据。
它的优势是使用了操作系统内建的传输通道,而不会占用网络缓存。
理论上相比起本地环回网络(local loopback)来说,Domain socket 速度略快一些。
目前仅可用于支持 Unix domain socket 的平台,如 Linux 和 macOS。在 Windows 10 Build 17036 前不可用。
如果指定了 domain socket 作为传输方式,在入站出站代理中配置的端口和 IP 地址将会失效,所有的传输由 domain socket 取代。
## DomainSocketObject
`DomainSocketObject` 对应传输配置的 `dsSettings` 项。
```json
{
"path": "/path/to/ds/file",
"abstract": false,
"padding": false
}
```
> `path`: string
一个合法的文件路径。
::: danger
在运行 Xray 之前,这个文件必须不存在。
:::
> `abstract`: true | false
是否为 abstract domain socket,默认值 `false`
> `padding`: true | false
abstract domain socket 是否带 padding,默认值 `false`

74
docs/config/transports/quic.md

@ -1,74 +0,0 @@
# QUIC
QUIC 全称 Quick UDP Internet Connection,是由 Google 提出的使用 UDP 进行多路并发传输的协议。其主要优势是:
1. 减少了握手的延迟(1-RTT 或 0-RTT)
2. 多路复用,并且没有 TCP 的阻塞问题
3. 连接迁移,(主要是在客户端)当由 Wifi 转移到 4G 时,连接不会被断开。
QUIC 目前处于实验期,使用了正在标准化过程中的 IETF 实现,不能保证与最终版本的兼容性。
- 默认设定:
- 12 字节的 Connection ID
- 30 秒没有数据通过时自动断开连接 (可能会影响一些长连接的使用)
## QuicObject
`QuicObject` 对应传输配置的 `quicSettings` 项。
::: danger
对接的两端的配置必须完全一致,否则连接失败。
QUIC 强制要求开启 TLS,在传输配置中没有开启 TLS 时,Xray 会自行签发一个证书进行 TLS 通讯。
:::
```json
{
"security": "none",
"key": "",
"header": {
"type": "none"
}
}
```
> `security`: "none" | "aes-128-gcm" | "chacha20-poly1305"
加密方式。
此加密是对 QUIC 数据包的加密,加密后数据包无法被探测。
默认值为不加密。
> `key`: string
加密时所用的密钥。
可以是任意字符串。当 `security` 不为 `"none"` 时有效。
> `header`: [HeaderObject](#headerobject)
数据包头部伪装设置
### HeaderObject
```json
{
"type": "none"
}
```
> `type`: string
伪装类型,可选的值有:
- `"none"`:默认值,不进行伪装,发送的数据是没有特征的数据包。
- `"srtp"`:伪装成 SRTP 数据包,会被识别为视频通话数据(如 FaceTime)。
- `"utp"`:伪装成 uTP 数据包,会被识别为 BT 下载数据。
- `"wechat-video"`:伪装成微信视频通话的数据包。
- `"dtls"`:伪装成 DTLS 1.2 数据包。
- `"wireguard"`:伪装成 WireGuard 数据包。(并不是真正的 WireGuard 协议)
::: tip
当加密和伪装都不启用时,数据包即为原始的 QUIC 数据包,可以与其它的 QUIC 工具对接。
为了避免被探测,建议加密或伪装至少开启一项。
:::
Loading…
Cancel
Save