首页/云/云网络与负载均衡速查/网络 ACL 相关故障的定位

网络 ACL 相关故障的定位

ACL 引发的故障特征较典型:同一子网内多台实例异常、更换实例无效、抓包能看到请求但看不到回包。定位方法是先确认子网绑定的 ACL,再逐一核对入站与出站规则。

ACL 故障的典型特征

网络 ACL 作用在子网层,是无状态的三层过滤:放行入方向请求的同时,还要单独放行出方向的返回流量。它的故障特征相当典型——同一子网内的多台实例同时异常、换实例依旧不通、抓包能看到请求但看不到回包。定位顺序是先确认子网绑定了哪个 ACL,再逐条核对入站与出站规则。

基本信息

作用层级子网级,影响该子网内所有实例
状态特性无状态:出入方向要分别放行
匹配方式按规则序号从小到大匹配,命中即生效
默认规则每个新 ACL 都带允许全部流量的默认规则(编号最小)
与安全组关系两者都放行才通过,是串联关系

定位步骤

  • 确认实例所在子网关联的是默认 ACL 还是自定义 ACL
  • 检查入站规则:请求方向的端口与源网段是否放行
  • 检查出站规则:返回方向的端口段是否放行(无状态的关键)
  • 用临时放行做对照测试,确认故障是否由 ACL 引起
  • 仍未恢复则结合流日志与安全组继续排查

对照测试示例

对照测试示例
python3 -m http.server 18080 &    # 在目标机上起一个测试端口
nc -zv -w 3 <目标机IP> 18080       # 从对端验证 TCP 连通性
tcpdump -i eth0 port 18080 -c 20   # 目标机抓包:看请求到没到
iptables -L -n -v 2>/dev/null | head   # 实例内若有本地防火墙也要放行

故障特征对照

现象更可能是验证方法
同子网多台实例同时不通ACL 或子网路由问题换一台实例复测
只有单台实例异常实例本身或安全组对比同子网其他实例
请求能到、回包不到出方向被 ACL 拦截两侧抓包对照
偶发不通规则序号冲突或路由抖动查规则顺序与流日志
ACL 是无状态的:只放行入方向的请求端口不够,返回流量使用高位随机端口,出方向规则要覆盖对应范围,否则会表现为单向不通。
用于排障的临时放行规则用完应及时回收,长期留在生产环境等于持续扩大暴露面。

易错点

  • 只看入站规则就下结论,漏掉出方向,误判为「ACL 没问题」
  • 更换实例后依旧不通,说明问题在子网层(ACL 或路由),却继续在实例上找原因
  • 新建自定义 ACL 后忘记规则序号是自上而下匹配,宽松规则写在前面会让后面所有规则失效
  • 临时放行规则忘记回收,形成长期敞口,安全审计时才发现

数据来源与参考

  • 阿里云 网络 ACL 文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌