像 Team Viewer 这样的远程程序究竟是如何工作的?

Rud*_*lph 37 remote-desktop teamviewer

如果您使用 Windows RDP 或 Remmina,您通常使用服务器的 IP(公共)或附加主机名登录。我想知道像Team Viewer这样的远程程序是如何工作的?而且,程序如何知道如何通过互联网路由流量?

kob*_*ltz 27

TeamViewer、LogMeIn 和任何其他允许zero config远程桌面会话的程序都使用第三方服务器。

例如,LogMeIn 是一个类似于 TeamViewer 的程序,您可以在其中远程登录到您当前所在网络之外的计算机。您会注意到这种类型的远程会话不需要外部配置。这是因为您安装在远程机器上的软件(LogMeIn 客户端)向 LogMeIn 服务器发起了一个传出请求。由于此客户端发起请求,因此不需要防火墙上的端口转发。

在您的计算机上,在 LogMeIn 计算机的网络之外,可以通过 LogMeIn 的网站远程访问这台计算机。该网站接受来自远程计算机的发起请求并保持连接活动以侦听远程会话请求。

当您运行 TeamViewer 时,您会在他们的代理服务器上分配一个 ID。您与 Teamviewer ID 建立连接,TeamViewer 通过 TeamViewer 客户端建立的隧道将连接向下传递到目的地,然后提示您输入密码,然后建立连接。

  • 扩展问题:是否有可能自己运行这样的第三方服务器并使 VNC(或任何其他客户端)以相同的方式工作? (3认同)
  • 好问题。通过这种方式,您将踏上创建新 TeamViewer 公司的道路... (2认同)

SPR*_*BRN 10

Teamviewer 使用端口 80 连接到中央服务器。如果建立了连接,您将获得一个唯一 ID,并且服务器知道您在线。如果其他端口被阻塞,则所有通信都可以通过端口 80 进行。

Teamviewer 确实允许您直接连接到 IP 地址。您必须在选项中进行设置,以允许传入 LAN 连接。这适用于本地网络,也可能适用于 WAN 网络,但是你必须让端口转发工作,让端口 80 连接到路由器/防火墙后面的正确计算机。这让大多数人感到困难,而其他人则难以管理,因此我们使用 Teamviewer ID 方法。

我不知道这是否意味着所有流量都通过 teamviewer 服务器,但可能会。(并且因为它注册了所有点击和按键,这可能意味着它们可以 - 理论上 - 而且因为我们可能在现实中也了解 PRISM 等 - 了解您的所有登录名和密钥。)


gol*_*mar 6

这是该公司在其安全声明中所说的:

建立会话时,TeamViewer 会确定最佳连接类型。在通过我们的主服务器握手后,70% 的情况下(甚至在标准网关、NAT 和防火墙之后)建立了通过 UDP 或 TCP 的直接连接。其余连接通过我们的高度冗余路由器网络通过 TCP 或 https 隧道路由。您无需打开任何端口即可使用 TeamViewer!

正如后面“加密和认证”段落所述,即使我们作为路由服务器的运营商,也无法读取加密的数据流量

所以:

  • 1) 正如其他人所建议的那样,来自两个客户端的初始连接是客户端启动的,并通过端口 80,因此 NAT 或防火墙没有问题,可以通过 Web 代理等。此后,一切都设置好了客户端需要相互连接,然后:
  • 2.1) 可能使用UPnPNAT 打洞能够在两个客户端之间进行实际连接,或者
  • 2.2)如果不可能,它将通过他们的服务器路由流量,这会更慢并且可能被监视(但是他们声明数据是端到端加密的,在这种情况下不会有问题)