Add: config (wip)

This commit is contained in:
JimhHan
2021-03-15 23:59:11 +08:00
parent 42a4e8a05b
commit 2211b91c85
49 changed files with 4365 additions and 12 deletions
+34
View File
@@ -0,0 +1,34 @@
---
alwaysopen: false
date: "2020-12-23T00:00:00.000Z"
description: Project X 的文档.
# head: <hr/>
hide:
- toc
# post: "&nbsp;\U0001F44B"
title: Outbounds 可用协议列表
weight: 6
---
{{% alert theme="warning" %}}**这个章节包含了目前所有可用于 Outbounds 的协议及具体配置细节.**{{% /alert %}}
## 协议列表
---
>[Blackhole](./blackhole)
Blackhole(黑洞)是一个出站数据协议,它会阻碍所有数据的出站,配合 [路由(Routing)](../routing) 一起使用,可以达到禁止访问某些网站的效果。
>[DNS](./dns)
DNS 是一个出站协议,主要用于拦截和转发 DNS 查询。此出站协议只能接收 DNS 流量(包含基于 UDP 和 TCP 协议的查询),其它类型的流量会导致错误。
>[Freedom](./freedom)
Freedom 是一个出站协议,可以用来向任意网络发送(正常的) TCP 或 UDP 数据。
>[HTTP](./http)
HTTP 协议
>[Socks](./socks)
标准 Socks 协议实现,兼容 [Socks 4](http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol)、Socks 4a 和 [Socks 5](http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol)。
>[VLESS](./vless)
VLESS 是一个无状态的轻量传输协议,可以作为 Xray 客户端和服务器之间的桥梁。
>[VMess](./vmess)
[VMess](../../develop/protocols/vmess) 是一个加密传输协议,可以作为 Xray 客户端和服务器之间的桥梁。
>[Trojan](./trojan)
[Trojan](https://trojan-gfw.github.io/trojan/protocol) 协议。
>[Shadowsocks](./shadowsocks)
[Shadowsocks](https://zh.wikipedia.org/wiki/Shadowsocks) 协议。
@@ -0,0 +1,43 @@
---
date: "2020-12-23T00:00:00.000Z"
description: Project X 的文档.
title: Blackhole
weight: 1
---
Blackhole(黑洞)是一个出站数据协议,它会阻碍所有数据的出站,配合 [路由配置](../../routing) 一起使用,可以达到禁止访问某些网站的效果。
## OutboundConfigurationObject
---
```json
{
"response": {
"type": "none"
}
}
```
> `response`: [ResponseObject](#responseobject)
配置黑洞的响应数据。
Blackhole 会在收到待转发数据之后,发送指定的响应数据,然后关闭连接,待转发的数据将被丢弃。</br>
如不指定此项,Blackhole 将直接关闭连接。
### ResponseObject
---
```json
{
"type": "none"
}
```
> `type`: "http" | "none"
当 `type` 为 `"none"`(默认值)时,Blackhole 将直接关闭连接。
当 `type` 为 `"http"` 时,Blackhole 会发回一个简单的 HTTP 403 数据包,然后关闭连接。
+43
View File
@@ -0,0 +1,43 @@
---
date: "2020-12-23T00:00:00.000Z"
description: Project X 的文档.
title: DNS
weight: 2
---
DNS 是一个出站协议,主要用于拦截和转发 DNS 查询。
此出站协议只能接收 DNS 流量(包含基于 UDP 和 TCP 协议的查询),其它类型的流量会导致错误。
在处理 DNS 查询时,此出站协议会将 IP 查询(即 A 和 AAAA)转发给内置的 [DNS 服务器](../../dns)。其它类型的查询流量将被转发至它们原本的目标地址。
## OutboundConfigurationObject
---
```json
{
"network": "tcp",
"address": "1.1.1.1",
"port": 53
}
```
> `network`: "tcp" | "udp"
修改 DNS 流量的传输层协议,可选的值有 `"tcp"` 和 `"udp"`。当不指定时,保持来源的传输方式不变。
> `address`: address
修改 DNS 服务器地址。当不指定时,保持来源中指定的地址不变。
> `port`: number
修改 DNS 服务器端口。当不指定时,保持来源中指定的端口不变。
## DNS配置实例
---
{{% badge warning %}}In progress{{% /badge %}}
+51
View File
@@ -0,0 +1,51 @@
---
date: "2020-12-23T00:00:00.000Z"
description: Project X 的文档.
title: Freedom
weight: 3
---
Freedom 是一个出站协议,可以用来向任意网络发送(正常的) TCP 或 UDP 数据。
## OutboundConfigurationObject
---
```json
{
"domainStrategy": "AsIs",
"redirect": "127.0.0.1:3366",
"userLevel": 0
}
```
> `domainStrategy`: "AsIs" | "UseIP" | "UseIPv4" | "UseIPv6"
在目标地址为域名时, 配置相应的值, Freedom 的行为模式如下:
- `"AsIs"`: Freedom 通过系统DNS服务器解析获取IP, 向此域名发出连接.
- `"UseIP"`、`"UseIPv4"` 和 `"UseIPv6"`: Xray 使用[内置 DNS 服务器](../../base/dns)解析获取IP, 向此域名发出连接.
默认值为 `"AsIs"`。
::: tip
**TIP 1**\
当使用 `"UseIP"` 模式,并且[出站连接配置](../outbounds#outboundobject) 中指定了 `sendThrough` 时,Freedom 会根据 `sendThrough` 的值自动判断所需的 IP 类型,IPv4 或 IPv6。
::: tip
**TIP 2**\
当使用 `"UseIPv4"` 或 `"UseIPv6"` 模式时,Freedom 会只使用对应的 IPv4 或 IPv6 地址。当 `sendThrough` 指定了不匹配的本地地址时,将导致连接失败。
> `redirect`: address_port
Freedom 会强制将所有数据发送到指定地址(而不是 inbound 指定的地址)。
其值为一个字符串,样例:`"127.0.0.1:80"`,`":1234"`。</br>
当地址不指定时,如 `":443"`,Freedom 不会修改原先的目标地址。</br>
当端口为 `0` 时,如 `"xray.com: 0"`,Freedom 不会修改原先的端口。
> `userLevel`: number
用户等级,连接会使用这个用户等级对应的[本地策略](../../base/policy#levelpolicyobject)。
userLevel 的值, 对应 [policy](../../base/policy#policyobject) 中 level 的值. 如不指定, 默认为 0.
+99
View File
@@ -0,0 +1,99 @@
---
date: "2020-12-23T00:00:00.000Z"
description: Project X 的文档.
title: HTTP
weight: 4
---
HTTP 协议。
::: danger
**http 协议没有对传输加密,不适宜经公网中传输,更容易成为被人用作攻击的肉鸡。**
`http inbound` 更有意义的用法是在局域网或本机环境下监听,为其他程序提供本地服务。
::: tip
`http proxy` 只能代理 tcp 协议,udp 系的协议均不能通过。
## OutboundConfigurationObject
---
```json
{
"servers": [
{
"address": "192.168.108.1",
"port": 3128,
"users": [
{
"user": "my-username",
"pass": "my-password"
}
]
}
]
}
```
::: tip
目前 HTTP 协议 outbound 中 `streamSettings` 设置 `security` 和 `tlsSettings` 是生效的。
> `servers`: \[ [ServerObject](#serverobject) \]
HTTP 服务器列表,其中每一项是一个服务器配置,若配置多个,循环使用 (RoundRobin)。
### ServerObject
---
```json
{
"address": "192.168.108.1",
"port": 3128,
"users": [
{
"user": "my-username",
"pass": "my-password"
}
]
}
```
> `address`: string
HTTP 代理服务器地址,必填。
> `port`: int
HTTP 代理服务器端口,必填。
> `user`: \[[AccountObject](#accountobject)\]
一个数组,数组中每个元素为一个用户帐号。默认值为空。
#### AccountObject
---
```json
{
"user": "my-username",
"pass": "my-password"
}
```
> `user`: string
用户名,字符串类型。必填。
> `pass`: string
密码,字符串类型。必填。
@@ -0,0 +1,102 @@
---
date: "2020-12-23T00:00:00.000Z"
description: Project X 的文档.
title: Shadowsocks
weight: 9
---
[Shadowsocks](https://zh.wikipedia.org/wiki/Shadowsocks) 协议,兼容大部分其它版本的实现。
目前兼容性如下:
- 支持 TCP 和 UDP 数据包转发,其中 UDP 可选择性关闭;
- 推荐的加密方式:
- AES-256-GCM
- AES-128-GCM
- ChaCha20-Poly1305 或称 ChaCha20-IETF-Poly1305
- none 或 plain
不推荐的加密方式:
- AES-256-CFB
- AES-128-CFB
- ChaCha20
- ChaCha20-IETF
::: danger
"none" 不加密方式下,服务器端不会验证 "password" 中的密码。为确保安全性, 一般需要加上 TLS 并在传输层使用安全配置,例如 WebSocket 配置较长的 path
## OutboundConfigurationObject
---
```json
{
"servers": [
{
"email": "love@xray.com",
"address": "127.0.0.1",
"port": 1234,
"method": "加密方式",
"password": "密码",
"level": 0
}
]
}
```
> `servers`: \[[ServerObject](#serverobject)\]
一个数组,代表一组 Shadowsocks 服务端设置, 其中每一项是一个 [ServerObject](#serverobject)。
### ServerObject
---
```json
{
"email": "love@xray.com",
"address": "127.0.0.1",
"port": 1234,
"method": "加密方式",
"password": "密码",
"level": 0
}
```
> `email`: string
邮件地址,可选,用于标识用户
> `address`: address
Shadowsocks 服务端地址,支持 IPv4、IPv6 和域名。必填。
> `port`: number
Shadowsocks 服务端端口。必填。
> `method`: string
必填。
* 推荐的加密方式:
* AES-256-GCM
* AES-128-GCM
* ChaCha20-Poly1305 或称 ChaCha20-IETF-Poly1305
* none 或 plain
> `password`: string
必填。任意字符串。
Shadowsocks 协议不限制密码长度,但短密码会更可能被破解,建议使用 16 字符或更长的密码。
> `level`: number
用户等级,连接会使用这个用户等级对应的[本地策略](../../base/policy#levelpolicyobject)。
`level` 的值, 对应 [policy](../../base/policy#policyobject) 中 level 的值. 如不指定, 默认为 0.
+103
View File
@@ -0,0 +1,103 @@
---
date: "2020-12-23T00:00:00.000Z"
description: Project X 的文档.
title: Socks
weight: 5
---
标准 Socks 协议实现,兼容 [Socks 4](http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol)、Socks 4a 和 [Socks 5](http://ftp.icm.edu.pl/packages/socks/socks4/SOCKS4.protocol)。
::: danger
**socks 协议没有对传输加密,不适宜经公网中传输**
`socks inbound` 更有意义的用法是在局域网或本机环境下监听,为其他程序提供本地服务。
## OutboundConfigurationObject
---
```json
{
"servers": [
{
"address": "127.0.0.1",
"port": 1234,
"users": [
{
"user": "test user",
"pass": "test pass",
"level": 0
}
]
}
]
}
```
> `servers`: \[ [ServerObject](#serverobject) \]
Socks 服务器列表,其中每一项是一个服务器配置。
### ServerObject
```json
{
"address": "127.0.0.1",
"port": 1234,
"users": [
{
"user": "test user",
"pass": "test pass",
"level": 0
}
]
}
```
> `address`: address
服务器地址, 必填
::: tip
仅支持连接到 Socks 5 服务器。
> `port`: number
服务器端口, 必填
> `users`: \[ [UserObject](#userobject) \]
一个数组表示的用户列表,数组中每个元素为一个用户配置。
当列表不为空时,Socks 客户端会使用用户信息进行认证;如未指定,则不进行认证。
默认值为空。
#### UserObject
---
```json
{
"user": "test user",
"pass": "test pass",
"level": 0
}
```
> `user`: string
用户名,字符串类型。必填。
> `pass`: string
密码,字符串类型。必填。
> `level`: number
用户等级,连接会使用这个用户等级对应的[本地策略](../../base/policy#levelpolicyobject)。
userLevel 的值, 对应 [policy](../../base/policy#policyobject) 中 level 的值. 如不指定, 默认为 0
+117
View File
@@ -0,0 +1,117 @@
---
date: "2020-12-23T00:00:00.000Z"
description: Project X 的文档.
title: Trojan
weight: 8
---
[Trojan](https://trojan-gfw.github.io/trojan/protocol) 协议
::: danger
Trojan 被设计工作在正确配置的加密 TLS 隧道
## OutboundConfigurationObject
---
```json
{
"servers": [
{
"address": "127.0.0.1",
"port": 1234,
"password": "password",
"email": "love@xray.com",
"flow": "xtls-rprx-direct",
"level": 0
}
]
}
```
> `servers`: \[ [ServerObject](#serverobject) \]
一个数组,其中每一项是一个 [ServerObject](#serverobject)。
### ServerObject
---
```json
{
"address": "127.0.0.1",
"port": 1234,
"password": "password",
"email": "love@xray.com",
"flow": "xtls-rprx-direct",
"level": 0
}
```
> `address`: address
服务端地址,支持 IPv4、IPv6 和域名。必填。
> `port`: number
服务端端口,通常与服务端监听的端口相同。
> `password`: string
密码. 必填,任意字符串。
> `email`: string
邮件地址,可选,用于标识用户
> `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 流量
::: warning
**注意**
当 `flow` 被指定时,还需要将该出站协议的 `streamSettings.security` 一项指定为 `xtls`,`tlsSettings` 改为 `xtlsSettings`。详情请参考 [streamSettings](../../base/transport#streamsettingsobject)。
此外,目前 XTLS 仅支持 TCP、mKCP、DomainSocket 这三种传输方式。
{{% notice %}}
**关于 `xtls-rprx-*-udp443` 流控模式**
启用了 Xray-core 的 XTLS 时,通往 UDP 443 端口的流量默认会被拦截(一般情况下为 QUIC),这样应用就不会使用 QUIC 而会使用 TLS,XTLS 才会真正生效。实际上,QUIC 本身也不适合被代理,因为 QUIC 自带了 TCP 的功能, 它作为 UDP 流量在通过 Trojan 协议传输时,底层协议为 TCP,就相当于两层 TCP 了。
若不需要拦截,请在客户端填写 `xtls-rprx-*-udp443`,服务端不变。
::: danger
Splice 是 Linux Kernel 提供的函数,系统内核直接转发 TCP,不再经过 Xray 的内存,大大减少了数据拷贝、CPU 上下文切换的次数。
Splice 模式的的使用限制:
- Linux 环境
- 入站协议为 `Dokodemo door`、`Socks`、`HTTP` 等纯净的 TCP 连接, 或其它使用了 XTLS 的入站协议
- 出站协议为 VLESS + XTLS 或 Trojan + XTLS
此外,使用 Splice 时网速显示会滞后,这是特性,不是 bug。
需要注意的是,使用 mKCP 协议时不会使用 Splice(是的,虽然没有报错,但实际上根本没用到)。
> `level`: number
用户等级,连接会使用这个用户等级对应的[本地策略](../../base/policy#levelpolicyobject)。
level 的值, 对应 [policy](../../base/policy#policyobject) 中 level 的值. 如不指定, 默认为 0.
+160
View File
@@ -0,0 +1,160 @@
---
date: "2020-12-23T00:00:00.000Z"
description: Project X 的文档.
title: VLESS
weight: 6
---
::: danger
目前 VLESS 没有自带加密,请用于可靠信道,如 TLS。</br>
目前 VLESS 不支持分享。</br>
VLESS 是一个无状态的轻量传输协议,它分为入站和出站两部分,可以作为 Xray 客户端和服务器之间的桥梁。
与 [VMess](../vmess) 不同,VLESS 不依赖于系统时间,认证方式同样为 UUID,但不需要 alterId。
## OutboundConfigurationObject
---
```json
{
"vnext": [
{
"address": "example.com",
"port": 443,
"users": [
{
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
"encryption": "none",
"flow": "xtls-rprx-direct",
"level": 0
}
]
}
]
}
```
> `vnext`: \[ [ServerObject](#serverobject) \]
一个数组, 表示 VLESS 服务器列表,包含一组指向服务端的配置, 其中每一项是一个服务器配置。
### ServerObject
---
```json
{
"address": "example.com",
"port": 443,
"users": [
{
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
"encryption": "none",
"flow": "xtls-rprx-direct",
"level": 0
}
]
}
```
> `address`: address
服务端地址,指向服务端,支持域名、IPv4、IPv6。
> `port`: number
服务端端口,通常与服务端监听的端口相同。
> `users`: \[ [UserObject](#userobject) \]
数组, 一组服务端认可的用户列表, 其中每一项是一个用户配置
### UserObject
---
```json
{
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
"encryption": "none",
"flow": "xtls-rprx-direct",
"level": 0
}
```
> `id`: string
VLESS 的用户 ID,可以是任意小于30字节的字符串, 也可以是一个合法的UUID. </br>
自定义字符串和其映射的 UUID 是等价的, 这意味着你将可以这样在配置文件中写id来标识同一用户,即
- 写 "id": "我爱🍉老师1314",
- 或写 "id": "5783a3e7-e373-51cd-8642-c83782b807c5" (此UUID是 `我爱🍉老师1314` 的 UUID 映射)
其映射标准在[VLESS UUID 映射标准:将自定义字符串映射为一个 UUIDv5](https://github.com/XTLS/Xray-core/issues/158)
你可以使用命令 `xray uuid -map "自定义字符串"` 生成自定义字符串所映射的的 UUID.</br>
也可以使用命令 `xray uuid` 生成随机的UUID.
> `encryption`: "none"
需要填 `"none"`,不能留空。
该要求是为了提醒使用者没有加密,也为了以后出加密方式时,防止使用者填错属性名或填错位置导致裸奔。</br>
若未正确设置 encryption 的值,使用 Xray 或 -test 时会收到错误信息。
> `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 流量
::: warning
**注意**
当 `flow` 被指定时,还需要将该出站协议的 `streamSettings.security` 一项指定为 `xtls`,`tlsSettings` 改为 `xtlsSettings`。详情请参考 [streamSettings](../../base/transport#streamsettingsobject)。
此外,目前 XTLS 仅支持 TCP、mKCP、DomainSocket 这三种传输方式。
{{% notice %}}
**关于 `xtls-rprx-*-udp443` 流控模式**
启用了 Xray-core 的 XTLS 时,通往 UDP 443 端口的流量默认会被拦截(一般情况下为 QUIC),这样应用就不会使用 QUIC 而会使用 TLS,XTLS 才会真正生效。实际上,QUIC 本身也不适合被代理,因为 QUIC 自带了 TCP 的功能,它作为 UDP 流量在通过 VLESS 协议传输时,底层协议为 TCP,就相当于两层 TCP 了。
若不需要拦截,请在客户端填写 `xtls-rprx-*-udp443`,服务端不变。
::: danger
Splice 是 Linux Kernel 提供的函数,系统内核直接转发 TCP,不再经过 Xray 的内存,大大减少了数据拷贝、CPU 上下文切换的次数。
Splice 模式的的使用限制:
- Linux 环境
- 入站协议为 `Dokodemo door`、`Socks`、`HTTP` 等纯净的 TCP 连接, 或其它使用了 XTLS 的入站协议
- 出站协议为 VLESS + XTLS 或 Trojan + XTLS
此外,使用 Splice 时网速显示会滞后,这是特性,不是 bug。
需要注意的是,使用 mKCP 协议时不会使用 Splice(是的,虽然没有报错,但实际上根本没用到)。
> `level`: number
用户等级,连接会使用这个用户等级对应的[本地策略](../../base/policy#levelpolicyobject)。
level 的值, 对应 [policy](../../base/policy#policyobject) 中 level 的值. 如不指定, 默认为 0.
+125
View File
@@ -0,0 +1,125 @@
---
date: "2020-12-23T00:00:00.000Z"
description: Project X 的文档.
title: VMess
weight: 7
---
# VMess
[VMess](../../../develop/protocols/vmess) 是一个加密传输协议,通常作为 Xray 客户端和服务器之间的桥梁。
::: danger
VMess 依赖于系统时间,请确保使用 Xray 的系统 UTC 时间误差在 90 秒之内,时区无关。在 Linux 系统中可以安装`ntp`服务来自动同步系统时间。</br>
## OutboundConfigurationObject
---
```json
{
"vnext": [
{
"address": "127.0.0.1",
"port": 37192,
"users": [
{
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
"alterId": 0,
"security": "auto",
"level": 0
}
]
}
]
}
```
> `vnext`:\[ [ServerObject](#serverobject) \]
一个数组,包含一组的服务端配置.
其中每一项是一个服务端配置[ServerObject](#serverobject)。
### ServerObject
---
```json
{
"address": "127.0.0.1",
"port": 37192,
"users": []
}
```
> `address`: address
服务端地址,支持 IP 地址或者域名。
> `port`: number
服务端监听的端口号, 必填。
> `users`: \[ [UserObject](#userobject) \]
一个数组,代表一组服务端认可的用户.
其中每一项是一个用户[UserObject](#userobject)。
#### UserObject
---
```json
{
"id": "5783a3e7-e373-51cd-8642-c83782b807c5",
"alterId": 0,
"security": "auto",
"level": 0
}
```
> `id`:string
Vmess 的用户 ID,可以是任意小于30字节的字符串, 也可以是一个合法的UUID. </br>
自定义字符串和其映射的 UUID 是等价的, 这意味着你将可以这样在配置文件中写id来标识同一用户,即
- 写 "id": "我爱🍉老师1314",
- 或写 "id": "5783a3e7-e373-51cd-8642-c83782b807c5" (此UUID是 `我爱🍉老师1314` 的 UUID 映射)
其映射标准在[VLESS UUID 映射标准:将自定义字符串映射为一个 UUIDv5](https://github.com/XTLS/Xray-core/issues/158)
你可以使用命令 `xray uuid -map "自定义字符串"` 生成自定义字符串所映射的的 UUID.</br>
也可以使用命令 `xray uuid` 生成随机的UUID.
> `alterId`:number
为了进一步防止被探测,一个用户可以在主 ID 的基础上,再额外生成多个 ID。这里只需要指定额外的 ID 的数量,推荐值为 0 代表启用 VMessAEAD。
最大值 65535。这个值不能超过服务器端所指定的值。
不指定的话,默认值是 0。
::: tip
客户端 AlterID 设置为 0 代表启用 VMessAEAD ;服务端为自动适配,可同时兼容启用和未开启 VMessAEAD 的客户端。
客户端可通过设置环境变量 Xray_VMESS_AEAD_DISABLED=true 强行禁用 VMessAEAD
> `level`: number
用户等级,连接会使用这个用户等级对应的[本地策略](../../base/policy#levelpolicyobject)。
level 的值, 对应 [policy](../../base/policy#policyobject) 中 level 的值. 如不指定, 默认为 0.
> `security`: "aes-128-gcm" | "chacha20-poly1305" | "auto" | "none"
加密方式,客户端将使用配置的加密方式发送数据,服务器端自动识别,无需配置。
- `"aes-128-gcm"`:推荐在 PC 上使用
- `"chacha20-poly1305"`:推荐在手机端使用
- `"auto"`:默认值,自动选择(运行框架为 AMD64、ARM64 或 s390x 时为 aes-128-gcm 加密方式,其他情况则为 Chacha20-Poly1305 加密方式)
- `"none"`:不加密
::: tip
推荐使用`"auto"`加密方式,这样可以永久保证安全性和兼容性。