云平台防火墙是分层协同体系,包含安全组(实例级有状态访问控制)和网络acl(子网级无状态边界防护),二者按“公网→网络acl→安全组→操作系统防火墙”路径依次过滤,需配合使用:安全组负责细粒度业务策略,网络acl用于粗粒度全局管控。

云平台上的防火墙配置不是只设一道关卡,而是分层协同。安全组和网络ACL各自承担不同职责,必须配合使用才能兼顾灵活性与安全性。
安全组:实例级有状态访问控制
安全组是绑定到云服务器(如ECS)实例的虚拟防火墙,作用在弹性网卡层面,属于“第一道门闸”。它默认只放行入方向明确允许的流量,出方向全部放开(有状态规则,响应包自动放行)。
- 登录云控制台(如阿里云ECS或华为云HEC),进入「安全组」管理页,新建或编辑已有安全组
- 添加入方向规则:指定协议(TCP/UDP)、端口范围(如80、443、22)、授权对象(建议用具体IP段,避免长期用0.0.0.0/0)
- 添加出方向规则(按需):例如限制实例主动外连某风险IP,或仅允许访问特定DNS服务器(UDP 53)
- 一个实例可绑定多个安全组,规则取并集;规则间无优先级,冲突时以“允许”为准
网络ACL:子网级无状态边界防护
网络ACL绑定在整个子网,管控该子网下所有实例的进出流量,是“第二道防线”。它无状态,入站和出站规则完全独立,且按编号顺序匹配,命中即停。
- 在VPC控制台中找到「网络ACL」,创建后需手动将其关联到目标子网
- 配置入方向规则时,若开放TCP 80端口,还需额外配置出方向规则:允许目的端口为1024–65535(客户端临时端口),否则HTTP响应无法返回
- 规则编号决定优先级,建议从100开始递增,留出空档便于后续插入高优规则
- 支持显式拒绝(Deny),可用于黑名单式拦截,比如阻断已知恶意IP段
两者协同的关键逻辑
流量路径是:公网 → 网络ACL(子网层)→ 安全组(实例层)→ 操作系统防火墙。任一环节拦截,请求即终止。
- 网络ACL适合做粗粒度全局策略,比如封禁某地区IP段、限制跨子网访问
- 安全组适合做细粒度业务策略,比如只允许运维IP连SSH、Web服务仅对公网开放80/443
- 不要用安全组做IP黑名单——它不支持Deny;也不要用网络ACL精细控制单个实例——它作用于整个子网
- 上线前务必验证:先开最小权限,再逐步放宽;修改后及时测试连通性(如telnet或curl)
常见误区与避坑提醒
很多配置失败,其实源于对层级关系理解偏差。
- 开了安全组80端口但网页打不开?先检查网络ACL是否也放行了80入向+对应出向临时端口
- 远程SSH失败?确认安全组22端口规则的“授权对象”填的是你当前出口IP,不是内网地址或错写成域名
- 规则生效延迟:安全组变更秒级生效;网络ACL部分平台可能有数秒延迟,勿立即判定失败
- 默认规则很关键:安全组默认拒绝所有入向;网络ACL默认拒绝所有非白名单流量(除元数据等特例)









