Amazon web services 在AWS VPC中获取客户端ip而不是负载平衡器ip

Amazon web services 在AWS VPC中获取客户端ip而不是负载平衡器ip,amazon-web-services,amazon-vpc,Amazon Web Services,Amazon Vpc,我正试图在亚马逊虚拟私有云的链接中设置该系统。 我的问题是“有没有可能让TCP服务器知道真正的TCP客户端的IP?” 我总是从负载均衡器获得ip,不知道如何从真正的客户端获得ip 非常感谢 根据 代理协议 当您使用为TCP/SSL连接配置的负载平衡器时,代理协议头可帮助您识别客户端的IP地址。因为负载平衡器拦截客户端和后端实例之间的通信,所以来自后端实例的访问日志包含负载平衡器的IP地址,而不是原始客户端的IP地址。启用代理协议后,负载平衡器会添加一个可读的格式头,其中包含连接信息,例如源IP

我正试图在亚马逊虚拟私有云的链接中设置该系统。

我的问题是“有没有可能让TCP服务器知道真正的TCP客户端的IP?” 我总是从负载均衡器获得ip,不知道如何从真正的客户端获得ip

非常感谢

根据

代理协议

当您使用为TCP/SSL连接配置的负载平衡器时,代理协议头可帮助您识别客户端的IP地址。因为负载平衡器拦截客户端和后端实例之间的通信,所以来自后端实例的访问日志包含负载平衡器的IP地址,而不是原始客户端的IP地址。启用代理协议后,负载平衡器会添加一个可读的格式头,其中包含连接信息,例如源IP地址、目标IP地址和客户端的端口号。报头随后作为请求的一部分发送到后端实例。您可以解析请求的第一行以检索客户端的IP地址和端口号

代理协议行是以回车符和换行符(“\r\n”)结尾的单行。其形式如下:

PROXY\u字符串+单空间+INET\u协议+单空间+客户端\u IP+单空间+代理\u IP+单空间+客户端\u端口+单空间+代理\u端口+“\r\n”

以下是IPv4代理协议的示例

代理服务器TCP4 198.51.100.22 203.0.113.7 35646 80\r\n

IPv6的代理协议行采用相同的形式,只是它以TCP6开头,地址为IPv6格式

以下是IPv6代理协议的示例

代理TCP6 2001:DB8::21f:5bff:febf:ce22:8a2e 2001:DB8::12f:8baa:eafc:ce29:6b2e 35646 80\r\n

如果客户端连接到IPv6,则标头中代理的地址将是负载平衡器的公共IPv6地址。此IPv6地址与从负载平衡器的DNS名称解析的IP地址匹配,该DNS名称前缀为IPv6或dualstack。如果客户端与IPv4连接,则标头中代理的地址是负载平衡器的专用IPv4地址,无法通过EC2 Classic网络之外的DNS查找来解析该地址

有关启用代理协议标头的信息,请参阅