NAT 源地址转换图解:私网如何藏在一个公网 IP 后面
NAT 源地址转换原理图解,一张图看懂内网私网 IP 如何映射成公网 IP 上网,附华为 eNSP 配置。
先看效果

为什么需要 NAT
内网设备用的是私网地址(192.168.x.x、10.x.x.x、172.16-31.x.x),这些地址不能在公网上路由。但上网必须有公网 IP。NAT(网络地址转换)解决的就是这个矛盾:出口路由器把内网私网地址,转换成能上网的公网地址。
最常见的场景:一栋楼几百台电脑,出口只有一条宽带、一个公网 IP,全靠 NAT 让它们都能上网。
原理图解
看上面这张图,PC(192.168.1.100)访问外网服务器(8.8.8.8)的过程:
- PC 发出源
192.168.1.100→ 目的8.8.8.8; - 包到出口路由器,NAT 把源地址替换成公网 IP(如 200.1.1.1),并记一张映射表;
- 服务器收到的是 200.1.1.1 的请求,回包发给 200.1.1.1;
- 路由器查映射表,把目的地址还原成 192.168.1.100,转给 PC。
关键点:转换的是源地址(SNAT),路由器自己维护一张「谁换成了谁」的表。这就是为什么内网设备数量可以远超公网 IP 数。
eNSP 完整配置
用出口路由器(AR2220)做 NAT,内网 192.168.1.0/24,公网接口 GE0/0/0(200.1.1.1),内网接口 GE0/0/1。
# ===== 出口路由器 R1 =====
<Huawei> system-view
[Huawei] sysname R1
# 1. 内网接口
[R1] interface GigabitEthernet0/0/1
[R1-GigabitEthernet0/0/1] ip address 192.168.1.254 24
[R1-GigabitEthernet0/0/1] quit
# 2. 公网接口
[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] ip address 200.1.1.1 24
[R1-GigabitEthernet0/0/0] quit
# 3. 定义哪些流量需要做 NAT(ACL 2000)
[R1] acl number 2000
[R1-acl-basic-2000] rule permit source 192.168.1.0 0.0.0.255
[R1-acl-basic-2000] quit
# 4. 在公网接口上做 Easy IP(源地址转换,用接口地址做公网 IP)
[R1] interface GigabitEthernet0/0/0
[R1-GigabitEthernet0/0/0] nat outbound 2000
[R1-GigabitEthernet0/0/0] quit
# 5. 默认路由指向公网
[R1] ip route-static 0.0.0.0 0.0.0.0 200.1.1.2
[R1] save
Easy IP 是 NAT 的简化形态:直接拿公网接口的 IP 做转换地址,不用单独申请地址池,家庭/小企业最常见。
验证
# 查看 NAT 会话表(能看到地址转换前后的对应关系)
[R1] display nat session all
# 查 ACL
[R1] display acl 2000
PC 上 ping 8.8.8.8 通了以后,display nat session all 能看到一条会话:内网 192.168.1.100:xxx ↔ 转换后 200.1.1.1:xxx → 8.8.8.8。
注:eNSP 里如果出口是华为防火墙(USG6000),NAT 策略要用
nat-policy或source-nat easy-ip,和安全策略(security-policy)配合,配置语法与路由器不同。
常见问题
Q: NAT 配了内网还是上不了网?
A: 三查:① 有没有默认路由指向公网;② nat outbound 有没有加在公网接口上(不是内网口);③ ACL 2000 是否放行了内网网段。
Q: 为什么外面的机器访问不了内网 PC? A: 因为 NAT 只单向——内网主动出去,映射表才有记录。外面主动访问内网需要端口映射(NAT Server / 静态 NAT),是另一个话题。
下一步
单条链路带宽不够或不可靠时,可以把多条线捆成一条。看 链路聚合 Eth-Trunk。