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

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

如果您使用 Windows RDP 或 Remmina,通常使用服务器的 IP(公共)或附加主机名进行登录。我想知道像团队查看器可以正常工作吗?此外,程序如何知道如何在互联网上路由该流量?

答案1

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

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

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

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

答案2

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

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

我不知道这是否意味着所有流量都通过 teamviewer 服务器,但有可能。(由于它记录了所有点击和按键,这可能意味着他们可以 - 理论上 - 而且由于我们知道 PRISM 等,实际上可能也知道 - 知道您的所有登录名和密钥。)

答案3

这是该公司在其安全声明

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

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

所以:

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

答案4

如果没有可用的直接路径,大多数应用程序(例如 TeamViewer)都会通过其服务器进行路由,从而无需使用公共 IP 和开放端口。

相关内容