一、什么是内网穿透(NAT 穿透)?
在现代网络环境中,绝大多数家庭和企业都通过路由器(NAT 设备)连接互联网。NAT(Network Address Translation,网络地址转换)允许多个内网设备共享一个公网 IP,但也带来了一个问题:外部网络无法直接访问内网主机。
内网穿透(NAT 穿透)就是指让外部网络能够访问位于 NAT 后面的内网主机的技术。
常见应用场景包括:
- 远程桌面、远程 SSH
- 内网网站、家庭NAS、服务对外发布
- 远程监控、物联网设备管理
二、NAT 穿透的工作原理
NAT 设备会将内网主机的私有 IP 地址转换为公网 IP 地址,并维护一个地址映射表。
问题:外部主机无法主动发起连接到 NAT 后的内网主机,因为 NAT 不知道如何将数据包转发到内网。
穿透的核心思想
- 让内网主机主动与外部服务器建立连接(通常是公网服务器)
- 外部主机通过该服务器“中转”或“协商”与内网主机通信
三、常见的内网穿透方法
1. 端口映射(Port Forwarding)
- 在路由器/NAT 设备上手动配置,将某个端口的流量转发到内网主机。
- 优点:简单高效
- 缺点:需要有路由器管理权限,不适用于动态 IP
2. 反向代理(Reverse Proxy)
- 内网主机主动连接到公网服务器,公网服务器作为代理转发外部请求。
- 典型应用:ngrok、frp、花生壳等
3. NAT 穿透技术
a) STUN(Session Traversal Utilities for NAT)
- 主要用于 UDP 协议
- 内网主机通过 STUN 服务器获取自己的公网地址和端口
- 适用于对称 NAT 以外的大多数 NAT 类型
b) TURN(Traversal Using Relays around NAT)
- 当 STUN 失败时,使用 TURN 服务器中继所有流量
- 适用于所有 NAT 类型,但带宽消耗大
c) UPnP(通用即插即用)
- 内网主机请求路由器自动配置端口映射
- 需要路由器支持并开启 UPnP 功能
d) P2P 打洞(UDP/TCP Hole Punching)
- 双方主机同时向对方发送数据包,利用 NAT 的“连接跟踪”特性建立直连
- 需要第三方服务器协助“牵线”
四、常用的内网穿透工具
1. frp(Fast Reverse Proxy)
frp是一款开源、高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,适合自建内网穿透服务。
2. ngrok
ngrok支持 HTTP、TCP 等协议的内网穿透,提供公网访问地址,适合临时调试和演示,有官方和第三方开源版本,商业版可直接使用。
3. 花生壳(Oray)
国内知名的内网穿透服务,它可以将位于内网的设备或服务暴露在公网上,使用户可以通过公网访问这些设备或服务,提供客户端和云端服务,适合小白用户
4. Zerotier、Tailscale
虚拟组网工具,通过 P2P 技术实现内网穿透,适合组建虚拟局域网,实现多地互联
5. OpenVPN、WireGuard
虚拟专用网(VPN)方案,通过 VPN 隧道实现内网互通,安全性高(加密传输)
❝内网穿透是解决 NAT 后主机无法被外部访问的关键技术 工具选择需结合实际需求(安全性、易用性、带宽等)