Sockopt: Simplify trustedXForwardedFor

This commit is contained in:
Fangliding
2026-05-17 07:30:18 +08:00
parent d1b09ea017
commit 6832019145
3 changed files with 3 additions and 44 deletions
+3 -18
View File
@@ -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