IBM Cloud Docs
启用代理协议

启用代理协议

IBM Cloud Internet Services 在将包转发到服务器之前拦截这些包,以便在查找客户机 IP 时,您会看到 CIS的 IP 而不是真正的客户机 IP。 但是,您运行的某些服务可能需要您知道真正的客户机 IP。 在这些情况下,可以使用 CIS 的代理协议将客户机 IP 传递到服务。

发送代理信息取决于是使用 TCP 还是 UDP。 对于 TCP,Range 支持添加代理协议 v1,这是 Amazon ELB 和 NGINX 支持的人类可读版本。 对于 UDP 应用程序,CIS 已开发名为 Simple Proxy Protocol 的定制代理协议。

此功能需要企业套餐。 如果要升级,请联系您的帐户团队。

针对 TCP 启用代理协议 v1

  1. 登录 CIS 面板
  2. 单击 范围
  3. 找到将使用 PROXY 协议的应用程序,然后单击 配置
  4. 从菜单中,选择 PROXY Protocol v1

当 TCP 应用程序配置为使用代理协议 v1时,CIS 会将每个入站 TCP 连接与代理协议明文头前置。

代理协议 v1 头

代理协议会在每个连接前加上一个报头,报告客户端 IP 地址和端口。 代理协议明文报头的格式如下:

PROXY_STRING + single space + INET_PROTOCOL + single space + CLIENT_IP + single space + PROXY_IP + single space + CLIENT_PORT + single space + PROXY_PORT + "\r\n"

以下是 IPv4 地址的代理协议行示例:

PROXY TCP4 192.0.2.0 192.0.2.255 42300 443\r\n

以下是 IPv6 地址的代理协议行示例:

PROXY TCP6 2001:db8:: 2001:db8:ffff:ffff:ffff:ffff:ffff:ffff 42300 443\r\n

对 TCP/UDP 启用代理协议 v2

  1. 登录到 CIS 仪表板。
  2. 单击 范围
  3. 找到将使用代理协议的应用程序,然后单击 配置
  4. 从菜单中,选择 PROXY Protocol v2

当 TCP 应用程序配置为使用代理协议 v2时,CIS 将每个入站 TCP 连接与代理协议二进制头一起使用。

当 UDP 应用程序配置为使用 PROXY Protocol v2时,CIS 会在带有代理协议二进制头的流上添加第一个 UDP 数据报。

代理协议 v2 头

代理协议会在每个连接前加上一个报头,报告客户端 IP 地址和端口。

IPv4 入局地址的代理协议二进制头具有以下格式:

0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                  Proxy Protocol v2 Signature                  |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version|Command|   AF  | Proto.|         Address Length        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                      IPv4 Source Address                      |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                    IPv4 Destination Address                   |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Source Port          |        Destination Port       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

IPv6 入局地址的代理协议二进制头具有以下格式:

0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                  Proxy Protocol v2 Signature                  |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Version|Command|   AF  | Proto.|         Address Length        |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                      IPv6 Source Address                      +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
+                                                               +
|                                                               |
+                    IPv6 Destination Address                   +
|                                                               |
+                                                               +
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|          Source Port          |        Destination Port       |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

为 UDP 启用简单代理协议

使用 UDP 时,可以使用简单代理协议 (这是专门为 UDP 开发的轻量级协议) 来获取客户机源 IP 和端口信息。

要将其启用,请在“范围”应用程序上单击 配置,并将 简单代理协议 的设置切换为 On

简单代理协议规定,您的源还必须为具有相同头的客户机预先发送包,包括原始客户机源信息。 这样做是为了验证传入的包实际上是针对客户机的。