网络
NAT(网络地址转换)是什么?
面向初学者介绍 NAT 如何工作、为什么常见,以及现实网络中的主要类型。
简要说明: NAT 会把私有地址转换成公网地址,通常还会转换端口,因此多台设备可以共享一个面向互联网的 IP。家庭路由器和企业网关中都很常见。
要点: NAT 是连接内网与互联网的转换器。
NAT 如何工作?
NAT 在边界路由器上修改数据包头部。对于出站流量,它会把源 IP,以及常见情况下的源端口改写成路由器的公网地址,并保存状态表,把回应再映射回正确的内部设备。
例如,家中一台 192.168.0.10 的笔记本要连接互联网服务器 1.1.1.1:443 时,NAT 路由器会改写地址:
转换前(内网):192.168.0.10:53012 → 1.1.1.1:443
NAT 设备(公网 IP 203.0.113.25)分配端口 5000
转换后(公网):203.0.113.25:5000 → 1.1.1.1:443
回应路径: 1.1.1.1:443 → 203.0.113.25:5000 ⇢ 192.168.0.10:53012
设备使用私有地址段时,NAT 让它们可以访问公共互联网。地址格式可参阅 IPv4 与 IPv6。
⚠️ NAT 不会加密流量,也不等同于防火墙。敏感数据仍应使用身份验证和 TLS。
要点: NAT 改写地址并追踪连接,但不能代替真正的安全措施。
为什么使用 NAT?
- 节省 IPv4 地址: 多台设备可共享一个公网 IP,这是 NAT 最初的主要原因。
- 统一出口: 在网络边界更容易实施策略、记录日志和治理。
- 减少暴露面: 内部主机不会直接暴露在互联网中,但风险只是降低而非消失。
- 运营商场景: ISP 可能通过 CGNAT 让许多用户共用 IPv4 地址。
内网依赖 NAT 与外部世界通信,具体可参阅什么是内网?。
要点: NAT 节省公网地址,也简化了网络边界的控制。
NAT 的类型
- 静态 NAT: 一个私有 IP 固定映射到一个公网 IP,适合托管服务。
- 动态 NAT: 从公网地址池中按需获得一对一映射。
- PAT / NAT Overload: 多个私有地址通过不同源端口共享一个公网地址,家庭路由器默认通常使用这种方式。
要点: 大多数家庭使用 PAT;静态和动态一对一映射用于特定需求。
局限性
- 破坏端到端连接: 入站访问需要端口转发、反向代理或 VPN;P2P 与 VoIP 可能需要 ALG、STUN/TURN 等辅助方案。
- 增加复杂度: 当许多用户共享公网 IP 时,排障、地理定位和限流都可能更困难。
- IPv6 减少了需求: IPv6 地址充足,不需要 NAT,但网络仍会使用防火墙来执行策略。
要点: NAT 在边界带来便利,也让部分应用与运维场景更复杂。
总结
NAT 是 IPv4 时代非常实用的方案,即使 IPv6 不断普及,它仍广泛存在。可以用它共享公网地址和控制出口,但不要把它误认为完整的安全机制。