跳到主要内容
全部术语

NAT 穿透与打洞

让位于不同路由器(NAT)之后的两台设备直接连接的技术,方法是通过一台辅助服务器进行协调,并在各自的防火墙上「打」出一条路径。

NAT 为什么会造成阻碍

大多数电脑都位于网络地址转换(NAT)之后:路由器让许多私有地址共享一个公网地址,并且只放行那些回应内部发起连接的数据包。因此,位于不同家庭或办公网络中的两台电脑无法直接向对方发起连接,因为每个路由器都会丢弃对方发来的第一个数据包。

难度取决于路由器的行为。RFC 4787 描述了 NAT 如何映射和过滤 UDP 流量:如果路由器对所有目的地都复用同一个公网端口,通常很容易找到直连路径;如果它为每个目的地选择一个新端口(常称为对称型 NAT),难度就会大得多。

打洞是如何工作的

NAT 穿透是一系列设法找到直连路径的技术。首先,每一方了解自己在外部看来是什么样子,通常是向 STUN 服务器询问。双方通过协调服务器交换这些候选地址,然后同时向对方发送数据包。每个路由器都先看到一个外发数据包,于是把对方的回应视为该数据流的一部分,路径就在两个方向上打开了。RFC 5128 对这些技术做了综述。

也可以直接请求路由器:UPnP IGD、NAT-PMP 及其后继者端口控制协议(PCP,RFC 6887)允许应用请求端口映射。某些企业防火墙和运营商级 NAT(CGNAT)会让所有这些技术失效。如果这些方法都不奏效,会话就会回退到在双方之间转发流量的中继。

Vexaro Desk 如何建立连接

只要网络允许,Vexaro Desk 会话就会直接连接;否则会经由经过认证的 Vexaro 中继连接。无需任何配置:客户端会自行找到连接路径。

安装程序会添加一条 Windows 防火墙规则,让直接连接和局域网连接能够工作;便携版无法添加这条规则,因此其会话更常经由中继。直接连接可以在「设置」中关闭,会话窗口会显示当前会话是直连还是经由中继。直连会话采用端到端加密。当网络环境迫使连接经由中继时,流量在经过 Vexaro 运营的中继传输过程中依然保持加密。

NAT 穿透技术

NAT 穿透技术
技术作用局限
端口映射(UPnP IGD、NAT-PMP、PCP)3请求路由器把一个端口转发给应用仅在路由器支持且网络允许时有效
STUN4告诉设备外部看到的公网地址和端口只负责发现地址,不传输会话流量
同时打洞2双方都先发包,使每个路由器把对方的数据包当作回应接受常被对称型 NAT 和严格的防火墙挡住
尝试大量端口1,2提高穿越对称型 NAT 时匹配成功的概率仍然无法保证匹配成功
中继在没有直连路径时转发流量只要双方都能连到中继即可奏效,但会增加延迟并消耗运营方的带宽

如何帮助直连成功

  1. 使用安装版客户端,而不是运行便携版,以确保 Windows 防火墙规则已就位。
  2. 允许出站 UDP:Vexaro Desk 会话无论直连还是经由中继,都运行在 UDP 之上。
  3. 如果您的网络支持 IPv6,请加以利用:中间没有地址转换,更容易找到直连路径。

常见问题

什么是 NAT?它为什么会阻止直连?
NAT 让许多私有设备共享一个公网地址,路由器只放行回应内部发起连接的数据包。因此,来自外部的连接尝试会被丢弃,除非事先已有某种方式打开了路径。
什么是打洞?
两台电脑先获知各自的公网地址,通过协调服务器交换,然后在同一时刻互相发送数据包。每个路由器都把对方的数据包当作对自己所发数据包的回应,直连路径就此打开。
打洞总能成功吗?
不能。对称型 NAT、严格的防火墙和运营商级 NAT 都可能让它失败。这就是远程访问工具保留中继作为回退方案的原因;只要网络允许,Vexaro Desk 就会直接连接,否则会经由自己经过认证的中继连接。
经中继的 Vexaro Desk 会话是否加密?
是的。直连会话采用端到端加密。当网络环境迫使连接经由中继时,流量在经过 Vexaro 运营的中继传输过程中依然保持加密。

在 Vexaro Desk 中体验

Vexaro Desk 将有人值守与无人值守访问、NAT 穿透、自适应编解码引擎和治理能力整合在一个控制台中。目前处于早期访问阶段,创建免费账户即可试用。