You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

搭配Cloudflare与Google Cloud Backend Bucket时,如何从Stackdriver日志中获取原始访客IP

获取Cloudflare+GCP Backend Bucket架构下的原始访客IP

这个问题在反向代理+云存储/负载均衡的架构里太常见了——Cloudflare作为前端代理,会把自己的IP作为RemoteIp传给GCP,导致Stackdriver里看不到真实访客IP。不过解决起来很直接,核心就是利用Cloudflare传递的原始IP请求头,再让GCP把这个头记录到日志里。

关键原理:Cloudflare的原始IP请求头

Cloudflare默认会在转发给后端的请求里添加CF-Connecting-IP头,这个头里就直接存着原始访客的真实IP。相比X-Forwarded-For(可能包含多跳代理IP),CF-Connecting-IP更可靠,因为它只保留最开始的访客IP。

具体配置步骤

因为你的Backend Bucket是挂载在HTTP(S) Load Balancer后面的,所以需要在负载均衡器的日志配置里添加自定义字段,把这个头抓进Stackdriver日志:

  1. 进入GCP控制台的负载均衡器页面
    找到绑定了你的Backend Bucket的HTTP(S) Load Balancer,进入编辑模式。

  2. 修改日志配置
    在负载均衡器的“Logging configuration”部分,找到“Custom fields”选项:

    • 点击“Add field”,输入字段名(比如original_client_ip,方便识别)
    • 字段来源选择“Request header”
    • 输入对应的头名称:CF-Connecting-IP
  3. 保存并等待生效
    保存配置后,GCP需要几分钟时间更新日志采集规则。之后新生成的Stackdriver日志条目里,就会多一个original_client_ip字段,里面就是访客的真实IP了。

额外验证提示

  • 可以先在Cloudflare的“Network”设置里确认,没有通过Page Rules或Transform Rules移除CF-Connecting-IP头(默认是保留的)
  • 如果你的架构里还有其他代理层,也可以检查X-Forwarded-For头,但优先推荐CF-Connecting-IP

内容的提问来源于stack exchange,提问作者Kassem Shehady

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 08:27:30