走代理后请求头多出 X-Forwarded-For,这个头谁在写、谁能改

2026年08月30日

12 次

排查接口报错时打开请求头,发现多了个 X-Forwarded-For,里面一串地址让人摸不着头脑。这个头是谁加上的?里面的地址能不能当真?这篇把 X-Forwarded-For 在代理链路里的来龙去脉讲清楚,排查时就知道该看哪一位。

X-Forwarded-For 是怎么被”接力”写上的

X-Forwarded-For(简称 XFF)是一种约定俗成的请求头,用来记录请求一路经过的客户端与转发节点地址。直连时请求里没有这个头;一旦流量经过代理,转发方就会按自己的规则往里追加一段地址。链路越长,头里的地址越多,服务器读起来越要小心。

追加、透传还是重写,取决于代理类型

同样是转发,不同代理的写法不一样:有的代理只透传原请求头,不主动加 XFF;有的代理会在尾部追加自己的出口地址;还有的会把整个 XFF 重写成自己的信息。类型不同,最终头里呈现的内容就不同。排查时先搞清楚自己用的代理属于哪种,才不会被头里的地址带偏。

站点到底信哪个地址

目标服务器面对一串 XFF 地址,习惯上取最左侧那个当作”原始客户端地址”,因为按惯例最左是客户端最初发起的地址。但这个惯例并不强制:代理可以改写,客户端也可以自行填写最左地址。所以站点一般还会结合连接来源地址(即最后一个转发者)一起判断,不会只凭 XFF 下结论。

环节 写入内容 可信度
客户端 可自行填写最左地址 低,可伪造
转发代理 追加自身出口地址 中,取决于代理规则
目标服务器 读 XFF 并参考连接来源 高,连接地址最不易作假
中间安全设备 可能改写或清空 XFF 视策略而定
  1. 先看连接来源:服务器视角下 TCP 连接来自代理,这是最不容易作假的地址
  2. 再读 XFF 最左位:只作参考,别当作铁证
  3. 确认代理写入规则:查文档或咨询供应商,弄清是追加还是重写
  4. 跨层对照:把请求头、连接地址、日志三方拼起来看,定位才准

XFF 就像包裹上的中转贴条:每过一站的记录都有用,但哪张贴条是真的,要看快递单上的出发点,而不是只看贴条本身。

与 IP 代理的关系:代理是 XFF 头的主要写入者之一,其写入规则直接影响服务器对访客地址的判断;理解 XFF 在链路中的流转,是评估代理出口在业务日志与安全判断中作用的基础。所有使用都应遵循平台规则与法律法规,用于正当业务目的。

相关咨询请联系QQ/微信:157069302