HTTP 请求头中的 Remote_Addr,X-Forwarded-For,X-Real-IP | Spring Cloud 13

时间:2024-10-10 12:48:05

一、$remote_addr

表示发出请求的客户端主机的 IP 地址,但它的值不是由客户端提供的,而是Nginx与客户端进行TCP连接过程中,获得的客户端的真实地址 IP 地址,REMOTE_ADDR 无法伪造,因为建立 TCP 连接需要三次握手,如果伪造了源 IP,无法建立 TCP 连接,更不会有后面的 HTTP 请求。

当你的浏览器访问某个网站时:

  • 假设中间没有任何代理,那么网站的Web服务器(NginxApache等)获取的remote_addr为你的机器IP
  • 如果你用了某个代理,那么你的浏览器会先访问这个代理,然后再由这个代理转发到网站,这样Web服务器获取的remote_addr为代理机器的IP

二、$X-Real-IP

X-R