有状态与无状态行为
理解每种控制措施为何以不同方式处理返回流量。
有状态与无状态行为 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
两种模型
安全组与网络 ACL 之间最根本的区别在于状态跟踪。安全组是有状态的;网络 ACL 是无状态的。这一项特性会改变您编写规则、排查被丢弃的流量以及分析返回数据包的方式。
有状态的含义
有状态意味着防火墙会记住它允许的每个连接。当安全组允许一个入站请求时,它会通过状态表跟踪该连接,并自动允许匹配的响应向外返回。您不需要为返回流量编写规则。
无状态的含义
无状态意味着防火墙会独立评估每个数据包,而不会记住之前的数据包。允许入站请求的网络 ACL 不会自动允许响应。您必须为返回方向添加单独的规则,否则响应会被丢弃。
这对返回流量为何重要
客户端通过 443 端口连接您的 Web 服务器。服务器会从 443 端口向客户端使用的高位临时端口发送响应。使用安全组时,该响应会自动放行。使用 NACL 时,您需要为临时端口范围添加出站允许规则,否则连接会看似停滞,最终失败。
临时端口陷阱
在 NACL 出站规则中忘记配置临时端口,是最常见的无状态配置错误。请求可以到达服务器,但响应会被无提示地拒绝。对于自定义 NACL,请始终为出站响应允许相关的临时端口范围(通常为 1024–65535)。
# Outbound NACL allow for return traffic
Rule 100: TCP 1024-65535 to 0.0.0.0/0 ALLOW排查方式的差异
当流量莫名其妙地被阻止时,请检查与现象相符的层。如果连接已经建立但响应失败,请怀疑缺少临时端口规则的无状态 NACL。如果完全无法建立连接,请检查是否缺少安全组允许规则,或 NACL 是否拒绝了请求端口。
评估顺序
对于发往资源的入站流量,首先在子网边缘评估NACL,然后在 ENI 处评估安全组。对于出站流量,先检查安全组,再检查 NACL。两者都必须允许流量才能通过,因此任一层都可能无提示地阻止流量。
性能与简洁性
有状态特性让安全组更易于管理,这也是它们成为日常工具的原因。您只需描述一次意图,返回流量就能自动正常工作。无状态 NACL 需要两倍的规则数量,并且需要仔细计算端口,因此通常只在特定场景中使用。
无状态何时有帮助
无状态特性有时也是优势。由于 NACL 单独处理每个数据包,拒绝规则可以阻止单个方向的流量而不影响另一个方向,并且会立即作用于所有连接,包括已经建立的连接。这使 NACL 适合在事件期间执行强制且即时的阻止。
已建立的连接
更改安全组规则会影响现有的已跟踪连接发出的新数据包,但状态跟踪可能会让某些流量短暂保持活动。NACL 的拒绝规则是无状态的,会在任何连接的下一个数据包到达时立即生效。在遏制正在活动的攻击者时,这种即时性非常重要。
总结性思维模型
可以把安全组想象成一名聪明的门卫:他记得放行过谁,并让这些人再次顺利离开;而 NACL 则像一张逐个数据包检查的规则表,不会保留任何记忆。了解哪个控制是有状态的,是 SCS-C02 考试中最常考查的知识点之一。
快速检查
运用有状态与无状态之间的区别。
回顾
安全组是有状态的:获准的请求会自动获得返回流量。网络 ACL 是无状态的:每个数据包都会被单独判断,因此您必须明确允许用于响应的临时端口。入站顺序是先 NACL 后 SG;出站顺序是先 SG 后 NACL,并且两者都必须允许。能够建立连接但响应失败,说明无状态控制中可能缺少临时端口规则。
常见问题解答
「有状态与无状态行为」课时是免费的吗?
是的 — 「有状态与无状态行为」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「有状态与无状态行为」这节课中我会学到什么?
理解每种控制措施为何以不同方式处理返回流量。 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cloud & IT Cert Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「有状态与无状态行为」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?
能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 安全组如何筛选流量
- 网络 ACL 如何筛选子网
- 有状态与无状态行为
- 分层使用两者实现纵深防御