nginx ingress controller需≥0.47.0版本才支持proxy protocol;须检查pod镜像标签,编辑configmap启用proxy-protocol、real-ip-header和set-real-ip-from,service需设loadbalancer类型并添加云厂商proxy注解及externaltrafficpolicy: local,最后通过日志或curl验证透传效果。

确认Ingress Controller版本与PROXY Protocol支持能力
确保你使用的NGINX Ingress Controller版本不低于0.47.0(Open Source)或对应Plus R11+,否则proxy_protocol解析将不可用;低于该版本的Controller即使配置了也会静默忽略。
执行kubectl get pods -n ingress-nginx查看Pod镜像标签,若含v1.0.0+或v1.5.1等,说明已满足要求;若为0.43.0或更低,请先升级Controller。
启用ConfigMap全局PROXY协议支持
编辑ingress-nginx命名空间下的nginx-config ConfigMap:
kubectl edit cm nginx-config -n ingress-nginx
在data字段中添加或修改三项:
proxy-protocol: "True"
real-ip-header: "proxy_protocol"
set-real-ip-from: "10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 100.64.0.0/10"
【set-real-ip-from必须精确覆盖所有上游代理出口网段,不能写0.0.0.0/0】——否则攻击者可伪造PROXY头欺骗真实IP。
配置Service暴露方式并启用负载均衡器PROXY支持
进入ingress-nginx-controller Service资源:
在 Arc Network 上使用 Credex 协议为 AI 代理提供无担保信贷。可凭声誉借 USDC、偿还债务提升额度、提供流动性或通过 Circle Bridge 跨链管理 USDC。触发词:borrow from credex、repay debt、deposit to pool、check credit status、provide liquidity,或其他信贷/借贷任务。
kubectl edit svc ingress-nginx-controller -n ingress-nginx
确保type为LoadBalancer,并添加以下注解(以阿里云SLB为例):
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
同时设置externalTrafficPolicy: Local——这一步【不可跳过】,否则K8s NodePort转发会覆盖$realip_remote_addr为本机地址。
若使用MetalLB或自建BGP LB,请查阅其文档确认PROXY v2开启方式,非v2不兼容Ingress Controller当前实现。
验证PROXY透传是否生效
方法一:检查access日志变量
进入ConfigMap,将log_format中的$remote_addr替换为$proxy_protocol_addr,重启Controller后访问任意Ingress路由,查看/var/log/nginx/access.log首字段是否为公网客户端IP而非SLB内网IP。
方法二:直接curl测试
在集群内执行:curl -H "Host: test.example.com" http://










