网站接入 CDN、负载均衡和反向代理后,访问日志里的地址常常不再是访客地址。更棘手的是,客户端可以主动提交 X-Forwarded-For,若源站把它当成真实来源,审计日志会出现伪造 IP,风控系统也可能把代理当成攻击者,或放过批量注册、撞库请求。问题不在“有没有代理”,而在于每一层代理究竟被允许相信谁。
如果你正在选机器,或者想先把线路和配置跑通再谈长期方案,可以先看看这几家的线路说明和技术参数:tmhhost(全球代理网络),先看清带宽线路、流量策略和退款条款,再决定要不要迁。
典型的访问链路是“访客CDN 边缘节点反向代理应用服务器”。当请求经过代理时,代理通常会把本次连接的对端地址追加到 X-Forwarded-For 末尾;已有的头部则来自更前面的节点或客户端。因此,X-Forwarded-For 本质上是一条可能包含多层来源的地址链,而不是天然可信的身份证。
如果访客直接访问源站,可以自行发送 X-Forwarded-For: 203.0.113.10,源站便可能误以为请求来自该地址。若 CDN 先把客户端提交的头部原样带到源站,再追加自己的连接地址,日志中就会出现“伪造地址, CDN 看到的地址, 源站看到的地址”这样的组合。只取最左侧 IP,或只取最右侧 IP,都不能普遍得到真实访客。

不同代理的处理策略也不同:有的覆盖头部,有的追加,有的只保留最后一个地址。真正决定结果的不是字段名称,而是入口代理是否清洗外部传入值,以及源站是否只接受已知代理发来的请求。源站还应按固定回源网段、访问控制或专用链路识别 CDN,不能仅凭请求中出现的厂商标识头判断来源。
还原地址前,先建立明确的信任边界:列出能够代表自己转发请求的代理 IP 段或节点,并在入口处丢弃客户端自带的转发头,再由可信代理重新写入。CDN 回源地址应从官方控制台或配置中核对,不要把任意来源提交的 CDN-Connecting-IP、True-Client-IP 等字段直接放进信任名单。代理节点发生变化时,这张名单也要同步更新。
对于 XFF 链路,应从靠近源站的一端向客户端方向检查,只跳过经过身份核验的可信代理,在第一个不可信节点处停止,并把该节点视为候选访客地址。如果无法确认中间某一跳是否可信,就不能宣称获得了真实 IP,只能记录“地址链及信任失败原因”。此外要处理 IPv4、IPv6、端口和代理链被截断等情况,避免日志解析器把不同格式混为一谈。

PROXY 协议能在连接建立前传递原始客户端地址和端口,源站直接读取时通常比解析 XFF 更可靠。但它依赖连接两端都启用协议:若源站端口直接暴露公网,攻击者可能构造 PROXY 报文伪装来源;若 CDN 不支持或中途代理未正确透传,也会出现地址缺失。因此应把 PROXY 监听端口限制在可信代理网段,并在链路中验证每一跳。
如果需要把完整代理链交给应用,可使用随服务器等运维工具统一观察入口、代理和应用日志,核对请求 ID、连接地址与转发头是否对应。审计时应同时保存原始转发链、可信判定结果和最终采用的访客 IP,这样即使某个客户端伪造头部,也能区分“确实来自该地址”与“仅由请求头声称来自该地址”。
请求经过 CDN、负载均衡或 WAF 后,X-Forwarded-For 通常记录代理追加的地址链。链中最左侧不一定是真实访客:客户端可以先提交伪造值,边缘代理再追加自身地址。因此不能全局“取第一个 IP”,只能信任直接连接本机的已知代理,并按可信链从右向左解析。
在 Nginx 中,先用 set_real_ip_from 限定代理网段,再启用 real_ip_header X-Forwarded-For 和 real_ip_recursive on;业务层只读取 $remote_addr,不要自行拆分请求头。最外层可信入口应覆盖客户端传入的 XFF,后续可信代理仅负责追加,这也是真实访客 IP 提取的基础。

若链路使用 PROXY 协议地址还原,源地址应由 v1/v2 帧在四层解析,不依赖 HTTP 请求头。只在确认对端是可控代理后启用 proxy_protocol 与 real_ip_header proxy_protocol,并限制监听端口和来源;格式异常的帧应直接拒绝,否则公网客户端仍可伪造源 IP。
CDN 回源地址识别要结合网络与业务证据:源站安全组只放行 CDN 官方回源网段,启用 mTLS 或回源鉴权,由 CDN 覆盖专用客户端 IP 头。若源站仍可被公网直连,该头就不能被视为可信依据。
常见坑包括信任任意 XFF、把 CF-Connecting-IP 当作事实、在多层代理中各自取最左值,以及日志只记录改写后的结果。代理日志防伪造应同时保留原始 XFF、解析后的 $remote_addr、$proxy_add_x_forwarded_for 和上游地址,便于关联审计。
上线前按此清单执行:①列出每一跳,标明唯一可信写入者与可信 CIDR;②在边缘覆盖外部 XFF,内部代理仅追加;③核对 CDN 回源网段,封锁源站直连;④分别用直连源站、携带假 XFF、伪造 PROXY 帧测试,三者都应失败;⑤抽查访问日志、代理日志与上游日志,确认地址链能够相互印证;⑥为规则变更配置告警和回滚。
真实访客 IP 还原不是“猜一个请求头”,而是建立可验证的代理信任链:边界外一律不可信,边界内严格按规则解析,日志保留完整证据。完成这些检查后,应用日志、限流策略和风控系统才能基于同一可信地址稳定工作。