在 frpc 配置里启用 Proxy Protocol 协议:
# frpc.toml
[[proxies]]
name = "web"
type = "http"
localPort = 80
customDomains = ["test.yourdomain.com"]
# 启用 Proxy Protocol
transport.proxyProtocolVersion = "v2"
# 如果不支持 v2 版本就改成 v1
#transport.proxyProtocolVersion = "v1"
在 Nginx 启用 Proxy Protocol:
listen 80 proxy_protocol;
listen [::]:80 proxy_protocol;
# 信任来源 127.0.0.1 的 Proxy Protocol 信息
set_real_ip_from 127.0.0.1;
# 从 Proxy Protocol 获取用户 IP
real_ip_header proxy_protocol;
# 将 IP 信息添加到响应头传给后端
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
相关文档:获取用户真实 IP | frp
发表回复