无法远程访问NAS?你应该了解什么是内网穿透技术?

老牛谈网络 2025-04-08 16:41:44

上期我们讲了NAT原理和分类,今天我们继续聊聊内网穿透的这个概念。内网穿透(NAT Traversal)的技术原理主要是为了解决内网设备(位于私有网络中,如家庭或企业网络)与公网之间通信的问题。由于内网设备的IP地址通常是私有的(例如 192.168.x.x),无法直接被公网访问,因此需要通过一定的技术手段“穿透”NAT(网络地址转换)设备(如路由器),实现内外网的双向通信。

NAT分类

基于基于地址映射方式分类可以分为静态NAT,动态NAT等。那么,基于数据包行为分类,我们可以将NAT分为:

全锥形NAT(Full Cone NAT)

内网端口映射到公网端口后,任何外部设备都可以通过该公网端口与内网设备通信。

限制锥形NAT(Restricted Cone NAT)

只有内网设备主动向外部发送过数据的IP才能回传数据。

端口限制锥形NAT(Port-Restricted Cone NAT)

进一步限制外部设备的端口,必须是内网设备主动通信过的IP和端口。

对称NAT(Symmetric NAT)

每次与不同外部目标通信时,映射的公网端口都会变化,最难穿透。家庭网络中,包括NAS内网穿透都是基于这种方式。

几种内网穿透的核心技术

(1) 反向连接(Reverse Connection)

原理:内网设备主动连接到公网服务器,并保持长连接(

使用自定义心跳协议保持连接,同时检测网络状态)。公网客户端通过该服务器中转数据,与内网设备通信。

典型应用:如远程桌面工具(TeamViewer),内网设备主动向服务器注册,外部请求通过服务器转发。

优点:简单可靠,适用于大多数NAT类型。

缺点:依赖中间服务器,通信效率可能受限。

(2) STUN与TURN

STUN(Session Traversal Utilities for NAT)

原理:STUN(Session Traversal Utilities for NAT)是一种由RFC定义的网络协议,用于检测网络中是否存在NAT设备,并获取两个通信端点经NAT设备分配的IP地址和端口号。然后在两个通信端点之间建立一条可穿越NAT的P2P链接,实现P2P通信,这一过程也被形象的称为“打洞”。

适用场景:适用于全锥形和部分限制锥形NAT。

局限性:对称NAT下无法直接打洞。

TURN(Traversal Using Relays around NAT)

原理:在STUN失败时,使用公网上的TURN服务器作为中继,所有数据通过服务器转发。

适用场景:适用于所有NAT类型,尤其是对称NAT。

缺点:中继服务器增加延迟和成本。

(3) UDP/TCP打洞(Hole Punching)

UDP打洞:

原理:两个内网设备通过公网服务器交换彼此的公网IP和端口信息,然后同时向对方发送UDP数据包。由于NAT会为这些数据包创建临时映射,双方可能建立直接连接。

适用性:依赖NAT类型,通常对全锥形和限制锥形NAT有效。

TCP打洞:

原理:类似UDP,但由于TCP需要三次握手,成功率较低,技术实现更复杂。

适用性:较少使用,主要用于特定场景。

(4) UPnP(通用即插即用)

原理:通过内网设备直接与路由器通信,请求在路由器上开放一个公网端口并映射到内网设备的端口。

优点:无需额外服务器,配置简单。

缺点:依赖路由器支持UPnP,且可能被禁用(安全性考虑)。

常见工具和协议

国际通用的工具:

Frp:基于反向连接的内网穿透工具。

Ngrok:提供公网域名和隧道服务。

WebRTC:结合STUN/TURN实现P2P通信,常用于实时音视频。

ZeroTier:虚拟局域网技术,绕过NAT限制。

国内的工具:

NPS、Sakura Frp、Nat123、花生壳(Oray)等。

1 阅读:182
猜你喜欢

老牛谈网络

简介:智慧办公、智慧安防、交换机知识科普