
# 为什么配置的安全组规则不生效？
#### 问题描述
实例（如ECS）安全组规则配置完成后，实际未生效。比如，添加的安全组规则是允许来自特定IP的流量访问安全组内实例，结果该流量还是无法访问实例。
#### 背景知识
虚拟私有云VPC是您在云上的私有网络，通过配置安全组和网络ACL策略，可以保障VPC内部署的实例安全运行，比如弹性云服务器、数据库、云容器等。
- 安全组对实例进行防护，将实例加入安全组内后，该实例将会受到安全组的保护。
- 网络ACL对整个子网进行防护，将子网关联至网络ACL，则子网内的所有实例都会受到网络ACL保护。
除了VPC提供的安全策略，通常情况下您还可以配置实例的防火墙，进一步提升实例的安全。不同安全策略配合使用的工作原理图如[图1]所示。
图1VPC安全策略   
![](https://support.huaweicloud.com/vpc_faq/zh-cn_image_0000001972689697.png "点击放大")
基于以上情况，如果您的安全组规则配置完未生效，除了安全组本身参数的配置可能有误，还有可能是不同的安全策略之间存在冲突，具体请您参考以下指导处理。
#### 操作视频
本视频介绍安全组规则配置完未生效的可能原因及排查方法。
<video controls="controls" preload="none" id="object1590525918402" class="idp-external-video" src="https://res-video.hc-cdn.com/cloudbu-site/china/zh-cn/vpc-video/1721639452605558666.mp4" title="安全组规则不生效排查方法介绍" poster="https://support.huaweicloud.com/vpc_faq/zh-cn_image_0000002404155437.jpg" style="width:100%;height:auto;max-width:600px"></video>
#### 排查思路
以下排查思路根据原因的出现概率进行排序，建议您从高频率原因往低频率原因排查，从而帮助您快速找到问题的原因。
如果解决完某个可能原因仍未解决问题，请继续排查其他可能原因。
图2排查思路   
![](https://support.huaweicloud.com/vpc_faq/zh-cn_image_0000001972689653.png "点击放大")
表1排查思路 
| 可能原因            | 处理措施                                                                |
|:---|:---|
| 安全组规则配置错误       | 解决方法请参考[安全组规则配置错误]。       |
| 网络ACL规则与安全组规则冲突 | 解决方法请参考[网络ACL规则与安全组规则冲突]。 |
| 实例防火墙限制端口访问     | 解决方法请参考[实例防火墙限制端口访问]。     |
| 实例属于不同VPC，网络不通  | 解决方法请参考[实例属于不同VPC，网络不通]。    |
   
 #### 安全组规则配置错误
当安全组规则配置有误时，无法按照规划的安全组规则对实例进行保护。您可以按照以下几点原因对安全组配置进行检查：
1. 安全组规则方向设置错误，例如将需要在入方向添加的规则添加到出方向规则下。
   安全组中包括入方向规则和出方向规则，用来控制安全组内实例的入方向和出方向的网络流量。
   - 入方向规则控制外部请求访问安全组内的实例，控制的是流入实例的流量。
    
   - 出方向规则控制安全组内实例访问外部的请求，控制的是从实例流出的流量。
    
2. 安全组规则协议类型未选择正确。 网络协议即匹配流量的协议类型，支持TCP、UDP、ICMP和GRE协议，请正确选择安全组规则协议类型。
   
3. 添加的端口是高危端口，对于运营商判断的高危端口，这些端口默认被屏蔽，在受限区域无法访问，此时建议您将端口修改为其他非高危端口。 常用端口说明及高危端口请参考[弹性云服务器常用端口](https://support.huaweicloud.com/usermanual-vpc/SecurityGroup_0002.html)。
   
4. 实际未开通业务所需的端口。 在安全组规则中放开某个端口后，您还需要确保实例（如ECS）内对应的端口也已经放通，安全组规则才会对实例生效。
   请参考[添加安全组规则](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0030969470.html)中的"检查安全组规则是否生效"小节，检查ECS内端口开放情况，并验证配置是否生效。
   
当找到问题原因后，您可以参考[添加安全组规则](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0030969470.html)或[修改安全组规则](https://support.huaweicloud.com/usermanual-vpc/vpc_SecurityGroup_0005.html)选择正确的方向或协议类型、放通需要开放的端口。
 #### 网络ACL规则与安全组规则冲突
安全组对实例（如ECS）进行防护，网络ACL对子网进行防护。网络ACL规则与安全组规则冲突时，优先匹配网络ACL规则，可能会导致安全组规则不生效。
例如当您的安全组入方向规则放通80端口，但是同时设置的网络ACL规则拒绝80端口的访问，那么流量优先匹配网络ACL规则，此安全组规则不生效。
您可以参考[添加网络ACL规则](https://support.huaweicloud.com/usermanual-vpc/zh-cn_topic_0051746702.html)或[修改网络ACL规则](https://support.huaweicloud.com/usermanual-vpc/vpc_acl_0005.html)放通对应协议端口。
 #### 实例防火墙限制端口访问
安全组和防火墙都可以对实例（如ECS）进行防护，当在安全组中开通某个端口的访问时，ECS的防火墙可能限制该端口的访问，您需要关闭防火墙，或者在防火墙配置例外端口。
您可以参考[Windows云服务器怎样关闭防火墙、添加例外端口？](https://support.huaweicloud.com/trouble-ecs/ecs_trouble_0401.html)或[Linux云服务器怎样关闭防火墙、添加例外端口？](https://support.huaweicloud.com/trouble-ecs/ecs_trouble_0402.html)开放例外端口。
 #### 实例属于不同VPC，网络不通
安全组需在网络通信正常的情况下生效。若实例属于同一安全组，但是属于不同VPC，此时由于不同VPC网络不通，因此实例之间不能通信。
比如，您可以使用对等连接连通不同VPC网络，安全组才能对不同VPC内ECS的流量进行访问控制。VPC连接请参见[应用场景](https://support.huaweicloud.com/productdesc-vpc/overview_0002.html)。
#### 提交工单
如果上述方法均不能解决您的疑问，请[提交工单](https://console.huaweicloud.com/ticket/#/ticketindex/createIndex)寻求更多帮助。
