在现代网络环境中,绝大多数家庭和企业都通过路由器(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、花生壳、nat123等
3. NAT 穿透技术
STUN(Session Traversal Utilities for NAT):
主要用于 UDP 协议
内网主机通过 STUN 服务器获取自己的公网地址和端口
适用于对称 NAT 以外的大多数 NAT 类型
TURN(Traversal Using Relays around NAT):
当 STUN 失败时,使用 TURN 服务器中继所有流量
适用于所有 NAT 类型,但带宽消耗大
UPnP(通用即插即用):
内网主机请求路由器自动配置端口映射
需要路由器支持并开启 UPnP 功能
d) P2P 打洞(UDP/TCP Hole Punching)
双方主机同时向对方发送数据包,利用 NAT 的“连接跟踪”特性建立直连
需要第三方服务器协助“牵线”,如FRP和nat123都有点到点直连模式
三、常用的内网穿透工具
1. frp(Fast Reverse Proxy)
frp是一款开源、高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议,适合自建内网穿透服务。
2. ngrok
ngrok支持 HTTP、TCP 等协议的内网穿透,提供公网访问地址,适合临时调试和演示,有官方和第三方开源版本,商业版可直接使用。
3. 花生壳(Oray)、nat123
国内知名的内网穿透服务,它可以将位于内网的设备或服务暴露在公网上,使用户可以通过公网访问这些设备或服务,提供客户端和云端服务,适合小白用户
4. Zerotier、Tailscale
虚拟组网工具,通过 P2P 技术实现内网穿透,适合组建虚拟局域网,实现多地互联
5. OpenVPN、WireGuard
虚拟专用网(VPN)方案,通过 VPN 隧道实现内网互通,安全性高(加密传输)
内网穿透是解决 NAT 后主机无法被外部访问的关键技术 工具选择需结合实际需求(安全性、易用性、带宽等)。如果你面对无公网IP需要提供互联网服务的,在综合考虑成本控制和便捷操作,可以使用内网穿透技术应用实现。