为什么会有这几个概念?
在互联网早期,IPv4地址足够用,每台设备都能有一个公网IP,直接就能访问彼此。
但 IPv4地址耗尽 后,ISP(互联网服务提供商)开始大规模部署 私有地址(内网IP) + NAT技术。
结果就出现了——
- 设备在内网中互联没问题
- 设备访问公网也没问题
- 但公网设备反过来访问内网设备——难了!
于是,端口映射 和 内网穿透 这些“拯救世界”的方案就被开发出来……
NAT
- Network Address Translation,网络地址转换,它将私有地址转换为公网地址,或者反过来。

- SNAT(源地址转换):
- 内网 → 公网
- 多个内网设备“伪装成”同一个公网IP访问互联网
- DNAT(目的地址转换):
- 公网 → 内网
- 通过端口映射实现,将“公网IP+端口号”映射到内网指定设备
端口映射
- Port Mapping / Port Forwarding,端口映射其实是DNAT的一种应用场景,通过NAT设备(一般是路由器)设置,将公网某个端口映射到内网某个设备对应端口。

- 静态端口映射:固定端口
- 动态端口映射(UPnP):设备动态申请
让外部用户访问内网设备的典型场景:
- 内网搭建Web服务
- NAS远程访问
- 游戏服务器
- 远程桌面
但如果运营商做了二级NAT,路由器或光猫获取到的不是公网IP,则端口转发不起作用 。
内网穿透
- NAT Traversal,内网穿透是绕过NAT限制,主动打洞,让内网设备能被公网访问的一种技术。

- P2P打洞(STUN、TURN、ICE):多用于视频会议、VoIP
- Ngrok
- Frp
- 花生壳
- ZeroTier
- tailscale
公网服务器反向连接:
- 客户端 → 公网服务器 → 用户 → 内网设备
三者的对比

常见场景对应方案

注意:
使用端口映射时:
- 使用非默认端口
- 配置防火墙
- 添加访问控制列表
使用内网穿透时:
- 优先选择 加密传输
- 使用自建穿透服务代替第三方
- 尽量配置白名单访问
IPv6 能解决这些烦恼吗?
答案:部分能,但不会完全替代。
IPv6天然具备全球唯一地址 → 没有 NAT → 每台设备理论上都可以“直接访问”,但是!安全性问题,公网暴露风险增大,运营商对IPv6的部署不完整,还没完全普及加上终端设备 IPv6 配置复杂,很多旧设备、软件 不支持 IPv6,IPv6 是未来趋势,但目前 IPv4 + NAT + 穿透 依然是主流。