5. X-Forwarded-For 与 Remote Addr

本文介绍了HTTP头中的X-Forwarded-For和REMOTE_ADDR的概念及用途。X-Forwarded-For用于获取客户端真实IP,可能经过多个代理服务器,而REMOTE_ADDR表示与服务器直接建立TCP连接的IP地址,无法被伪造。在反向代理场景中,REMOTE_ADDR通常是代理服务器的IP,而X-Forwarded-For可记录客户端及中间代理的IP。在配置反向代理时,可以通过X-Forwarded-For和X-Real_IP来追踪真实客户端IP。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

X-Forwarded-For 是一个 HTTP 扩展头部,主要是为了让 Web 服务器能够获取到客户端真实的 ip。(可以被伪造,客户端发送请求时可以 override 这个请求头)

REMOTE_ADDR 表示与服务器进行 TCP 连接的 IP,这个值不能够被伪造。(TCP 连接会经过三次握手,如果伪造了,便没有后续的请求)


Remote addr

首先我们来看一个请求在到达服务端之前可能出现的路径。

客户端->(正向代理->透明代理->反向代理->)web 服务器

其中正向代理、透明代理和反向代理不一定存在。首先解释下这三个概念:

  • 正向代理:很多企业会在自己的出口网关上设置代理(主要是为了加速和节省流量)
  • 透明代理:可能是用户自己设置的代理(比如为了翻墙,这样也绕开了公司的正向代理)
  • 反向代理:一般部署在 Web 服务器前面的,主要原因是为了负载均衡和安全考虑。

现在假设以下几种情况下,Remote Addr 的值是什么:

  • 客户端直连 Web 服务器,则 Remote Addr 获取到的是客户端真实的 ip
  • web 服务器部署了反向代理(如 nginx),则 Remote Addr 获取的是反向代理设备的 ip(nginx)
  • 客户端通过正向代理直连 web 服务器,则 Remote Addr 获取到的是正向代理的 ip

综上,我们只需谨记一点,Remote Addr 获取的是与 web 服务器进行 TCP 连接的 ip 即可。


X-Forwarded-For

由于客户端的一个请求可能会经过多种代理,在不同的情况下 REMOTE AD

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值