在 X-Forwarded-For 中发现私有地址空间 IP

在 X-Forwarded-For 中发现私有地址空间 IP

我在 Google Cloud(HTTPS)负载均衡器后面使用 nginx 进行反向代理,因此我添加了标X-Forwarded-For头,以便后端可以提取客户端(浏览器)IP。

今天早上我注意到10.x.x.x日志中有一个 IP,这是怎么回事?

答案1

您的日志如何解释包含多个 IP 地址的标头?如果它采用第一个 IP 地址而不是正确的 IP 地址,则这很可能是某人添加的地址向前代理而不是你的撤销代理人。

标题及其内容记录在 GCP 中设置 HTTP(S) 负载平衡文章:

X-Forwarded-For: <unverified IP(s)>, <immediate client IP>, <global forwarding rule external IP>, <proxies running in GCP>(仅限请求)

请求经过的中介附加的 IP 地址的逗号分隔列表。如果您在 GCP 内部运行将数据附加到标X-Forwarded-For头的代理,则您的软件必须考虑这些代理的存在和数量。负载均衡器仅提供<immediate client IP><global forwarding rule external IP> 条目。列表中的所有其他条目都会在未经验证的情况下传递。

只需相应地调整您的日志即可。

答案2

我正在使用 google 云负载均衡器和 google 云 DNS 和 nginx 作为反向代理。并使用以下 nginx 配置。

set_real_ip_from 10.48.0.0/14;
set_real_ip_from 10.128.0.0/9;
set_real_ip_from 10.114.44.0/22;
real_ip_header X-Forwarded-For;
real_ip_recursive on;

它可以与 cloudfare dns 一起使用,但不能与 google cloud dns 和 AWS route 53 一起使用,这个问题已经持续一个月了。我也使用了 real_ip_header CF-Connecting-IP; 但仍然无法获取客户端 IP,我总是在 nginx 日志中看到 gcp 实例的本地 ips,DNS 是否存在问题,请让我知道如何解决这个问题。

相关内容