ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

上网第三十二课:NAT——让 IPv4 地址“够用“的魔法

2026/10/2 5:54:22 拓冰建站 浏览量
上网第三十二课:NAT——让 IPv4 地址“够用“的魔法 前几天帮一位同事查网络故障他打开百度搜我的 IP页面上赫然显示一个陌生的公网地址。他很困惑“我家路由器分给我的是 192.168.1.x怎么到了外网就变成另一个号了”我说“这就是 NAT 干的事。你家里十几台设备共用一个公网 IP 上网全靠 NAT 在路由器里当’翻译官’。没有它IPv4 早就不够分了。今天就来拆解这个让 43 亿地址’够用’了三十年的魔法。”一、先说问题IPv4 地址为什么不够分上一课讲子网掩码时提到IPv4 总共 2³² ≈ 43 亿个地址。听起来不少但去掉 A/B/C 类保留、组播、私有地址等真正能全球路由的公网地址只有约 33 亿。而全球联网设备早就突破百亿——手机、电脑、电视、摄像头、智能音箱……每台都需要 IP。33 亿对百亿三倍缺口怎么填答案就是NATNetwork Address Translation网络地址转换让一批设备共用一个或少量公网 IP在家里用私有地址互相区分出门时由路由器统一翻译成公网 IP。二、NAT 的核心类比“前台代收快递”把公司想象成一栋大楼大楼里每间办公室有内部分机号192.168.1.x这是私有 IP大楼对外只有一个门牌号比如 114.114.x.x这是公网 IP所有快递送到大楼门口前台NAT负责登记哪间办公室收的、什么时候收的然后转交给你你往外寄快递也一样前台把你的内部分机号换成大楼门牌号发出去对方只看到大楼地址不知道你具体在哪间办公室。这个前台就是路由器上的 NAT 模块。它维护一张转换表记录每一笔谁对应谁的映射关系。三、NAT 怎么工作地址 端口一起翻译NAT 不只是换 IP 这么简单它还要靠端口号来区分同一台路由器后面的不同设备。一次完整的 NAT 转发过程你的手机192.168.1.105访问网站发出数据包源 IP 192.168.1.105源端口 50001 → 目标 IP 93.184.216.34目标端口 443路由器收到后做 SNAT源地址转换把源 IP 改成公网 IP比如 114.114.1.1同时分配一个新源端口比如 30001记入转换表数据包到了外网对方只看到 114.114.1.1:30001 → 93.184.216.34:443网站回包给 114.114.1.1:30001路由器查转换表发现30001 对应 192.168.1.105:50001做反向翻译把包送回你的手机。关键点NAT 用端口号区分设备。一个公网 IP 有 65535 个端口理论上一个公网 IP 可以同时供几万台设备上网实际受硬件性能限制家用路由器通常支持几百到一两千条并发会话。步骤源 IP:端口目标 IP:端口说明手机发出192.168.1.105:5000193.184.216.34:443私有地址出门路由器 SNAT114.114.1.1:3000193.184.216.34:443翻译成公网地址网站回包93.184.216.34:443114.114.1.1:30001回包到公网地址路由器反向93.184.216.34:443192.168.1.105:50001翻译回私有地址这种地址端口一起换的模式叫NAPTNetwork Address Port Translation也叫 PAT。日常说 NAT 基本都指 NAPT。四、三种 NAT谁翻译、往哪翻译按翻译方向NAT 分三种① SNAT源地址转换——最常见就是上面讲的过程。出口方向把源 IP 从私有换成公网。家用路由器做的就是这个。② DNAT目标地址转换——入口方向把目标 IP 从公网换成内网。典型场景是端口映射你在路由器上配外网 8080 → 内网 192.168.1.100:80外面访问你的公网 IP:8080路由器把目标地址翻译成内网服务器内网服务器就收到请求了。远程访问 NAS、家庭监控、自建网站都靠 DNAT。③ 双向 NAT——源和目标都翻译企业网络偶尔用到家用基本不碰。一句话区分SNAT 管出门DNAT 管进门。五、装维实操NAT 在现场的四件实事① 判断有没有公网 IP——排查远程访问的前提。在路由器 WAN 口状态里看分配到的 IP再去百度搜我的 IP对比。两个一样 → 你有公网 IP可以做端口映射不一样 → 运营商在前面又加了一层 NATCGNAT你拿到的是中间层地址端口映射大概率不生效。没有公网 IP 的用户想做远程访问 NAS就得用内网穿透工具frp、ZeroTier 等绕过 CGNAT。② 端口映射配置——DNAT 最常见的操作。在路由器端口映射 / 虚拟服务器页面外部端口 8080 → 内部 IP 192.168.1.100 → 内部端口 80 → 协议 TCP。配好后外网就能通过公网 IP:8080访问内网服务。注意没有公网 IP 的用户配了也白搭外面到不了你。③ NAT 会话数耗尽——网页打不开但 Ping 通的元凶。家用路由器 NAT 表容量有限低端机几百到几千条。P2P 下载、大量设备联网、被木马发起大量连接时NAT 表会爆满表现为能 ping 通外网但网页打不开重启路由器清空 NAT 表可临时恢复根本解法是换带机量更大的路由器。④ 游戏类型和 NAT 有关。游戏主机PS5/Xbox网络设置里会显示 NAT 类型开放NAT1有公网 IP 中等NAT2端口映射可用 严格NAT3CGNAT 后面。NAT3 联机经常失败解法是找运营商要公网 IP 或用 UPnP 自动映射端口。六、CGNAT运营商的套娃 NAT前面 Day30 讲过运营商也不够公网 IP 分于是搞了一层CGNAT运营商级 NAT你的路由器做第一层 NAT运营商的 CGNAT 设备做第二层两层翻译后才到公网。这也是 100.64.0.0/10 这个地址段的由来——专门给 CGNAT 中间层用的伪公网地址在全球不可路由只在运营商内部有意义。CGNAT 的影响你的公网 IP其实是 CGNAT 后面的地址不是真正的公网端口映射不生效运营商的 CGNAT 不会为你做端口映射对方看到的你的 IP 是 CGNAT 出口的共享 IP可能和邻居共享。目前国内大部分家庭宽带都在 CGNAT 后面想拿独立公网 IP 需要专门申请部分运营商可免费改部分要企业宽带套餐。七、NAT 的原罪为什么 IPv6 才是终局NAT 拯救了 IPv4但它不是完美的端到端连接被打破NAT 是有状态的翻译只有内网主动发起的连接才能正确回包外网主动访问内网默认不通——这破坏了互联网任意两台设备可互通的初心NAT 表是单点瓶颈路由器重启所有会话断开在线视频、游戏掉线就是这个原因P2P 打洞困难语音通话、P2P 下载需要复杂的 NAT 穿越技术STUN/TURN/ICENAT 类型越严格越难打通CGNAT 进一步加剧问题两层 NAT 后很多端到端应用彻底无解。所以业界共识是NAT 是过渡方案IPv6 才是正解——给每台设备分一个全球唯一地址不需要翻译端到端直接互通。小结NAT 让多台设备共用一个公网 IP靠地址端口翻译区分不同会话SNAT 管出门私有→公网DNAT 管进门端口映射家用路由器两者都做CGNAT 是运营商的二次 NAT导致用户拿不到真公网 IP端口映射失效NAT 表容量有限耗尽会ping 通但网页打不开NAT 是过渡方案IPv6 才是最终答案。思考题你在家用手机访问公司内网 VPN连接一直超时。你查了路由器发现 WAN 口 IP 是 100.64.x.x。问题出在哪有什么临时解法提示100.64.x.x 是 CGNAT 地址段意味着你没有真公网 IPVPN 的回包找不到你。下期预告既然 NAT 是过渡方案那正版答案 IPv6 什么时候能接班其实你的宽带很可能已经在用 IPv6 了——只是你没注意到。明天就来聊聊IPv6——你的宽带其实早就用上它了。