mirror of
https://github.com/XTLS/Xray-docs-next.git
synced 2026-09-22 22:38:05 +03:00
Sockopt: Simplify trustedXForwardedFor
This commit is contained in:
@@ -159,26 +159,11 @@ Sockopt 用于配置底层网络行为。
|
||||
|
||||
> `trustedXForwardedFor`: [ string ]
|
||||
|
||||
仅用于 `XHTTP`、`WebSocket`、`HTTPUpgrade` 这三个基于 HTTP 的 inbound。
|
||||
仅用于 `XHTTP`、`WebSocket`、`HTTPUpgrade` 这三个基于 HTTP 的 transport,以控制其是否认为 XFF(`X-Forwarded-For`)头来自可信的反向代理。
|
||||
|
||||
用于限制何时信任请求头里的 `X-Forwarded-For`,并用它覆写 `SourceIP`。
|
||||
默认为空,为空时 Xray 无条件接受 XFF 头并使用其中的 IP 覆盖源 IP。
|
||||
|
||||
默认不设置时,仍保持旧行为:只要请求中带有 `X-Forwarded-For`,Xray 就会读取它。
|
||||
|
||||
设置后,数组中的每一项都表示一个额外要求存在的请求头名。只有当请求中存在其中任意一个头时,Xray 才会信任 `X-Forwarded-For`;这些头的值无所谓,只检查键是否存在。
|
||||
|
||||
::: details 示例与用途
|
||||
|
||||
```json
|
||||
"sockopt": {
|
||||
"trustedXForwardedFor": ["ABCDEF", "XYZ"]
|
||||
}
|
||||
```
|
||||
|
||||
这表示请求中必须额外出现 `ABCDEF` 或 `XYZ` 这两个头里的任意一个,Xray 才会接受同一请求中的 `X-Forwarded-For` 作为来源 IP。
|
||||
|
||||
通常可以让 CDN、Nginx 等你自己信任的 HTTP 反代额外注入一个只有服务端知道的自定义请求头,以避免客户端伪造来源 IP。
|
||||
:::
|
||||
当不为空时,检查该数组中设置的数个字符串的其中一个是否在请求中存在对应 Header(不论其内容为何)如果存在则使用其覆盖源 IP,否则 Xray 将无视该 XFF 头。
|
||||
|
||||
> `tcpKeepAliveIdle`: number
|
||||
|
||||
|
||||
@@ -162,19 +162,6 @@ If left unset, the old behavior remains: as long as the request contains `X-Forw
|
||||
|
||||
After setting this field, each array item is treated as an additional required header name. Xray trusts `X-Forwarded-For` only when the request also contains at least one of those headers. The header values do not matter; only the presence of the key is checked.
|
||||
|
||||
::: details Example and use case
|
||||
|
||||
```json
|
||||
"sockopt": {
|
||||
"trustedXForwardedFor": ["ABCDEF", "XYZ"]
|
||||
}
|
||||
```
|
||||
|
||||
This means the request must additionally contain either `ABCDEF` or `XYZ`, otherwise Xray will not accept the `X-Forwarded-For` value from that same request as the source IP.
|
||||
|
||||
In practice, you can have a trusted HTTP reverse proxy such as a CDN or Nginx inject a custom header known only to the server side, which helps prevent clients from forging the source IP.
|
||||
:::
|
||||
|
||||
> `tcpKeepAliveIdle`: number
|
||||
|
||||
TCP idle threshold in seconds. Once a TCP connection has been idle for this long, Keep-Alive probes begin.
|
||||
|
||||
@@ -160,19 +160,6 @@ Sockopt используется для настройки низкоуровн
|
||||
|
||||
После настройки этого поля каждый элемент массива рассматривается как имя дополнительного заголовка, которое должно присутствовать в запросе. Xray будет доверять `X-Forwarded-For` только если в запросе есть хотя бы один из этих заголовков. Их значения не важны, проверяется только наличие самого ключа.
|
||||
|
||||
::: details Пример и сценарий использования
|
||||
|
||||
```json
|
||||
"sockopt": {
|
||||
"trustedXForwardedFor": ["ABCDEF", "XYZ"]
|
||||
}
|
||||
```
|
||||
|
||||
Это означает, что в запросе дополнительно должен присутствовать либо `ABCDEF`, либо `XYZ`, иначе Xray не примет `X-Forwarded-For` из этого же запроса как исходный IP-адрес.
|
||||
|
||||
На практике доверенный HTTP reverse proxy, например CDN или Nginx, может дополнительно подставлять специальный заголовок, известный только серверной стороне. Это помогает защититься от подделки исходного IP клиентом.
|
||||
:::
|
||||
|
||||
> `tcpKeepAliveIdle`: number
|
||||
|
||||
Порог простоя TCP в секундах. После такого времени бездействия начинают отправляться Keep-Alive пакеты.
|
||||
|
||||
Reference in New Issue
Block a user