# 独享型ELB获取客户端真实IP
通常情况下，独享型ELB使用内网的私有IP和后端服务器进行通信。如果需要获取客户端的真实IP，可以通过"获取客户端IP"功能实现。此时，ELB和后端服务器之间直接使用真实的IP进行通信。
#### 获取客户端IP功能概述
对于独享型ELB实例，"获取客户端IP"功能在四层监听器和七层监听器的实现方法存在不同。
- 四层协议监听器（TCP/UDP）默认支持"获取客户端IP"功能，ELB实例与后端服务器之间直接使用客户端真实的IP地址通信，通过后端服务器的日志记录便可获取客户端的真实IP。
- 七层协议监听器（HTTP/HTTPS）默认支持"获取客户端IP"功能，即支持通过X-Forwarded-For字段传递客户端的真实IP，X-Forwarded-For字段记录的第一个IP地址即为客户端真实IP。
- TLS监听器不支持"获取客户端IP"功能，您可以开启Proxy Protocol功能来获取客户端真实IP。
- QUIC监听器的"获取客户端IP"功能开关实际不生效。
 
#### 注意事项
监听器支持"获取客户端IP"功能后：
- 不支持同一台服务器既作为后端服务器又作为客户端的场景。如果后端服务器和客户端使用同一台服务器，且开启"获取客户端IP"，则后端服务器会根据报文源IP为本地IP判定该报文为本机发出的报文，无法将应答报文返回给ELB，最终导致回程流量不通。

- 后端服务器发生迁移时，可能出现流量中断（例如单向数据传输和推送信息类的业务场景）。后端服务器迁移完成后，需要通过报文重传来恢复流量。
 
#### 四层监听获取客户端真实IP
部分特殊场景，四层监听器的"获取客户端IP"功能失效，您可以参考[表1]。
更多详情，您可以参考[在四层独享型ELB转发下获取客户端真实IP](https://support.huaweicloud.com/bestpractice-elb/elb_bp_1014.html)。
 表1四层监听获取客户端真实IP方法总结 
| 监听器      | "获取客户端IP"功能 | "获取客户端IP"功能失效场景                                                                                                                                                                                 | 其他方法                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|:---|
| TCP监听器    | 支持          | - 与IP类型后端通信。  - 开启IPv4/IPv6地址转换开关后，客户端IP地址发生转换。                  | - 通过[TOA插件](https://support.huaweicloud.com/usermanual-elb/elb_06_0001.html)获取客户端真实IP（仅支持IPv4场景）  - [通过ProxyProtocol协议获取客户端真实IP](https://support.huaweicloud.com/bestpractice-elb/elb_bp_1014.html#section5)   说明： TCP监听器的Proxy Protocol功能陆续上线中，已发布区域请以控制台实际为准。如果您有使用需求，可以提交[工单](https://console.huaweicloud.com/ticket/?agencyId=ed9de0b5e3ac4322a529ac43e44d3872&locale=zh-cn#/ticketindex/serviceTickets)进行申请。 |
| UDP监听器 | 支持           | - 与IP类型后端通信。  - 开启IPv4/IPv6地址转换开关后，客户端IP地址发生转换。   | 不涉及                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| TLS监听器  | 不支持         | 不涉及                                                                                                                                                                                             | [通过ProxyProtocol协议获取客户端真实IP](https://support.huaweicloud.com/bestpractice-elb/elb_bp_1014.html#section5)                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
#### 七层监听获取客户端真实IP
您需要对后端服务器进行配置，确保服务器可以正确解析X-Forwarded-For字段以获取客户端的真实IP。
X-Forwarded-For字段格式如下：
```
X-Forwarded-For: <请求客户端真实IP, 代理服务器1-IP, 代理服务器2-IP, ...>
```
使用此方式获取客户端真实IP时，获取的第一个IP地址就是客户端真实IP。
更多详情，您可以参考[在七层独享型ELB转发下获取客户端真实IP](https://support.huaweicloud.com/bestpractice-elb/elb_bp_0600.html)。
#### 相关文档
- 在控制台添加以下监听器时："获取客户端IP"功能开关默认打开，且不支持关闭。
  - 网络型：[添加TCP监听器](https://support.huaweicloud.com/usermanual-elb/elb_ug_jt_0006.html)、[添加UDP监听器](https://support.huaweicloud.com/usermanual-elb/elb_ug_jt_0007.html)、[添加后端为QUIC协议的UDP监听器](https://support.huaweicloud.com/usermanual-elb/elb_ug_jt_0018.html)。
  
  - 应用型：[添加HTTP监听器](https://support.huaweicloud.com/usermanual-elb/elb_ug_jt_0008.html)、[添加HTTPS监听器](https://support.huaweicloud.com/usermanual-elb/elb_ug_jt_0009.html)。
   
- [创建监听器](https://support.huaweicloud.com/api-elb/CreateListener.html)接口：transparent_client_ip_enable只支持设置为true，默认支持获取客户端IP功能。
 
