AWS VPC Flow Logs 怎么排查网络问题?ACCEPT、REJECT 与日志边界

用网卡、时间窗口和五元组定位 ACCEPT、REJECT、NODATA 与 SKIPDATA,再结合安全组、NACL 和应用日志完成闭环。

深入讲解 AWS VPC Flow Logs 的采集范围、字段含义、CloudWatch Logs Insights 查询、投递异常和网络故障判断边界。

VPC Flow Logs 能证明某个网络接口在聚合窗口内记录到哪些 IP 流量及处理结果,但它不是实时抓包。ACCEPT 后仍需检查监听端口和应用,REJECT 后要按方向核对安全组与网络 ACL。

AWS 故障请求、目标 ENI、VPC Flow Logs 与后续定位的图文排障链路
用网卡、时间窗口和五元组定位 ACCEPT、REJECT、NODATA 与 SKIPDATA,再结合安全组、NACL 和应用日志完成闭环。

先给结论

VPC Flow Logs 能证明某个网络接口在聚合窗口内记录到哪些 IP 流量及处理结果,但它不是实时抓包。ACCEPT 后仍需检查监听端口和应用,REJECT 后要按方向核对安全组与网络 ACL。

先找到真正承载流量的 ENI

EC2、负载均衡、NAT Gateway、RDS 等资源最终都通过网络接口产生流量。排障前记录目标资源、区域、ENI、源目标地址、协议、端口和 UTC 时间,避免只按实例名称搜索。

单台实例临时排障可在 ENI 范围采集,长期审计可选子网或 VPC。范围越大噪声与存储费用越高,应通过字段、保留期和查询规则控制成本。

ACCEPT 和 REJECT 的边界

ACCEPT 表示记录点相关控制允许该流量,不代表应用一定监听、TLS 一定成功或后端一定返回 200。此时应检查 ss、应用日志、负载均衡访问日志和返回路径。

REJECT 表示流量在相关规则处被拒绝。需要结合方向、源目标、端口、TCP flags 以及 ENI 所属资源,逐项核对安全组和 NACL。NACL 无状态,入站允许但回程临时端口未放行仍会失败。

NODATA 与 SKIPDATA 不能混为一谈

NODATA 表示聚合窗口内没有记录,可能是客户端未真正发起、时间或 ENI 选错。SKIPDATA 表示部分记录未被采集,AWS 文档说明内部容量或错误等情况可能造成跳过。

Flow Logs 创建后需要几分钟开始采集和投递,不是实时流。刚创建后立即无日志,应先确认状态、目标和是否真实产生流量,再判断配置失败。

用 Logs Insights 缩小范围

在 CloudWatch Logs 中应先限制短时间窗口,再按 interfaceIdsrcAddrdstAddrdstPortaction 过滤。先查特定故障请求,不要直接扫描全部历史日志。

查询结果要与客户端和服务端时钟对齐。NAT、负载均衡和代理可能改变可见地址,因此需要沿实际链路分别核对前端 ENI、后端 ENI 和对应访问日志。

流日志没有覆盖哪些内容

AWS 明确说明 Flow Logs 不记录全部 IP 流量,例如部分到 Amazon DNS、实例元数据、时间同步、DHCP 和 ARP 的流量不在常规记录内。它也不包含数据包正文。

排查 DNS、HTTP 状态、TLS、重传顺序或应用负载时,应使用 Resolver 查询日志、访问日志、系统指标或受控抓包。不要用 Flow Logs 中“没有记录”证明请求绝对没有发生。

投递失败与完成验证

Flow Log 显示 Access error 时检查发布角色与信任关系;目标为 S3 时核对桶 ARN 和策略;出现 Rate limited 或 SkipData 时记录时间窗口并评估日志完整性。

修复网络后,从原客户端重新发起同一请求,确认 Flow Logs 状态、目标端口响应和应用结果一致。只有网络记录与业务验证闭环,才算完成。

排查与验收表

检查层级重点证据下一步判断
REJECTENI、方向、五元组、安全组/NACL修正规则后原路径复测
ACCEPT连接建立、监听、返回路径转向系统和应用层
NODATA采集范围、时间、真实流量确认 ENI 与等待投递
SKIPDATAlog-status 与投递状态不能据此否定流量

操作边界

生产环境变更前必须记录资源 ID、时间窗口、影响范围和回退方法。命令示例需要按实际接口、区域和实例替换参数;涉及重启、迁移、网络规则或日志费用时,先在最小范围验证。

CloudWatch Logs Insights 查询方法

先把时间范围限制在故障前后几分钟,再选择实际 Flow Logs 日志组。查询字段应包含 interfaceIdsrcAddrdstAddrdstPortactionpacketsbyteslogStatus,并用真实源地址和端口过滤。

结果为 ACCEPT 时继续检查目标监听、返回路径和应用;结果为 REJECT 时按 ENI、方向和规则核对。没有结果时先确认时间、区域、ENI、字段格式和日志投递状态。自定义日志格式可能使用不同字段,不能照搬默认查询。

避免查询产生无效成本

查询前缩短时间范围并选择具体日志组,不要每天扫描全部历史数据。长期保留应明确用途和周期;删除 Flow Log 只停止新记录,不会自动删除已经投递到 CloudWatch Logs 或 S3 的数据。

官方资料

AWS 教程AWS CloudShell 显示账户验证中怎么办?已验证仍无法创建环境的排查2026-09-15AWS 教程AWS EBS 卷卡在 attaching 怎么排查?可用区、挂载限制与设备识别2026-09-01AWS 教程AWS CloudTrail 怎么查操作记录?Event history、Trail 与审计边界2026-08-28

加入开发者交流社区

与全球开发者、运维和工作室一起交流技术、分享经验、配置、账号与最新优惠信息

  • 云平台使用交流
  • 资源优惠信息
  • 最新教程与资讯
  • 开发者经验分享
联系 Telegram 客服
加入开发者交流社区