文档首页/ 虚拟私有云 VPC/ 用户指南(巴黎区域)/ 常见问题/ 安全类/ 为什么配置的安全组规则不生效?
更新时间:2024-03-05 GMT+08:00

为什么配置的安全组规则不生效?

问题描述

为弹性云服务器配置的安全组规则未生效。

排查思路

以下排查思路根据原因的出现概率进行排序,建议您从高频率原因往低频率原因排查,从而帮助您快速找到问题的原因。

如果解决完某个可能原因仍未解决问题,请继续排查其他可能原因。

图1 排查思路
表1 排查思路

可能原因

处理措施

安全组配置错误

解决方法请参考安全组配置错误

网络ACL规则与安全组规则冲突

解决方法请参考网络ACL规则与安全组规则冲突

安全组配置错误

当安全组规则配置有误时,无法按照规划的安全组规则对云服务器进行保护。您可以按照以下几点原因对安全组配置进行检查:

  1. 安全组规则方向设置错误,例如将需要在入方向添加的规则添加到出方向规则下。
  2. 安全组规则协议类型未选择正确。
  3. 对应端口为高危端口,在部分地区部分运营商无法访问,建议您修改敏感端口为其他非高危端口来承载业务。
  4. 对应端口未开通。您可以根据以下步骤检查对应端口在服务器中是否被正常监听。

    假设您在弹性云服务器上部署了网站,希望用户能通过TCP(80端口)访问到您的网站,您添加了一条入方向规则,如表2所示。

    表2 安全组规则示例

    方向

    协议端口

    源地址

    入方向

    自定义TCP: 80

    0.0.0.0/0

    Linux弹性云服务器

    执行以下步骤,在Linux弹性云服务器上验证该安全组规则是否生效。

    1. 登录弹性云服务器。
    2. 执行以下命令,查看TCP 80端口是否被监听。

      netstat -an | grep 80

      若回显类似图2,说明TCP 80端口已开通。

      图2 Linux TCP 80端口验证结果
    3. 打开浏览器,在地址栏里输入“http://弹性云服务器的弹性IP地址”。

      如果访问成功,说明安全组规则已经生效。

    Windows弹性云服务器

    Windows弹性云服务器上验证该安全组规则是否生效的步骤如下所示。

    1. 登录弹性云服务器。
    2. 通过“开始菜单 > 运行 > cmd”,打开命令执行窗口。
    3. 执行以下命令,查看TCP 80端口是否被监听。

      netstat -an | findstr 80

      若回显类似图3,说明TCP 80端口已开通。

      图3 Windows TCP 80端口验证结果
    4. 打开浏览器,在地址栏里输入“http://弹性云服务器的弹性IP地址”。

      如果访问成功,说明安全组规则已经生效。

  5. 云服务器属于不同的VPC。安全组需在网络互通的情况下生效。若云服务器属于不同VPC,但同属于一个安全组,此时云服务器不能互通。您可以使用对等连接等产品建立VPC连接互通,安全组才能对不同VPC内云服务器的流量进行访问控制。VPC连接请参见。

网络ACL规则与安全组规则冲突

安全组对弹性云服务器进行防护,网络ACL对子网进行防护。

例如当您设置了安全组入方向规则放通80端口,同时设置的网络ACL规则包含拒绝80端口的规则,那么此安全组规则不生效。