Python实现风光互补制氢合成氨系统优化模型
2026/9/13 8:42:06
Network ACL(NACL)= 子网级别的无状态防火墙
核心特点(一定要记住):
作用在 Subnet(子网)级别
无状态(Stateless)
支持 Allow 和 Deny
规则按编号从小到大匹配,先命中先执行
| 场景 | 用 NACL | 用 SG |
|---|---|---|
| 整个子网统一策略 | ✅ | ❌ |
| 明确拒绝某些 IP | ✅ | ❌ |
| 实例级精细控制 | ❌ | ✅ |
| 大多数应用 | ❌ | ✅ |
实际生产中:Security Group 为主,NACL 为补充
路径:
AWSConsole→ VPC →NetworkACLs点击 Create network ACL
| 配置项 | 示例 |
|---|---|
| Name tag | app-nacl-public |
| VPC | 选择你的 VPC |
点击刚创建的 NACL →Inboundrules →Editinbound rules示例:Public Subnet 常见配置
| Rule # | Type | Protocol | Port | Source | Allow/Deny |
|---|---|---|---|---|---|
| 100 | HTTP | TCP | 80 | 0.0.0.0/0 | ALLOW |
| 110 | SSH | TCP | 22 | 你的 IP | ALLOW |
| 120 | Ephemeral | TCP | 1024-65535 | 0.0.0.0/0 | ALLOW |
| * | ALL | ALL | ALL | 0.0.0.0/0 | DENY |
最后一条 * DENY 是隐式存在的
点击Outboundrules →Editoutbound rules| Rule # | Type | Protocol | Port | Destination | Allow/Deny |
|---|---|---|---|---|---|
| 100 | ALL traffic | ALL | ALL | 0.0.0.0/0 | ALLOW |
如果你限制 Outbound,返回流量会被挡住
点击Subnetassociations →Editsubnet associations✔ 勾选要应用的子网
✔ 点击 Save
NACL 只有关联子网后才生效
| 对比项 | NACL | Security Group |
|---|---|---|
| 作用层级 | Subnet | 实例 |
| 状态 | 无状态 | 有状态 |
| 支持 Deny | ✅ | ❌ |
| 规则顺序 | 有(编号) | 无 |
| 默认规则 | 允许全部 | 入站全拒 |
用户访问 EC2(HTTP):
Internet↓InternetGateway↓RouteTable↓NetworkACL(Inbound80允许) ↓SecurityGroup(Inbound80允许) ↓ EC2返回流量:
EC2 ↓SecurityGroup(自动允许) ↓NetworkACL(OutboundEphemeral允许) ↓Internet❌ 忘了 Ephemeral Ports
👉 访问超时 / 页面打不开
必须允许:
1024–65535❌ Rule 编号顺序错误
👉 DENY 在前,ALLOW 永远匹配不到
❌ 只配了 Inbound,没配 Outbound
👉 返回流量被挡
Network ACL 是子网级别、无状态、防火墙,支持 Allow 和 Deny,规则按编号顺序执行,必须同时允许入站和出站流量。