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 运营的中继传输过程中依然保持加密。