Oamc

NAT 地址转换 · 修改记录

这是 network/NAT 地址转换.md 的改动记录。后台每次保存都会留一份快照, 这里显示的是快照之间的差异,不会混入其他文章的改动。

还没有后台修改记录。

Git 提交记录

下面是 Git 里的提交,可能包含其他文章的改动(因为一次提交会带上工作区所有变化)。

#1 2026-10-25 +0 −0 refactor: 全部文章文件名中文化 0aa8fe6

这次没有正文改动。

#2 2026-10-18 +72 −0 docs: 网络进阶(MSTP/ACL/NAT/PBR)、Linux 进阶(模块/性能/bonding)、Windows 进阶(DFS/DHCP/AD CS) 42afade
 @@ -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 没清理会话,旧会话还在用旧规则。