文档

访问ECS实例异常时的问题排查和指引

更新时间:

本文主要介绍通过私网或本地公网访问ECS实例上相关业务时,整个链路中可能引发访问异常的关联因素及可能导致的症状、访问异常时的相关排查方案等内容。

背景信息

在通过私网或本地公网访问ECS实例时可能会引发访问异常,本文介绍出现问题的关联因素及可能导致的症状、排查方案和对异常问题进行测试并记录测试结果的方法,具体内容如下:

说明

本文暂不考虑阿里云CDN或第三方CDN网络相关因素的影响。

ECS访问异常关联因素及可能导致的症状

  • 从客户端到服务端的整个链路上,可能引发访问异常的关联因素示意图如下:

  • 关联因素可能导致的症状如下:

ECS实例访问异常关联因素说明

通过私网访问异常时关联因素说明

如果客户端是通过私网访问ECS实例,则其链路相对简单。可能引发访问异常的因素及导致的客户端症状如下:

  • 源服务器内部配置

    • 关联因素说明:

      源服务器内部防火墙、安全软件等安全策略,或系统中毒等操作系统内部问题导致访问异常。

    • 可能症状及原因如下 :

      • ping丢包:源服务器中毒等操作系统内部问题导致网络异常。

      • ping不通:源服务器系统内安全软件等安全策略禁止ping。

      • 所有端口telnet都不通:源服务器中毒等操作系统内部问题导致网络异常。

      • 只有部分端口telnet不通:源服务器系统内安全软件等安全策略禁止了对部分端口的访问。

  • 源服务器安全组配置

    • 关联因素说明:

      源服务器归属安全组规则阻断了对目标服务器的访问。

    • 可能症状及原因如下:

      • ping不通:源服务器出方向配置了禁止ping的规则。

      • 所有端口telnet都不通:源服务器出方向为所有端口配置了drop规则。

      • 只有部分端口telnet不通:源服务器出方向为指定端口配置了drop规则。

  • 负载均衡白名单

    • 关联因素说明:

      如果目标服务器是负载均衡,则相应监听端口开启白名单后,只有指定的IP地址或IP地址段地址才能对其访问。

    • 可能症状及原因如下:

      只有部分端口telnet不通,即源服务器IP地址不在白名单之内,导致无法访问相应监听端口。

  • 目标服务器安全组配置

    • 关联因素说明:

      目标服务器归属安全组规则阻断了源服务器的访问。

    • 可能症状及原因如下 :

      • ping不通:目标服务器入方向配置了禁止ping的规则。

      • 所有端口telnet都不通:目标服务器入方向为指定端口配置了drop规则。

      • 只有部分端口telnet不通:目标服务器入方向为所有端口配置了drop规则。

  • 目标服务器内部配置

    • 关联因素说明:

      目标服务器内部防火墙、安全软件等安全策略,或系统中毒等操作系统内部问题导致访问异常。

    • 可能症状及原因如下:

      • ping丢包:目标服务器中毒等操作系统内部问题导致访问异常。

      • ping不通:目标服务器系统内安全软件等安全策略禁止ping。

      • 所有端口telnet都不通:目标服务器中毒等操作系统内部问题导致访问异常。

      • 只有部分端口telnet不通:目标服务器系统内安全软件等安全策略禁止了对部分端口的访问。

通过公网访问异常时关联因素说明

如果客户端通过公网访问ECS实例,则涉及的关联因素较多,主要关联因素如下:

客户端网络环境

对于客户端网络环境,可能引发访问异常的因素及导致的客户端症状如下:

  • 用户本地网络

    • 关联因素说明:

      如果用户本地网络存在异常,可能会导致部分IP地址或所有IP地址无法正常访问。

    • 可能症状及原因如下:

      目标服务器无法访问,其它非阿里云的IP地址也无法访问。

  • 本地DNS劫持

    • 关联因素说明:

      用户本地网络或当地运营商有DNS劫持行为,导致访问目标服务器关联业务时,出现非正常跳转或者被插入广告。

    • 可能症状及原因如下:

      • 非正常跳转:DNS劫持导致访问目标服务器关联业务时,跳转到了其它无关联网站。

      • 被插入广告:DNS劫持导致访问目标服务器关联业务时,页面被插入广告。

运营商网络环境

对于运营商网络环境,可能引发访问异常的因素及导致的客户端症状如下:

  • 运营商网络策略

    • 关联因素说明:

      运营商根据其策略,可能会进行DNS劫持,或阻断某些IP、域名或端口的访问。

    • 可能症状及原因如下:

      • 被插入广告:DNS劫持导致访问目标服务器关联业务时,页面被插入广告。

      • 域名无法访问但IP地址访问正常:运营商对某些违规域名的访问做了阻断。

      • 所有端口telnet都不通:运营商对某些违规IP地址的访问做了阻断。

      • 只有部分端口telnet不通:运营商对某些高危端口的访问做了阻断。

  • 备案

    • 关联因素说明:

      对于境内服务器,根据行政管控要求,需要进行备案。

    • 可能症状及原因如下:

      • 非正常跳转:目标服务器关联域名未备案,导致访问关联业务时,跳转到了备案提示页面。

      • 域名无法访问但IP地址访问正常:目标服务器关联域名未备案,导致访问时,跳转到了备案提示页面,但通过IP地址访问无影响。

阿里云网络环境

对于阿里云网络环境,可能引发访问异常的因素及导致的客户端症状如下:

  • 云安全中心-肉鸡关停

    • 关联因素说明:

      目标服务器因肉鸡、中毒等问题,持续对外攻击,被云安全中心关停。

    • 可能症状及原因如下:

      • ping不通:服务器被关停导致无法ping通。

      • 所有端口telnet都不通:服务器被关停导致所有端口都不通。

  • 云安全中心-访问拦截

    • 关联因素说明:

      源服务器因持续扫描探测、攻击等行为,被云安全中心阻断。

      说明

      如果源服务器本地网络是通过NAT共享方式访问公网的,则攻击源不一定是客户自身服务器,而可能是同网络内其它服务器。由于共享相同的公网IP,导致云安全中心阻断相应IP后,源服务器的访问也受到了波及和影响。

    • 可能症状及原因如下:

      • ping不通:源服务器IP被云安全中心拦截,导致禁止ping。

      • 所有端口telnet都不通:源服务器IP被云安全中心拦截,导致所有端口都无法访问。

  • 绿网-违规屏蔽

    • 关联因素说明:

      目标服务器相关URL存在违规内容,访问被阻断。

    • 可能症状及原因如下:

      • 非正常跳转:源服务器业务异常,导致相关访问跳转到了DDoS高防或Web应用防火墙源站异常提示页面。

      • 部分URL无法访问:被Web应用防火墙规则命中的相应URL,客户端无法正常访问,会跳转到了相应的阻断提示页面。

  • DDoS高防和Web应用防火墙

    • 关联因素说明:

      目标服务器业务异常,或者源服务器相关访问行为被DDoS高防或Web应用防火墙拦截规则命中,导致访问异常。

    • 可能症状及原因如下:

      • ping不通:服务器被关停导致无法ping通。

      • 所有端口telnet都不通:服务器被关停导致所有端口都不通。

  • 负载均衡白名单

    • 关联因素说明:

      如果目标服务器是负载均衡,则相应监听端口开启白名单后,只有指定的IP或IP段地址才能对其访问。

    • 可能症状及原因:

      只有部分端口telnet不通,即源服务器IP不在白名单之内,导致无法访问相应监听端口。

  • 目标服务器安全组配置

    • 关联因素说明:

      目标服务器归属安全组规则阻断了源服务器的访问。

    • 可能症状及原因如下:

      • ping不通:目标服务器入方向配置了禁止ping规则。

      • 所有端口telnet都不通:目标服务器入方向为指定端口配置了drop规则。

      • 只有部分端口telnet不通:目标服务器入方向为所有端口配置了drop规则。

目标ECS服务器内部环境

对于目标ECS服务器的相关环境,可能引发访问异常的因素及导致的客户端症状如下:

  • 目标服务器欠费停机

    • 关联因素说明:

      目标服务器欠费停机导致无法访问。

    • 可能症状及原因如下:

      • ping不通:目标服务器欠费停机导致无法ping通。

      • 所有端口telnet都不通:目标服务器欠费停机导致所有端口无法访问。

  • 目标服务器内部配置

    • 关联因素说明:

      目标服务器内部防火墙、安全软件等安全策略,或系统中毒等操作系统内部问题导致访问异常。

    • 可能症状及原因如下:

      • ping丢包:目标服务器中毒等操作系统内部问题导致访问异常。

      • ping不通:目标服务器系统内安全软件等安全策略禁止ping。

      • 所有端口telnet都不通:目标服务器中毒等操作系统内部问题导致访问异常。

      • 只有部分端口telnet不通:目标服务器系统内安全软件等安全策略禁止了对部分端口的访问。

  • 软件源地址访问控制

    • 关联因素说明:

      目标服务器内部业务软件对源 IP 做了访问控制,导致源服务器无法访问。

    • 可能症状及原因如下:

      只有部分端口telnet不通,即相应端口对应业务软件对源IP做了访问控制,阻断了源服务器的访问。

ECS云服务器访问异常问题排查流程图

对于ECS访问异常问题,基本排查思路如下ECS服务器访问异常问题排查流程图所示。

ECS访问异常问题排查思路及处理办法

对于ECS访问异常问题,排查思路分为如下两个方面:

通过私网访问异常时排查思路

如果客户端通过私网访问,则访问异常时,可通过如下步骤进行判断、排查分析和处理。即从其它不同服务器同时访问目标服务器做对比测试,查看所有服务器访问目标服务器是否存在异常。

所有服务器访问目标服务器均存在异常

如果所有服务器访问目标服务器均存在异常, 则推断是目标服务器归属安全组或服务器内部自身存在异常所致,需要做进一步排查分析查看服务器内部访问是否正常,即通过使用管理终端连接Linux实例登录服务器,然后在服务器内部使用127.0.0.1做对比访问测试,查看服务器内部是否正常。

  • 目标服务器内部访问存在异常

    如果目标服务器内部访问也存在异常,则需要联系业务提供商或者业务运维人员,检查代码配置、软件运行状态。

  • 目标服务器内部访问正常

    • 如果服务器内部访问是正常的,则需要检查目标服务器归属安全组和操作系统内相关安全软件的安全配置,排查是否对源服务器做了阻断。安全组的常见使用问题,请参见安全组FAQ

    • 如果排查分析安全组和操作系统内安全软件配置后,均未见明显异常,则请参见网络异常时抓包操作说明,在出现异常时,从客户端和服务端同时并发抓包,然后提交工单联系阿里云技术支持,提交抓包结果。

只有源服务器访问目标服务器存在异常。

如果只有源服务器访问存在异常,则推断是源服务器归属安全组、服务器内部自身存在异常或源服务器到目标服务器之间的网络存在异常所致。需要做进一步排查分析查看telnet端口测试是否正常,即从源服务器访问目标服务器是否只是ping不通而端口访问正常。

  • 源服务器ping不通目标服务器,但telnet端口测试正常

    如果只是ping不通,但端口访问正常,则需要检查目标服务器归属安全组和操作系统内相关安全软件的安全配置,是否对源服务器做了禁止ping。安全组的常见使用问题,请参见安全组FAQ

  • 源服务器到目标服务器的telnet及ping测试均异常

    如果telnet端口及ping测试均有异常,则需要进一步排查。从源服务器内部ping自身网关,查看是否正常。

    • 源服务器ping自身网关异常。

      如果源服务器ping自身网关也存在异常,例如ping不通或ping丢包,则需要通过系统日志等检查源服务器自身运行状态,比如服务器负载、网络配置等。

    • 源服务器ping自身网关正常。

      如果源服务器ping自身网关正常,则需要进一步排查。从源服务器内部ping目标服务器网关,查看看是否正常。

      • 源服务器ping目标网关正常。

        如果源服务器ping自身网关和目标服务器网关都正常,则需要通过系统日志等检查目标服务器自身运行状态,比如服务器负载、网络配置等。

      • 源服务器ping目标网关也不正常。

        如果源服务器ping自身网关正常,但ping目标服务器网关存在异常,即ping不通或丢包,则判断可能是中间网络异常所致。则请参见网络异常时抓包操作说明,在出现异常时,从客户端和服务端同时并发抓包,然后提交工单联系阿里云技术支持,提交抓包结果。

通过公网访问异常时排查思路

如果客户端通过公网访问,则访问异常时,可通过如下步骤进行判断、排查分析和处理。

  1. URL访问问题判断:当客户端访问目标服务器业务时,是否出现了页面被插入广告的情况。

    • 页面被插入广告

      如果是页面被插入广告情况,则需要检查系统内部访问是否正常,即通过使用管理终端连接Linux实例登录服务器,在服务器内部使用127.0.0.1做对比访问测试,查看是否正常。

      • 目标服务器系统内部访问也存在异常。

        如果目标服务器内部访问也存在异常,则需要联系业务提供商或者业务运维人员,检查代码配置、软件运行状态。

      • 目标服务器系统内部访问正常。

        如果目标服务器内部访问正常,则判断是由于本地网络异常或者本地运营商劫持所致。用户可以尝试修改本地DNS服务器地址,查看问题能否解决。如果还有问题,建议联系本地网络部门排查分析,或向当地运营商进行问题反馈。

    • 页面没有被插入广告

      如果不是页面被植入广告问题,则需要查看客户端访问目标服务器业务时,相关URL是否出现了非正常跳转。

      • 页面出现了非正常跳转。

        如果是页面出现了非正常跳转,则通过使用管理终端连接Linux实例,然后在服务器内部使用127.0.0.1做对比访问测试,查看是否正常。

        • 目标服务器系统内部访问也存在异常。

          如果目标服务器内部访问也存在异常,则需要联系业务提供商或者业务运维人员,检查代码配置、软件运行状态。

        • 目标服务器系统内部访问正常。

          如果目标服务器内部访问正常,则可以根据跳转到的页面做进一步处理:

      • 页面没有出现非正常跳转

        如果不是页面非正常跳转问题,则参见后续步骤进一步排查分析。

  2. 问题范围判断:如果不是URL访问异常问题,则需要通过对比分析确定问题范围。即通过第三方拨测平台,从全国各地做对比访问测试,判断是否所有网络访问目标服务器都存在同样异常。

    • 所有网络访问均存在异常

      如果经过测试,所有外部网络访问均存在异常,则通过使用管理终端连接Linux实例,在服务器内部使用127.0.0.1做对比访问测试,查看是否正常。

      • 目标服务器系统内部访问也存在异常。

        如果目标服务器内部访问也存在异常,则需要联系业务提供商或者业务运维人员,检查代码配置、软件运行状态。

      • 目标服务器系统内部访问正常

        如果目标服务器内部访问正常,则需要检查目标服务器安全组及系统内安全配置,是否对源服务器的访问做了限制。安全组的常见使用问题,请参见安全组FAQ

    • 只有源服务器访问目标服务器存在异常

      如果只有源服务器访问存在异常,则参见后续步骤进一步排查分析。

  3. 问题现象判断:如果只有源服务器访问存在异常,则需要通过ping或telnet等测试做进一步排查分析。即在客户端ping目标服务器IP地址,查看是否正常。

    • 能ping通目标服务器

      如果客户端ping目标服务器丢包或不通,则可能是中间链路或对端服务器存在异常所致,则需要通过MTR链路测试做进一步排查分析。链路测试操作说明,请参见ping丢包或不通时链路测试说明

    • 能ping通目标服务器,但是端口访问不通

      如果ping目标服务器正常,但是端口访问不通,则查看目标服务器归属安全组或系统内部安全设置,确认是否有策略阻断了客户端对相应端口的访问。

      • 目标服务器阻断了客户端对某些端口的访问。

        如果确认有对源服务器的阻断策略,则需要进行相应调整。安全组的常见使用问题,请参见安全组FAQ

      • 目标服务器没有阻断策略。

        如果目标服务器没有针对源服务器的阻断策略,则可能是被运营商拦截所致,则需要通过tracetcp等工具对端口阻断情况做进一步跟踪分析。端口可用性探测说明,请参见能ping通ECS实例但端口不通的排查方法

ECS访问异常问题工单提交须知

如果您在上述排查操作中,需要进行相关的测试并记录测试结果,则您可以参考如下操作:

客户端通过私网进行访问

如果客户端是通过私网进行访问的,则请参见如下步骤依次进行测试并记录测试结果:

  1. 通过不同服务器向目标服务器做相同的访问测试,查看是否有同样的异常症状。

  2. ping目标服务器IP,查看是否正常。

  3. telnet目标服务器相应端口,查看是否正常。

  4. 源服务器ping自身网关,查看是否正常。

  5. 目标服务器ping自身网关,查看是否正常。

  6. 源服务器ping目标服务器网关,查看是否正常。

  7. 目标服务器ping源服务器网关,查看是否正常。

  8. 根据实际情况确认是否要进行抓包,当需要抓包时,请参见网络异常时抓包操作说明,在出现异常时从源服务器和目标服务器抓包。

客户端通过公网进行访问

如果客户端是通过公网进行访问的,则请参见如下步骤依次进行测试并记录测试结果:

  1. 从不同地域不同网络环境,向目标服务器做同样的访问测试,查看是否存在同样的异常症状。

  2. 查看异常情况是否是页面被插入广告。

  3. 查看异常情况是否是页面出现了异常跳转。

  4. 在客户端ping目标服务器,查看是否正常。

    如果ping存在异常,例如丢包或中断,则参见ping丢包或不通时链路测试说明进行测试,并记录测试数据。

  5. 在客户端telnet目标服务器相应业务端口,查看是否正常。

    如果ping正常,但端口无法访问,则能ping通ECS实例但端口不通的排查方法。进行测试,记录测试数据。

  6. 根据实际情况确认是否要进行抓包,当需要抓包时,请参见网络异常时抓包操作说明,在出现异常时从源服务器和目标服务器抓包。