You need to enable JavaScript to run this app.
文档中心
全球加速

全球加速

复制全文
下载 pdf
终端节点组与终端节点
保持客户端源 IP
复制全文
下载 pdf
保持客户端源 IP

保持客户端源 IP 概览

作为一个网络加速服务,全球加速充当了客户端和您的应用程序之间的四层代理。默认情况下,您的应用程序接收到的源 IP 地址是位于终端节点区域的边缘节点的 IP 地址,而非原始客户端的 IP。

然而,许多应用程序的运行依赖真实的客户端 IP。例如,基于 IP 的访问控制、限流、流量分析。诸如火山引擎内容分发网络这类七层反向代理可以使用如 X-Forwarded-For 之类的 HTTP 请求头来传递客户端真实 IP,但这些技术在四层代理中并无法实现。

为满足这一需求,全球加速支持使用 Proxy Protocol 保留客户端源 IP。支持以下 Proxy Protocol 版本:

  • Proxy Protocol v1:仅支持 TCP。加速器会在 TCP 报文的有效载荷(Payload)部分的开头添加一个 ASCII 编码的 Proxy Protocol v1 头部,用来传递客户端 IP 及端口。

  • Proxy Protocol v2:支持 TCP 和 UDP。加速器会在 TCP 或 UDP 报文的 Payload 部分的开头添加一个二进制编码的 Proxy Protocol v2 头部,用来传递客户端 IP 及端口。

    说明

    对于基于 UDP 协议的流量,全球加速允许 UDP 报文中 Payload 长度上限为 1380 字节。但由于 Proxy Protocol v2 头部需要占用额外的 Payload 字节,IPv4 是 28 字节,IPv6 是 52 字节,您需要将客户端发送的 UDP 报文中 Payload 的数据量控制在更小的值。

开启保持客户端源 IP

您可以通过编辑终端节点组来设置 保持客户端源 IP 属性。具体步骤如下:

  1. 登录火山引擎全球加速控制台。

  2. 在左侧导航栏,点击 加速器管理 > 标准型加速器 。

  3. 在 标准型加速器 页面,点击需要配置的加速器的名称。

  4. 点击 监听,进入 监听 页面后,选择需要配置的监听器。

  5. 在 终端节点组 标签页,找到需要配置的终端节点组,在 操作 栏点击 编辑 。

  6. 在 编辑终端节点组 标签页,开启 保持客户端源 IP,根据您的后端应用对 Proxy Protocol 的支持情况以及您的监听协议,选择 Proxy Protocol 协议版本,然后点击 确认。

开启后端应用对 Proxy Protocol 协议的支持

您的后端服务器需要支持解析 Proxy Protocol 传递的客户端连接信息,才能获取客户端源 IP 。以 Nginx 为例,配置 Nginx 只需将 proxy_protocol 参数添加到 server 块中的 listen 指令后。

http {
    #...
    server {
        listen 80 proxy_protocol;    #在80端口,开启解析proxy protocol。
        #...
    }
}
   
stream {
    #...
    server {
        listen 8080 proxy_protocol;    #在8080端口,开启解析proxy protocol。
        #...
    }
}

查看客户端源 IP

您可在 Nginx 访问日志中查看客户端源 IP ,具体步骤如下:

  1. 设置http{}模块和stream{}模块的日志格式,添加保存客户端源 IP 的变量 proxy_protocol_addr,从而将客户端源 IP 信息保存到访问日志中。
http {
    log_format combined '$proxy_protocol_addr - $remote_user [$time_local] '
                        '"$request" $status $body_bytes_sent '
                        '"$http_referer" "$http_user_agent"';
}

stream {
    log_format basic '$proxy_protocol_addr - [$time_local] '
                     '$protocol $status $bytes_sent $bytes_received '
                     '$session_time';
}
  1. 通过tail -n 5 <日志路径> 命令查看日志信息,日志中每条访问记录的第一个 IP 地址即为客户端源 IP。
最近更新时间:2025.08.14 14:42:01
这个页面对您有帮助吗?
有用
有用
无用
无用