Skip to content
⚡ Tenvo AI · 实时 · v0.16.26 · TLS · 每设备证书 · AGPL-3.0 · 免费方案 · 30 台设备 · 可自托管基础设施 · 自带 API 密钥 · MCP,适用于 CLAUDE & CURSOR
返回博客技术

无需端口转发的远程桌面原理详解

Tenvo Editorial Team9 分钟阅读
无需端口转发的远程桌面原理详解

对大多数远程桌面用户而言,端口转发已过时。本篇介绍取而代之的机制:UDP 打洞、STUN/TURN,以及 Tenvo 如何在双重 NAT、CGNAT 和公司防火墙后面工作而无需改路由器。

五年前,设置 无需端口转发的远程桌面 还是一个研究性的问题。你需要登录路由器,打开 TCP 3389(或你所用工具的端口),祈祷你的 ISP 不会屏蔽它,然后将 RDP 服务器暴露到公共互联网;这也是 Sophos 指出 2023 年近一半勒索软件事件通过面向互联网的 RDP 进入的原因。如今,几乎所有消费级远程桌面工具已完全抛弃端口转发。本文解释实现方式、涉及的权衡,以及 Tenvo 如何处理你可能遇到的各种故障模式。

要点: 现代远程桌面客户端使用一个引导(rendezvous)服务器将两个端点互相介绍,然后尝试通过 UDP 打洞建立直接点对点连接。如果打洞失败(常见于 对称 NAT、CGNAT 和某些公司防火墙),则回退到中继。不论哪种情况,你都无需动路由器。

为什么在 2026 年端口转发成问题

端口转发在 2005 年还是有意义的。当时大多数用户只有一层 NAT(家庭路由器),公网 IPv4 很便宜,ISP 也不会干预。如今这些假设都不成立。

  • CGNAT (Carrier-Grade NAT): 大多数移动运营商以及越来越多的光纤 ISP 将数千名用户放到同一个公网 IP 之后。你无法为一个你不拥有的公网地址转发端口。T-Mobile Home Internet、Starlink residential 和大多数蜂窝热点默认都在 CGNAT 之后。
  • Double NAT: ISP 提供的网关常常在你的路由器前再运行一层 NAT,让你处于两层之后。在内网路由器上做转发毫无意义。
  • 企业防火墙: 策略上只允许出站。你不可能让 IT 部门为你的笔记本打开入站 3389。
  • IPv6 过渡: 某些网络仅支持 IPv6 并使用 NAT64;传统的 IPv4 端口转发概念在那类环境中不存在。
  • 安全性: 即便可以转发端口,也不应该这么做。RDP 的暴力破解扫描是公共互联网的持续背景噪音,Shodan 在任意时刻大约索引着 400 万个暴露的 RDP 节点。

NAT 穿透如何取代端口转发

该技术称为 NAT 穿透,并已在 WebRTC 栈中标准化,所有基于浏览器的视频通话都在使用这些原语。远程桌面工具借用了相同的机制。

步骤 1:通过 ID 服务器建立会合

当你启动 Tenvo 时,客户端会与我们的 ID 服务器建立一个持久的出站连接(在上游 RustDesk 代码库中称为 hbbs)。这是一种普通的出站 TCP/UDP 连接,几乎所有 NAT 和防火墙都允许。ID 服务器会记录你的设备 ID、你的映射后公网 IP,以及 NAT 为你分配的源端口。所有已连接设备都会被同样处理。

当你输入某人的 ID 并点击连接时,客户端会向 ID 服务器询问:"设备 123 456 789 在哪里?" 服务器会返回该设备的公网端点,并要求双方同时开始打洞。

步骤 2:UDP 打洞

双方同时向对方的公网端点发送 UDP 数据包。大多数 NAT 是 端点无关 的:一旦你向任意外部地址发出数据包,NAT 会允许通过同一端口的任何回复。当双方同时打洞时,每个 NAT 都认为入站数据包是对出站包的合法回复并放行。于是形成直接的点对点连接,流量不经过任何 Tenvo 基础设施。

在我们的无遥测测量中(2026 年 3 月跨 EU 与 US 的 50 个最常见 ISP 测试),该方法对大约 85% 的消费级 NAT 配对有效。它也是 Tailscale、WireGuard 的端点发现以及每一次 Zoom 通话背后的相同机制。

步骤 3:中继回退(类 TURN)

当至少一端运行 对称 NAT(即针对不同目标选择不同外部端口)时,打洞会失败。CGNAT 几乎总是对称的,酒店 Wi‑Fi 也常如此。当在 3 秒超时时间内无法建立直接 P2P 时,双方会通过我们的中继重新建立连接(上游称为 hbbr)。中继在 TLS 之上转发字节。要明确这一点的含义:TLS 在中继处终止,因此与直接点对点连接不同,中继会话并非你两台设备之间的端到端加密。如果这对你的威胁模型很关键,请部署你自己的中继。

中继会增加延迟(在我们的 EU 与 US PoP 上通常为 15–40ms),且你会与其他中继会话共享带宽,但它能在任何允许出站类似 HTTPS 流量的 NAT 拓扑下工作。

连接决策树

NAT scenarioWhat happensLatency overhead
Both sides on full-cone or restricted-cone NATDirect P2P~0 ms
One side symmetric, other endpoint-independentDirect P2P (port prediction)~0 ms
Both sides symmetric / CGNATRelay fallback15-40 ms via nearest PoP
One side IPv6-only, other IPv4-onlyRelay fallback15-40 ms
Strict corporate firewall (outbound 443 only)Relay over TLS on 44315-40 ms

与其他方案比较

VPN 隧道(WireGuard、Tailscale、Twingate)

VPN 在不同的层解决相同问题:它们将两个端点放到同一虚拟专用网络上,从而允许任意协议通过。Tailscale 特别也使用上面描述的相同 NAT 穿透技术来构建其网格。缺点是你需要安装、管理并保持另一个软件的更新,而且你将所有流量路由到远端机器,而不仅仅是远程桌面会话。对于单一特定用例(远程控制一台 PC),内建 NAT 穿透的工具更简单。

端口转发的 RDP

原生的 Windows RDP 要求你从路由器将 TCP 3389(或你重映射后的其他端口)转发到目标机器。这在单层 NAT 的家庭网络中可行,但需要静态公网 IP 或动态 DNS,会暴露在全球的 RDP 暴力扫描中,并且一旦 ISP 将你迁移到 CGNAT 就会立即失效。Microsoft 自身的建议是将 RDP 放在 Remote Desktop Gateway 或 Azure Bastion 之后,它们本质上也是中继。

AnyDesk 和 TeamViewer

它们也使用 rendezvous + 打洞 + 中继回退。整体架构与 Tenvo 大体相同。区别在于:AnyDesk 与 TeamViewer 在封闭源代码客户端上运行专有协议,它们的中继无法自托管,且其定价反映了为数百万用户运行全球中继基础设施的运营成本。Tenvo 构建于开源的 RustDesk fork 之上,因此协议可审计,且如果你需要完全控制,中继可以自托管。

三步设置

NAT 穿透的核心就是无需配置。下面是在 Windows 上的实际安装流程:

# 1. Download (no admin required for the portable build)
Invoke-WebRequest https://tenvoai.com/download/godesk-windows-x64.exe -OutFile godesk.exe

# 2. Launch, generates a 9-digit ID and a one-time password
.\godesk.exe

# 3. On the controlling machine, enter the ID and password. Connected.

无需改路由器。无需防火墙规则。无需静态 IP。相同流程在 macOS(DMG)、Linux(deb/rpm/AppImage)和 Android(APK 或 Play 商店)上同样适用。若需在大量机器上部署,请参阅我们的 Windows 平台指南 了解基于 MSI 的静默安装方法。

何时你仍可能需要端口转发

两种边缘情况:

  • 没有互联网访问的隔离 LAN。 如果你在不能访问我们公共 ID 服务器的局域网内自托管 Tenvo 中继,需要使用 --relay-server 标志将客户端指向你的内部中继,并配置防火墙以允许该流量。完整设置请参阅我们的 自托管指南。
  • 在已知良好网络上的低延迟关键工作流。 如果你在局域网内进行游戏或音频制作,固定端口的直接连接会减少一项潜在故障点。Tenvo 支持“直连 IP”模式,但这不是默认设置,且在外网时不会使用该模式。

结论

对于远程桌面而言,端口转发是 2010 年的解决方案来应对 2026 年的问题。现代的 NAT 穿透能在 99% 的网络拓扑下实现零配置,既不会将服务暴露到公网,也不要求静态 IP。请在两台机器上 下载 Tenvo,输入 ID,即可连接。如果你想了解运行在 NAT 穿透层之下的安全模型,接着阅读 远程桌面是否安全。

常见问题

Tenvo 真能在不做任何路由器配置的情况下工作吗?
能。客户端仅发起出站连接,几乎所有 NAT 与消费级防火墙默认允许出站连接。无需入站规则、无需 UPnP、无需端口转发。

如果我的两台设备都在 CGNAT 后面会怎样?
打洞很可能会失败,会话会回退到我们的中继。你会看到略高的延迟(增加约 15–40 ms),但除延迟外连接表现与直连相同。

中继是否构成隐私风险?
这取决于谁在运营它,我们宁可直言不讳也不做模糊承诺。流量由 TLS 保护,并使用每设备证书,但 TLS 在中继处终止:中继运营者处于可以查看会话的地位。直接点对点连接不存在这样的中间方,大约 85% 的连接保持直连。如果中继不可接受,请自托管中继。若我们想要并试图查看你的流量,我们也无法做到(注:在直连场景下)。

如何判断我是直连还是中继连接?
Tenvo 客户端的状态栏在连接建立后会显示“直连”或“中继”。你也可以从工具栏查看会话详情。

我能强制 Tenvo 始终使用中继吗?
可以,在客户端配置中设置 relay-only = true。当你希望拥有稳定一致的延迟(而不是 P2P 在会话中途回退到中继导致的波动)时,这很有用。

获取 Tenvo

准备自己试用吗?

免费支持 30 台设备,无需信用卡。两分钟内即可运行并连接。