三、技术实现:NAT转换表
当内网主机访问外网时,路由器会创建一条NAT映射表:
数据包流转过程:
1. 内网 → 外网(请求)
[PC] → 目的: 8.8.8.8:53, 源: 192.168.1.100:5001
↓
[路由器NAT]
- 记录:192.168.1.100:5001 ↔ 202.96.1.1:10001
- 改写源IP: 202.96.1.1:10001
↓
[外网服务器] ← 收到:目的: 8.8.8.8:53, 源: 202.96.1.1:10001
2. 外网 → 内网(响应)
[外网服务器] → 响应:目的: 202.96.1.1:10001, 源: 8.8.8.8:53
↓
[路由器NAT]
- 查表:10001 → 192.168.1.100:5001
- 改写目的IP: 192.168.1.100:5001
↓
[PC] ← 收到:目的: 192.168.1.100:5001, 源: 8.8.8.8:53
✅ 成功!通信完成。
四、为什么外网不能主动访问内网?
因为没有建立NAT映射条目!
假设外网用户想直接访问 202.96.1.1:10001:
[黑客] → 发送数据包:目的: 202.96.1.1:10001
↓
[路由器NAT]
- 查NAT表:无此条目(因为内网没发起过)
- 默认行为:丢弃
↓
[内网PC] → 无感知,收不到
🔒 这其实是NAT的“副作用”安全:
内网设备对外不可见,天然防火墙。
🔒 这其实是NAT的“副作用”安全:
内网设备对外不可见,天然防火墙。
五、如何让外网访问内网服务?
必须手动建立NAT映射规则,常见方法:
方法1:静态NAT(一对一映射)
# 将公网IP固定映射给某台内网服务器
[Huawei] nat static enable
[Huawei] interface GigabitEthernet0/0/1
[Huawei-GigabitEthernet0/0/1] nat static global 202.96.1.10 inside 192.168.1.200
✅ 效果:
外网访问 202.96.1.10 = 直接访问 192.168.1.200
方法2:端口映射(Port Forwarding)
# 将公网IP的某个端口映射到内网服务
[Huawei] nat server protocol tcp global 202.96.1.1 8080 inside 192.168.1.200 80
✅ 效果:
外网访问 http://202.96.1.1:8080 → 自动转发到内网Web服务器(192.168.1.200:80)
方法3:DMZ(非军事区)
[Huawei] firewall dmz ip 192.168.1.200
⚠️ 风险高:该主机所有端口对公网开放,仅用于测试。
六、NAT的几种类型
总结:NAT是“单向通行证”
内网 → 外网:可以! 路由器帮你“登记出境”,回来时能认出你。
外网 → 内网:不行! 没登记=陌生人,直接拒绝。
内网 → 外网:可以! 路由器帮你“登记出境”,回来时能认出你。
外网 → 内网:不行! 没登记=陌生人,直接拒绝。
这就像:
你可以主动打电话给别人(NAT允许出站),但别人不能主动打给你(除非你留了号码,即配置端口映射)。
🔚 最后建议:
日常上网:无需关心NAT,它在默默工作
搭建服务器:必须配置端口映射或DMZ
安全意识:NAT不是防火墙,仍需开启ACL防护
🔚 最后建议:
日常上网:无需关心NAT,它在默默工作
搭建服务器:必须配置端口映射或DMZ
安全意识:NAT不是防火墙,仍需开启ACL防护
原创:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部返回搜狐,查看更多