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

GKE环境下NGINX Ingress Controller IP白名单配置异常求助

解决GCP GKE NGINX Ingress白名单IP访问被拒问题

针对你遇到的日志显示client: 127.0.0.1导致白名单失效的问题,核心原因是NGINX Ingress Controller没有正确获取到真实客户端IP,以下是具体排查和解决步骤:

1. 配置NGINX解析真实客户端IP

日志里的127.0.0.1是Ingress Controller内部转发IP,而非你的真实访问IP。GCP的HTTP(S)负载均衡会通过X-Forwarded-For头部传递真实IP,需要让NGINX信任并解析这个头部:

  • 编辑Ingress Controller的ConfigMap(通常名为nginx-ingress-controller),添加或确认以下配置:
    data:
      use-forwarded-headers: "true"
      # 信任GCP外部LB的源IP段,确保转发头被合法解析
      proxy-real-ip-cidr: "35.191.0.0/16, 130.211.0.0/22, 209.85.152.0/22, 209.85.204.0/22"
      real-ip-header: "X-Forwarded-For"
      set-real-ip-from: "35.191.0.0/16, 130.211.0.0/22, 209.85.152.0/22, 209.85.204.0/22"
    
  • 也可以在单个Ingress资源上添加注解强制启用转发头解析:
    annotations:
      nginx.ingress.kubernetes.io/use-forwarded-headers: "true"
    

2. 验证白名单规则的生效状态

查看NGINX的实际运行配置,确认白名单规则是否正确应用:

  • 进入Ingress Controller Pod执行命令:
    kubectl exec -it <你的Ingress Controller Pod名称> -n <命名空间> -- cat /etc/nginx/nginx.conf
    
  • 找到对应server块,检查是否存在匹配你IP的规则:
    allow 你的真实IP/32;
    deny all;
    
    如果规则存在但依然失效,说明NGINX之前是用$remote_addr(LB或内部转发IP)做校验,配置上面的真实IP参数后即可切换为使用真实客户端IP匹配。

3. 确认externalTrafficPolicy的配置影响

虽然你设置了externalTrafficPolicy: Local,但GCP环境下该配置仅保证流量直接转发到运行Ingress Controller Pod的节点,不代表NGINX能直接拿到真实IP:

  • 检查Ingress Controller Service的externalTrafficPolicy确实为Local,且Service类型为LoadBalancer
  • 确认节点上没有额外的iptables规则或网络策略修改源IP

4. 测试IP传递是否正常

修改NGINX日志格式,打印转发头信息,验证真实IP是否被正确传递:

  • 在ConfigMap中更新日志格式:
    data:
      log-format-upstream: '$remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"'
    
  • 查看Ingress Controller日志,检查$http_x_forwarded_for字段是否为你的真实IP。如果该字段正确,说明真实IP配置已生效,白名单规则应该能正常匹配。

5. 排查防火墙与网络策略

  • 确认GCP VPC防火墙规则允许你的IP访问LB的80/443端口
  • 检查集群内的NetworkPolicy是否没有阻止你的IP访问Ingress Controller或后端服务

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 02:35:19