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


34

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


我对此也很好奇。:D
gumuruh

Answers:


25

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

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

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

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


3
扩展问题:是否有可能自己运行这样的第三方服务器并使VNC(或任何其他客户端)以相同的方式工作?
TheStoryCoder

2
好问题。这样,您就可以创建新的TeamViewer公司了……
giuseppe

@TheStoryCoder有运气吗?我认为我们需要先在服务器和客户端之间创建通信协议,然后再构建tcp服务器。RDP是Windows的默认协议,但我想它不是设计用来支持此协议的。我知道TeamViewer使用自己的协议。我真的希望有人在那里已经为它创建了一个开源项目:)
Altiano Gerung

@TheStoryCoder一种简单的方法,但是安全性较低:您可以安装一台服务器OpenVpn(服务器A),而PC(PC A)通过该服务器连接到Internet。并且您有一台PC(PC B)仅接受来自VPN服务器的传入连接或远程桌面(如果是Windows)。这样,你可以连接到您的PC A是PC B其中规定通过服务器A.连接
Janaka [R Rajapaksha

8

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

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

我不知道这是否意味着所有流量都通过Teamviewer服务器进行传输,但是可能如此。(由于它记录了所有单击和按键,因此,从理论上讲,这可能意味着它们可以-而且由于我们实际上也了解PRISM等-知道所有您的登录名和密钥。)


3

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

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

如稍后在“加密和认证”段落中所述,甚至我们作为路由服务器的操作员也无法读取加密的数据流量。

所以:

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

您可能知道的任何开源解决方案?
Altiano Gerung

@AltianoGerung我不知道有没有开放像Teamviewer这样的端口就可以工作的开源软件
golimar 18'Jul

0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.