文档

Windows实例通过外部访问网络不通的处理

更新时间:

本文介绍Windows实例不能正常通过外部网络访问的处理方法。

问题描述

Windows系统的ECS实例不能正常通过外部网络访问。

可能原因

用户从外部访问Windows实例时,发现无法ping通、无法访问业务、或者无法telnet到业务监听的端口。从公网客户端访问到阿里云ECS会经过多跳网络链路,此类网络不通有非常多的可能原因,此处介绍如下几种可能。

  • 公网客户端的自身网络问题。

  • 公网ISP运营商的管控。

  • 公网客户端访问的异常行为触发Windows实例的安全组策略导致网络管控。

  • Windows实例安全组的错误配置。

  • Windows实例账号欠费。

  • Windows实例系统性能问题。

  • Windows实例上业务服务未监听或者服务状态异常。

  • Windows实例上防火墙的限制。

  • Windows实例安装的三方杀毒软件的限制。

  • Windows实例被病毒、木马影响。

  • Windows实例TCP/IP协议栈自身Bug或者兼容性问题导致。

  • Windows实例安装了路由与远程服务后,配置错误。

  • Windows实例路由表、网络配置错误。

解决方案

根据以上问题原因,此处分别介绍通过逐步排查和抓网络包分析两种处理方法。

方案一:逐步实践排查

请根据实际情况,选择以下合适的排查步骤:

  • 在云安全中心中检查该ECS实例状态,确认其状态正常。

  • 检查是否针对特定网段的网络不通。如果是,可能与运营商管控有关。

  • 使用ipconfig all命令检查网卡配置是否正确。在运行中,输入ncpa.cpl打开网络共享与管理中心,检查网卡状态是否正常收发。

  • 使用route print命令检查Windows实例路由表,查看Active路由中是否配置正确。

  • 通过nslookupping命令检查是否有DNS解析问题。 更多信息,请参见在ECS实例的Windows服务器PING外网提示一般故障处理方法

  • 检查Windows实例是否有性能问题,如CPU资源占用高、内存耗尽、带宽占用满、网络动态端口耗尽。更多信息,请参见Windows系统内存分析工具的介绍

  • 检查Windows实例安全组是否有配置错误,更改安全组配置允许所有网络通信进行测试。

  • 尝试禁用Windows实例中防火墙策略,检查是否可以通信。如果禁用后可以通信,请检查防火墙策略配置。

  • 尝试禁用或者卸载Windows实例中第三方杀毒软件,检查问题是否仍然存在。

  • 请运行Windows Update程序,安装最新版本的补丁,排除操作系统TCP/IP协议栈自身问题。

  • 通过如下命令,检查Windows实例上运行的服务对应端口是否有在正确监听。

    netstat -ano | findstr [$Prot]
    说明

    [$Prot]为需要查看的端口号。

  • 在Windows实例上依次执行如下命令,尝试禁用Windows实例的TCP Chimney、RSS和IP Offload等高级功能来排除网卡兼容性问题。

    说明

    通过管理员权限打开Windows实例命令行。

    netsh int tcp set global chimney=disabled
    netsh int tcp set global RSS=disabled
    netsh int ip set global taskoffload=disabled
    netsh int tcp set global ecncapability=disabled                #仅对Windows Server 2012操作系统版本有效
    说明
    • 上述命令执行的功能,只是为Windows实例的系统提高性能与网卡硬件协同提供的高级功能,禁用后不会对系统有影响,后无需重启实例或系统。如果需要恢复默认设置,请替换以上命令的disabledenabled,并再次执行即可。

    • Windows Server 2012引入的新功能ECN(Explicit Congestion Notification)根据RFC规定来减少网络包重传的机制,但是由于中国内地某些ISP封杀此类的SYN包,导致目标机器无法收到带有ECN标志的SYN包,Windows机器在发送2次ECN包没有得到响应后(第一次重传3秒,第二次重传6秒),会采用没有ECN标志位的SYN包,后续可以连接成功。如果遇到很久才能建立公网访问连接的情况,请禁用该功能后测试。

  • 使用Route Print命令检查Windows实例的路由表,查看Active路由中是否配置正确,检查与网关通信是否正常。

方法二:网络抓包分析

通过Wireshark工具进行网络抓包分析,分别在客户端、阿里IDC入口处和Windows实例三个抓包点,进行抓取网络包,并提交全部抓取的网络包给阿里云技术支持分析,包括客户端MTR到Windows实例的输出结果和Windows实例MTR到客户端的输出结果,也一并提交阿里云技术支持。关于Wireshark工具的使用说明,请参考其官方文档。抓包点图例分析如下。

  • 本页导读 (1)
文档反馈