From c9add77895905a9560d65a4e3e5deeced3d8989b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E6=89=87=E6=BB=91=E7=BF=94=E7=BF=BC?= Date: Mon, 1 Apr 2024 23:25:19 +0800 Subject: [PATCH] Add ```nosni``` --- docs/config/transport.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/config/transport.md b/docs/config/transport.md index 1a65df851..b377e0b15 100644 --- a/docs/config/transport.md +++ b/docs/config/transport.md @@ -191,7 +191,13 @@ Reality 是目前最安全的传输加密方案, 且外部看来流量类型和 指定服务器端证书的域名,在连接由 IP 建立时有用。 -当目标连接由域名指定时,比如在 Socks 入站接收到了域名,或者由 Sniffing 功能探测出了域名,这个域名会自动用于 `serverName`,无须手动配置。 +当留空时,自动使用address中的值(如果是域名),该值同时用于校验服务端证书是否有效。 + +::: tip +如上所述,因为该值同时用于校验服务端证书是否有效,如果出于特殊目的将其修改为与服务端证书域名不一致的需要需要开启 ```allowInsecure``` 否则会导致证书认证失败。出于安全考虑我们不推荐长期使用这种方法,如果想要安全地伪造SNI,请考虑使用REALITY。 + +特别地,当客户端设置为 ```"serverName": "nosni"``` 时,xray不会发送SNI,同样的要使用此功能也必须同时开启 ```allowInsecure``` +::: > `rejectUnknownSni`: bool @@ -339,6 +345,8 @@ CipherSuites 用于配置受支持的密码套件列表, 每个套件名称之 必填,客户端可用的 `serverName` 列表,暂不支持 \* 通配符。 +其中可包含空值 ```""``` 代表接受没有SNI的连接。 + > `privateKey` : string 必填,执行 `./xray x25519` 生成。 @@ -371,6 +379,8 @@ CipherSuites 用于配置受支持的密码套件列表, 每个套件名称之 服务端 serverNames 之一。 +当服务端 ```serverNames``` 中包含空值时,可以在客户端使用 ```"serverName": "nosni"``` 发起无SNI的连接。与TLS不同,REALITY使用这个功能并不需要开启也没有允许不安全选项。当使用此功能时请确保dest在接受无SNI的连接时会返回默认证书。 + > `fingerprint` : string 必填,同 [TLSObject](https://xtls.github.io/config/transport.html#tlsobject)。