NAT 网关 CLI 操作是什么
NAT 网关的配置本质是两张规则表:SNAT 表决定哪些源网段从哪个公网地址出去,DNAT(端口转发)表决定外部访问如何映射到内部主机与端口。用 CLI 管理这两张表的价值在于可核对、可对比、可脚本化:排障时先拉一份规则清单与流量日志对照,比在控制台里逐页翻找更可靠,也更容易发现历史遗留的冗余条目。
基本信息
| 查看对象 | 网关列表与状态、SNAT 表条目、DNAT(转发)表条目 |
|---|---|
| 变更动作 | 创建或删除规则,通常需指定网关 ID 与网段/地址 |
| 生效特征 | 规则修改即时生效,无需重启网关 |
| 验证方式 | 变更后立即实测出网 IP 与入站访问 |
| 审计方式 | 定期导出规则清单做版本对比 |
| 影响范围 | SNAT 条目通常按网段生效,影响面比看上去大 |
典型使用场景
- 排查出网异常:确认某网段是否真的绑定了预期的 SNAT 地址
- 核对冗余规则:清理业务下线后遗留的 SNAT 与 DNAT 条目
- 批量变更:用脚本一次性为新网段补充出网规则
- 端口转发排障:确认外部端口映射到的主机与端口是否正确
- 变更审计:把规则清单纳入版本管理,追踪谁在什么时候改了哪条
两张规则表的分工
| 规则表 | 作用 | 关键字段 |
|---|---|---|
| SNAT 表 | 内网访问公网时的源地址转换 | 源网段、使用的公网地址、网关归属 |
| DNAT 表 | 公网访问内网时的目的地址转换 | 外部地址与端口、内部地址与端口、协议 |
| 命中逻辑 | 按条目匹配,冲突时需明确优先级 | 网段越具体越应优先核对 |
| 常见问题 | 规则存在但不生效,多为网段覆盖或优先级问题 | 核对源网段与目标资源所在子网 |
NAT 常用命令(阿里云示例)
NAT 常用命令(阿里云示例)
aliyun vpc DescribeNatGateways --RegionId cn-hangzhou # 网关列表与状态
aliyun vpc DescribeSnatTableEntries --RegionId cn-hangzhou --NatGatewayId ngw-xxxxxxxx
aliyun vpc DescribeForwardTableEntries --RegionId cn-hangzhou --NatGatewayId ngw-xxxxxxxx
# 创建 SNAT 条目(参数名以当版文档为准)
# aliyun vpc CreateSnatEntry --RegionId cn-hangzhou --NatGatewayId ngw-xxxxxxxx --SnatIp <EIP> --SourceCIDR 10.0.0.0/8
curl -s https://ifconfig.me; echo # 变更后实测出口 IP 是否为预期值删除或修改 SNAT 规则会影响整个授权网段的出网流量:变更前确认影响范围,变更后立刻用实测出口 IP 验证,并选择业务低峰执行。
规则清单要定期导出并与台账比对:NAT 是最容易出现「历史遗留规则」的地方,冗余条目不仅增加排障难度,还可能让流量从非预期出口出去。