Kobe Arthur Scofield 6d04c95a7b
Update docs to cover 1.5.0 (#280)
* Update missing DNS schemes

Add DNS over TCP
Add DNS over TCP local
Add DNS over QUIC local

* Tweaking details

* Refine DNS doc

* Add `tcpKeepAliveInterval` to SockOpt

According to [XTLS/Xray-core/pull/754]

* Add header and method to HTTP/2 transport

According to XTLS/Xray-core/#755

* Make it prettier

* Fix punctuations

* Add `pinnedPeerCertificateChainSha256` option

Added in 1.5.1 and now batch adding it into docs.

* Add `X-Real-IP` header note

Introduced in XTLS/Xray-core#769

* Add `certChainHash` note

* Update commands

Add `certChainHash`
Provide more details

* Add inbound missing contents

- Comma separated listening port segments
- New sniffers `fakedns+others` and `quic`
- New sniffing option `routeOnly`
- Some refinements

* Add domain socket access indicator

* Fix typo

* Update descriptions for FakeDNS

* Refine DNS over TCP

* Make it preetier in DNS doc

* Make the statement clear

* Attemp to make it prettier in inbound docs

* Update fakedns.md

* Update inbound.md

* Update fakedns.md

* Update grpc.md

* Update fakedns.md

* Update command.md

* Detailed description for `metadataOnly`

* `pinnedPeerCertificateChainSha256` should be a list
2022-06-20 22:16:41 -04:00

2.0 KiB
Raw Blame History

HTTP/2

基于 HTTP/2 的传输方式。

它完整按照 HTTP/2 标准实现,可以通过其它的 HTTP 服务器(如 Nginx进行中转。

由 HTTP/2 的建议,客户端和服务器必须同时开启 TLS 才可以正常使用这个传输方式。

HTTP/2 内置多路复用,不建议使用 HTTP/2 时启用 mux.cool。

::: tip 当前版本的 HTTP/2 的传输方式并不强制要求服务器端有 TLS 配置. 这使得可以在特殊用途的分流部署环境中,由外部网关组件完成 TLS 层对话Xray 作为后端应用,网关和 Xray 间使用称为 h2c 的明文 http/2 进行通讯。 :::

::: warning ⚠️ 如果你正在使用回落,请注意下列事项:

  • 请确认 (x)tlsSettings.alpn 中包含 h2否则 HTTP/2 无法完成 TLS 握手。
  • HTTP/2 无法通过进行 Path 分流,建议使用 SNI 分流。 :::

HttpObject

HttpObject 对应传输配置的 httpSettings 项。

{
  "host": ["xray.com"],
  "path": "/random/path",
  "read_idle_timeout": 10,
  "health_check_timeout": 15,
  "method": "PUT",
  "headers": {
    "Header": ["value"]
  }
}

host: [string]

一个字符串数组,每一个元素是一个域名。

客户端会随机从列表中选出一个域名进行通信,服务器会验证域名是否在列表中。

path: string

HTTP 路径,由 / 开头, 客户端和服务器必须一致。

默认值为 "/"

read_idle_timeout: number

单位秒,当这段时间内没有接收到数据时,将会进行健康检查。

健康检查默认不启用

仅需在客户端配置。

health_check_timeout: number

单位秒,健康检查的超时时间。如果在这段时间内没有完成健康检查,即认为健康检查失败。默认值为 15

method: string

HTTP 方法。默认值为 "PUT"

设置时应参照此处列出值。

headers: map{ string: [string] }

自定义 HTTP 头,一个键值对,每个键表示一个 HTTP 头名称,对应值为一个数组。