Oamc

NAT 地址转换 · 修改记录

这是 network/nat.md 的每次改动内容,按时间从新到旧。其他文章一起提交的部分不会出现在这里。

#1 2026-10-18 +72 −0 docs: 网络进阶(MSTP/ACL/NAT/PBR)、Linux 进阶(模块/性能/bonding)、Windows 进阶(DFS/DHCP/AD CS) 42afade
 new file mode 100644
 @@ -0,0 +1,72 @@
+---
+tags: [NAT, 地址转换, 网络进阶]
+order: 130
+---
+
+# NAT 地址转换
+
+## 场景
+
+内网私有地址要访问外网(源 NAT),或者外网要访问内网服务器(端口映射)。
+
+## 前置条件
+
+- 有公网地址或运营商分配的地址
+- 知道要做转换的内网网段
+- 明确是出方向还是入方向
+
+## 配置
+
+### H3C
+
+```text
+system-view
+acl basic 2000
+ rule 0 permit source 192.168.10.0 0.0.0.255
+ quit
+
+interface GigabitEthernet1/0/24
+ nat outbound 2000
+ nat server protocol tcp global current-interface 8080 inside 192.168.10.5 80
+ quit
+```
+
+### 华为
+
+```text
+acl number 2000
+ rule 5 permit source 192.168.10.0 0.0.0.255
+ quit
+
+interface GigabitEthernet0/0/24
+ nat outbound 2000
+ nat server protocol tcp global current-interface 8080 inside 192.168.10.5 80
+ quit
+```
+
+## 验证
+
+```text
+display nat outbound
+display nat server
+display nat session brief
+```
+
+从内网访问外网能通、从外网访问映射端口能通,两边都验证一遍。
+
+## 回滚
+
+```text
+interface GigabitEthernet1/0/24
+ undo nat outbound 2000
+ undo nat server protocol tcp global current-interface 8080
+```
+
+## 坑
+
+- **内网访问自己的公网映射地址不通**,要开 NAT hairpin(回流)。
+- 映射的端口和路由器自身管理端口冲突(比如 80)。
+- `nat outbound` 的 ACL 写太宽,把管理网段也转换了。
+- 一对多映射(pat)端口耗尽,并发高时会失败。
+- 双出口做了 NAT,回包从另一条链路回来会被丢。
+- 改完 NAT 没清理会话,旧会话还在用旧规则。