
号主:老杨丨11年资深网络工程师,更多网工提升干货,请关注公众号:网络工程师俱乐部
“我们办公室几百台电脑都用一个公网IP上网,是怎么做到的?”
“我在家开了一台服务器,为什么外面访问不了?”
“内网可以刷网页、看视频,但别人却连不上我的电脑?”
这些日常网络现象的背后,都离不开一个关键技术:
NAT—— 网络地址转换。
它让成千上万的内网设备,通过少数几个公网IP访问互联网。但同时,它也带来了“外网无法主动访问内网”的限制。
今天就用最直观的方式,带你彻底搞懂NAT的工作原理,并解答:
- 为什么内网能访问外网?
- 为什么外网不能直接访问内网?
- 如何让外网访问内网服务?
IPv4地址总共约43亿个,早已分配殆尽。而每个手机、电脑、摄像头都需要IP,怎么办?
NAT的使命:
让多个内网私有IP,共用一个或少数几个公网IP上网,节省公网地址资源。
✅ 私有IP范围:
- 10.0.0.0 ~ 10.255.255.255
- 172.16.0.0 ~ 172.31.255.255
- 192.168.0.0 ~ 192.168.255.255
想象你住在一个大院里(内网),但快递只送到门卫(路由器)。
你想网购并收货:
- 你下单(内网 → 外网)
- 你写收货地址:“张三,门卫代收”
- 快递员记下:“张三的包裹放门卫”
- 快递送达(外网 → 内网)
- 快递员把包裹给门卫
- 门卫查记录:“这个是张三的”
- 门卫把包裹转交给张三
- 如果有人想寄东西给你
- 对方只知道“门卫”地址,不知道你
- 没登记 → 门卫不会帮你收
这就是NAT的核心逻辑:出去时登记,回来时查表。
三、技术实现:NAT转换表当内网主机访问外网时,路由器会创建一条NAT映射表:
[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] → 无感知,收不到