fix client IP handling behind proxies
This commit is contained in:
@@ -87,6 +87,16 @@ k3s 默认同时支持两种访问方式。
|
||||
- tenant admin: `http://<node-ip>:30080`
|
||||
- ops admin: `http://<node-ip>:30081`
|
||||
|
||||
这两个 NodePort Service 使用 `externalTrafficPolicy: Local`,用于保留客户端源 IP,后端日志和登录审计会读取规范化后的 `X-Forwarded-For` / `X-Real-IP`。
|
||||
|
||||
如果通过 k3s 内置 Traefik Ingress 对外提供服务,也需要把 Traefik Service 调整为保留源地址:
|
||||
|
||||
```bash
|
||||
kubectl -n kube-system patch svc traefik -p '{"spec":{"externalTrafficPolicy":"Local"}}'
|
||||
```
|
||||
|
||||
临时用 frpc/frps 做 TCP 隧道时,用户源 IP 通常不会穿透到 k3s;这类链路需要 proxy protocol 或 HTTP 反代写入可信 `X-Forwarded-For`,否则日志只能记录隧道出口/NAS 本地转发地址。
|
||||
|
||||
例如 NAS IP 是 `192.168.100.19`:
|
||||
|
||||
- tenant admin: `http://192.168.100.19:30080`
|
||||
|
||||
Reference in New Issue
Block a user