问题描述

使用负载均衡SLB后,客户端无法访问负载均衡SLB。

解决方案

本文中出现的端口和IP都是演示环境参数值,当排查客户端无法访问负载均衡问题时,请根据实际情况配置端口和内网IP信息。

序号 问题原因 处理方法
1 对于四层监听的后端服务器无法访问SLB问题,是由于目前负载均衡不支持同时作为客户端和服务端。 -
2 健康检查异常。 健康检查异常时请参见负载均衡SLB健康检查出现异常的解决方法
3 不支持通过负载均衡SLB搭建FTP、TFTP、H323和SIP等

针对FTP服务,可以通过参考以下步骤解决问题:

  • 如果是Linux系统,您可以尝试配置22端口的转发,使用SFTP连接并传输数据。
  • 支持通过EIP可见模式将EIP绑定到FTP服务器上,对外提供FTP服务,配置详情请参见使用EIP部署FTP服务器
4 服务器内网防火墙设置没有放行80端口。 可以参考以下步骤,暂时关闭防火墙:
  • Windows服务器上执行以下命令。
    firewall.cpl
  • Linux服务器上执行以下命令。
    /etc/init.d/iptables stop
5 后端端口异常。

参考以下步骤,确认问题。然后根据实际情况解决此问题:

  • 对于四层负载均衡来说,使用telnet命令测试有响应即为正常,命令如下所示。
    telnet 10.XX.XX.1 80
  • 对于七层负载均衡来说,HTTP状态码需要是200等代表正常的状态码,检验方法如下:
    • Windows:直接在ECS实例上访问ECS的内网IP,测试是否正常,命令如下所示。
      http://10.XX.XX.1
    • Linux:参考以下命令,查看返回值是否为HTTP/1.1 200 OK
      curl -I 10.XX.XX.1
6 rp_filter特性和负载均衡底层LVS的策略路由产生冲突,导致访问出现异常。
  1. 登录四层负载均衡后端添加的Linux系统ECS实例。
  2. 编辑/etc/sysctl.conf文件,将系统配置文件中的以下三个参数值设置为0
     net.ipv4.conf.default.rp_filter = 0
     net.ipv4.conf.all.rp_filter = 0
     net.ipv4.conf.eth0.rp_filter = 0
  3. 然后执行sysctl -p命令,使配置生效。
7 监听功能异常。
在服务器上执行以下命令,如果能看到10.XX.XX.1:80的监听信息,或者0.0.0.0:80的监听信息,说明端口的监听正常。然后根据实际情况解决此问题:
  • Windows服务器上执行以下命令。
    netstat -ano | findstr :80
  • Linux服务器上执行以下命令。
    netstat -anp | grep :80
8 创建负载均衡实例后,没有添加监听。 请配置监听,详情请参见配置监听
9 负载均衡通过域名访问不通,可能是用户域名解析错误导致。 -
10 客户端本地网络或运营商中间链路异常。 从不同地域和不同网络环境,对负载均衡相应服务端口进行访问测试。如果只有本地网络访问时出现异常,则判定是网络异常导致的问题,此时可以持续进行ping测试或MTR路由跟踪等手段进一步排查分析。
11 客户端IP被云盾拦截。
  1. 获取客户端网络环境对应的公网IP。
  2. 将获取的公网IP设置为白名单,该操作将公网IP至负载均衡的所有访问全部放行。
    说明:该操作可能会带来安全风险,确保白名单中的IP不会对负载均衡进行恶意攻击。
12 用户使用完高防IP之后切换回普通模式,但是未关闭访问控制白名单功能。 参见设置网站访问黑白名单,取消白名单。

适用于

  • 负载均衡SLB