NAT 如何共享一个公有 IP
理解多个私有设备如何通过一个地址访问互联网
NAT 如何共享一个公有 IP 是 CoddyKit 上的免费 Cloud & IT Cert Prep 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cloud & IT Cert Prep 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cloud & IT Cert Prep 课程共包含 4 节课。
地址短缺问题
互联网使用 IPv4 地址,但这类地址只有约 43 亿个,远少于如今在线的 device 数量。要为每部手机、笔记本电脑和各种设备购买一个公共地址是不可能的。
NAT(网络地址转换)提供了巧妙的解决方案:它允许私有网络中的多个 device 共享一个公共 IP 地址访问互联网,从而节省有限的地址资源。
私有地址与公共地址
网络在内部使用私有 IP 地址范围(10.0.0.0/8、172.16.0.0/12 和 192.168.0.0/16)。这些地址无法在公共互联网上路由,因此不能直接用于在线通信。
公共 IP 地址具有全球唯一性,并且可以在互联网上路由。NAT 连接了这两个世界,在私有内部地址与互联网所看到的公共地址之间进行转换。
NAT 的运行位置
NAT 通常运行在网络边缘的路由器或防火墙上,也就是私有 LAN 与公共互联网之间的边界。您家中的路由器此刻就正在执行 NAT。
这个边缘 device 在外部接口上持有一个由 ISP 分配的公共地址,在内部连接私有网络,并为其后的每个 device 执行地址转换。
NAT 的转换方式
内部 device 向互联网发送数据包时,NAT 会将源地址重写为路由器的公共 IP。对于目标服务器而言,这些流量看起来像是来自该公共地址。
回复返回时,NAT 会将目标地址重写回正确的私有地址,并将数据透明地传送给相应的内部 device。
转换表
NAT 会维护一张转换表,将每个内部通信映射到外部通信,这样返回的数据包就能匹配到正确的设备。没有这张表,路由器就不知道返回的数据包属于哪个内部主机。
每条记录都会跟踪内部地址、外部地址以及用于识别的详细信息,因此几十个同时建立的连接可以共享一个公共 IP,而不会发生混淆。
NAT 的类型
NAT 主要有以下几种形式:
- 静态 NAT:一个私有地址与一个公共地址之间固定的一对一映射。
- 动态 NAT:私有地址根据需要映射到公共地址池中的地址。
- PAT(端口地址转换):许多设备通过使用端口号共享一个公共 IP,这是家庭网络中最常见的形式。
一个安全方面的附带效果
NAT 的创建初衷是节省地址,但它还带来了额外的安全好处。由于内部设备使用私有且不可路由的地址,并隐藏在一个公共 IP 后面,互联网无法直接向这些设备发起连接。
这并不是真正的防火墙,因此不应把它当作防火墙依赖;不过,它确实会自然地隐藏内部网络,并默认阻止未经请求的入站流量。
NAT 与 IPv6
由于 IPv4 地址十分稀缺,NAT 变得不可或缺。拥有巨大地址空间的 IPv6 可以为每台设备提供唯一的全球地址,因此传统 NAT 在 IPv6 中基本没有必要。
不过,IPv4 远未退出历史舞台,所以 NAT 仍然无处不在。即使全世界正缓慢转向地址资源充足的 IPv6,理解 NAT 仍然至关重要。
家庭路由器示例
设想一个家庭网络,其中有多台设备,每台设备都有一个类似 192.168.1.10 和 192.168.1.11 的私有地址。路由器从 ISP 获得一个公共地址,例如 203.0.113.5。
当任意设备浏览网页时,路由器会先将其私有源地址改写为 203.0.113.5,再把数据包发送出去。所有设备在网上共享这一个公共身份,而路由器的转换表会确保每个回复都能返回正确的设备。
NAT 的局限
NAT 并非没有问题。对于将 IP 地址嵌入自身数据中,或需要入站连接的协议,NAT 可能会造成其无法正常工作,例如某些语音(VoIP)和点对点应用。
解决办法包括端口转发、应用层网关,以及专门设计用于穿越 NAT 的协议。为了尽可能延展有限的 IPv4 地址空间而付出的代价,就是这些额外的复杂性。
融会贯通
NAT 让许多私有设备共享一个公共 IP,从而节省稀缺的 IPv4 地址。它运行在网络边界的路由器或防火墙上,会改写源地址和目标地址,并在转换表中跟踪通信。NAT 分为静态、动态和PAT几种形式,还会带来附带的安全效果;在 IPv6 环境下,它基本没有必要。
快速检查
测试您对 NAT 基础知识的掌握情况。
回顾
NAT 在私有内部地址与共享的公共 IP 之间进行转换,从而节省稀缺的 IPv4 地址空间。它运行在网络边界的路由器/防火墙上,会改写地址,并以静态、动态或PAT的形式在转换表中跟踪通信流。它还会隐藏内部主机,使其免受未经请求的入站流量影响;在 IPv6 环境下,它基本没有必要。
常见问题解答
「NAT 如何共享一个公有 IP」课时是免费的吗?
是的 — 「NAT 如何共享一个公有 IP」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cloud & IT Cert Prep 课程的其余内容,请升级到 CoddyKit PRO。 Cloud & IT Cert Prep 课程共包含 4 节课。
「NAT 如何共享一个公有 IP」这节课中我会学到什么?
理解多个私有设备如何通过一个地址访问互联网 你通过在浏览器中直接运行的动手代码来练习 Cloud & IT Cert Prep,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cloud & IT Cert Prep 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cloud & IT Cert Prep 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。
「NAT 如何共享一个公有 IP」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cloud & IT Cert Prep 课中编写并运行代码吗?
能。每节 Cloud & IT Cert Prep 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。