内网 IP 怎么访问互联网?NAT 技术与“小区保安”的比喻

为什么你明明住在 192.168.1.1,却能收到来自全世界的快递?

1. 什么是 NAT?

NAT (Network Address Translation),网络地址转换

它的核心作用是解决 IPv4 地址不够用 的问题,同时也充当了家庭网关的看门人

形象比喻:小区与门牌号

  • 私有 IP (局域网):就像你家的门牌号"3号楼 201 室"。全世界有很多个"3号楼 201 室",但在你们小区里是唯一的。
  • 公网 IP (互联网):就像小区的街道地址"北京市海淀区xx路88号"。这是全球唯一的。
  • NAT (路由器) :就是小区门口的保安大爷(兼职收发快递)。

💡 补充知识:私有 IP 地址段 (保留地址)

前置知识:IPv4 的结构

IPv4 本质是 32 位二进制 (比如 11000000...)。

为了方便记忆,我们把它切成 4 段 ,每段 8 位 (8 bit),中间用点隔开。

  • 每段最大值:11111111 (二进制) = 255 (十进制)。
  • 所以 IP 长这样:0.0.0.0 ~ 255.255.255.255

私有地址的划分逻辑:

不是随便写个 IP 都能当内网 IP 的。国际标准根据网络规模 (即:前几位固定,留多少位给主机),规定了 3 段私有地址:

类别 IP 范围 容量 (典型子网) 适用场景
A 类 10.0.0.0 ~ 10.255.255.255 约 1600 万 超大型企业 (如阿里巴巴内网)
B 类 172.16.0.0 ~ 172.31.255.255 约 6.5 万 中型网络 (学校、Docker 默认网段)
C 类 192.168.0.0 ~ 192.168.255.255 254 家庭/小公司 (最常见,因为你家设备少)
  • 为什么这么分?(二进制视角的奥秘)
    • A 类 (10.x.x.x)
      • 标准子网掩码 /8 (前8位固定)。
      • 剩余 24位 给主机 -> 224≈16002^{24} \approx 1600224≈1600 万。
      • 注:整个 A 类私有段就是一个超大局域网。
    • B 类 (172.16.x.x)
      • 标准子网掩码 /16 (前16位固定)。
      • 剩余 16位 给主机 -> 216=655362^{16} = 65536216=65536 (约 6.5 万)。
      • 注:172.16172.31 包含了 16 个这样的 B 类网段。
    • C 类 (192.168.x.x)
      • 标准子网掩码 /24 (前24位固定)。
      • 剩余 8位 给主机 -> 28=2562^{8} = 25628=256 (减去头尾,可用 254 台)。
      • 注:192.168.0.0192.168.255.0 包含了 256 个这样的 C 类网段。

2. 为什么需要 NAT?

如果全世界每台手机、电脑都要一个全球唯一的公网 IP,IPv4 的 43 亿个地址早在 2011 年就发完了。
NAT 允许一整个小区的几千户人,共用这一个公网 IP 地址。


3. NAT 的工作流程 (SNAT)

假设你在家里 (192.168.1.2) 想访问百度 (公网 IP)。

出门 (请求)

  1. :把信交给路由器(保安)。信封上写着:
    • 寄件人:192.168.1.2:8888 (你家门牌号)
    • 收件人:百度
  2. 路由器 (NAT) :一看,"192.168"这种内部号寄不出去啊。
    • 它把寄件人 改写成路由器的公网 IP:202.100.1.1:10001 (小区地址+临时编号)。
    • 同时在小本本上记下一笔:编号 10001 的信是 192.168.1.2 寄的
  3. 互联网 :百度的服务器收到了信,它只知道是 202.100.1.1 寄来的,不知道你家具体门牌。

进门 (响应)

  1. 百度 :把回信寄给 202.100.1.1:10001
  2. 路由器 (NAT) :收到了信。拿出小本本一查:
    • "哦,10001 号是给 192.168.1.2 的。"
  3. 转发 :路由器把信封上的收件人 改回 192.168.1.2:8888,送给你。

这就是 SNAT (源地址转换),也是我们家庭上网最常用的模式。
百度服务器 路由器 (NAT) 电脑 (192.168.1.2:8888) 百度服务器 路由器 (NAT) 电脑 (192.168.1.2:8888) 公网IP: 202.100.1.1 【记录映射表】 内网 192.168.1.2:8888 ⇋ 外网 202.100.1.1:10001 【查表匹配】 收到端口 10001 ➔ 转发给 192.168.1.2:8888 1. 发送请求 (源: 192.168.1.2:8888) 2. 转发请求 (源: 202.100.1.1:10001) 3. 响应数据 (目: 202.100.1.1:10001) 4. 转发响应 (目: 192.168.1.2:8888)


4. 另一种情况:端口映射 (DNAT)

如果你在家里搭了个网站,想让外面的朋友访问,怎么办?

外面的朋友只知道你家小区的地址 (公网 IP),不知道怎么进你家 (私网 IP)。

这时候你需要告诉保安 (配置路由器):

"大爷,凡是找咱们小区 80 端口的快递,统统送到 192.168.1.2 这一家去。"

这就是 DNAT (目的地址转换)

  • 外网访问202.100.1.1:80
  • 路由器转发192.168.1.2:80

⚠️ 避坑指南:80 端口被封

大部分家庭宽带的运营商 (电信/联通等) 默认会封锁 80 和 443 端口

如果你在家搭网站,建议改用 80808888 这种大号端口,否则外网根本连不上。


5. 进阶痛点:套娃的"大内网" (CGNAT)

你可能会发现,明明在路由器做了端口映射,外网还是连不上你家。

原因可能是:你的公网 IP 也是假的!

运营商为了省 IP,在小区宽带上面又加了一层 NAT(运营商级 NAT)。

  • 现状 :你的路由器拿到的"公网 IP"其实是运营商局域网的 IP (比如 10.x.x.x)。
  • 比喻:你以为你是小区户主,其实你住在"城中村",村口还有个大保安,外面的快递根本送不到你家门口。
  • 解决:打电话给运营商客服,"投诉监控连不上,申请改为公网 IP"。

💡 怎么判断我有没公网 IP?

  1. 登录路由器后台,看 WAN 口 IP (比如 100.64.x.x)。
  2. 打开百度搜"IP",看显示的 IP。
  3. 如果两个 IP 不一样,恭喜你,你在大内网里。

6. 总结

  • NAT 是 IPv4 续命的神器,它让内网设备可以"隐身"访问互联网。
  • SNAT (源转换):让内网访问外网(大家一起上网)。
  • DNAT (目的转换):让外网访问内网(发布网站)。
  • 在 IPv6 普及之前,我们还得靠这位"保安大爷"过日子。
相关推荐
树码小子1 天前
网络原理(13):TCP协议十大核心机制 -- 确认应答 & 超时重传
服务器·网络·tcp/ip
Gofarlic_OMS1 天前
协同设计平台中PTC许可证的高效调度策略
网络·数据库·安全·oracle·aigc
2501_915106321 天前
iOS 安装了证书,HTTPS 还是抓不到
android·网络协议·ios·小程序·https·uni-app·iphone
谢平康1 天前
通过nfs方式做目录限额方法
linux·服务器·网络
航Hang*1 天前
第七章:综合布线技术 —— 设备间子系统的设计与施工
网络·笔记·学习·期末·复习
智链RFID1 天前
RFID技术:企业效率革命新引擎
大数据·网络·人工智能·rfid
佩奇的技术笔记1 天前
TCP Keep-Alive 和 HTTP Keep-Alive区别
网络协议·tcp/ip·http
Wcowin1 天前
非对称密码
网络·密码学
航Hang*1 天前
第六章:综合布线技术 —— 干线子系统的设计与施工
网络·笔记·学习·期末·复习