# 共享型ELB获取客户端真实IP
#### 操作场景
一般情况下，共享型ELB会使用100.125网段的IP和后端服务器进行通信。如果您想要获取客户端的真实IP，您可以开启"获取客户端IP"功能，此时，ELB和后端服务器之间直接使用真实的IP进行通信。
目前，共享型负载均衡对"获取客户端IP"功能的支持情况如[表1]。
 表1共享型负载均衡"获取客户端IP"功能说明 
| 监听器类型            | 开启"获取客户端IP" | 关闭"获取客户端IP" |
|:---|:---|:---|
| 四层（TCP/UDP）监听器   | √          | √           |
| 七层（HTTP/HTTPS）监听器 | 默认开启      | ×            |
   
#### 约束与限制
- 开启/关闭"获取客户端IP"的过程中，如果监听器已经添加了后端服务器，则访问监听器的流量会中断，中断时间为10秒（后端服务器组配置的健康检查间隔\*2）。
- 开启"获取客户端IP"之后，不支持同一台服务器既作为后端服务器又作为客户端的场景。如果后端服务器和客户端使用同一台服务器，且开启"获取客户端IP"，则后端服务器会根据报文源IP为本地IP判定该报文为本机发出的报文，无法将应答报文返回给ELB，最终导致回程流量不通。
- 如果监听器之前已经添加了后端服务器、并且开启了健康检查功能，开启"获取客户端IP"功能会重新上线后端服务器，新建流量会有1-2个健康检查间隔的中断。
- 开启此功能后，执行后端服务器迁移任务时，可能出现流量中断（例如单向下载、推送类型的流量）。所以后端服务器迁移完成后，需要通过报文重传来恢复流量。
 
#### 开启"获取客户端IP"
![](https://support.huaweicloud.com/usermanual-elb/public_sys-resources/caution_3.0-zh-cn.png)
开启"获取客户端IP"功能后，您还需设置后端服务器的安全组、网络ACL、操作系统和软件的安全规则，使客户端的IP地址能够访问后端服务器。
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 在弹性负载均衡列表页面，单击需要修改监听器的负载均衡名称，进入监听器列表页。
3. 您可以通过以下两种操作入口，开启监听器的"获取客户端IP"功能。
   - 在目标监听器所在行的"操作"列，单击"编辑"。
   
   - 单击目标监听器名称，进入监听器的基本信息页面，单击"编辑监听器"。
    
4. 在"编辑监听器"弹窗页面，开启"获取客户端IP"开关。
5. 确认相关信息，单击"确定"。
 
#### 关闭"获取客户端IP"
1. 进入[弹性负载均衡列表页面](https://console.huaweicloud.com/vpc/?locale=zh-cn#/elb/list)。
2. 在弹性负载均衡列表页面，单击需要修改监听器的负载均衡名称，进入监听器列表页。
3. 您可以通过以下两种操作入口，关闭监听器的"获取客户端IP"功能。
   - 在目标监听器所在行的"操作"列，单击"编辑"。
   
   - 单击目标监听器名称，进入监听器的基本信息页面，单击"编辑监听器"。
    
4. 在"编辑监听器"弹窗页面，关闭"获取客户端IP"开关。
5. 确认相关信息，单击"确定"。
 
#### 其他获取客户端真实IP方法
负载均衡的监听器还可通过如下补充方法获取客户端的真实IP，详情见[表2]。
 表2共享型负载均衡获取客户端真实IP补充方法 
| 监听器类型           | 获取客户端真实IP补充方法                                                                     |
|:---|:---|
| 四层（TCP）监听器       | 配置[TOA插件](https://support.huaweicloud.com/usermanual-elb/elb_06_0001.html)获取。     |
| 七层（HTTP/HTTPS）监听器 | [七层服务获取客户端IP](https://support.huaweicloud.com/elb_faq/elb_faq_0090.html#section1)。 |
   
