teamviewer 工作原理

Teamviewer连接的原理主要分为三部分,分别是①如何根据ID找到要连接的电脑,②找到电脑之后如何内网间互联,③如何能操作对方的电脑。
一、先说TeamViewer如何根据ID连接到对方:
1、运行 TeamViewer 之后,电脑会先连接到TV的服务器,然后服务器对这台电脑分配一个唯一的ID。这个ID主要是以网卡的MAC地址为依据生成的,所以如果想给电脑换一个Teamviewer ID,只要修改一下MAC地址就行了。
2、当一个 TeamViewer 连接另一个的时候,会先连接到服务器,通过ID与电脑的对应关系找到这台要连接的电脑。
二、如何建立内网对内网的连接:
如果连接的其中任一方是有公网IP的网络环境,双方的连接就启用P2P连接。
双方是内网的情况, TeamViewer数据就会通过 TeamViewer 自己的服务器进行中转。

teamviewer 工作原理_第1张图片

这也是TeamViewer 内网互通会在网络高峰期比较慢的原因。

三、如何操作被控机的鼠标与键盘。
原理与远程控制木马是一样的。这里远端指被控制的电脑。
连接建立之后,远端的电脑图像压缩后发回本地,这样本地就能看到画面,本地进行键盘鼠标的等操作的动作封装成数据包发送给远端解开后还原成动作进行远程的模拟操作。
远端反馈的画面通过压缩后继续发回给控制端。
就远控的图像传输来说,早年远控都是直接进行JPEG截图后传输,所以速度不太理想。之后各种大牛延伸出很多很腻害的基于截图的方式的屏幕传输的算法,传输效率进一步提高,通常是先加载一个虚拟屏幕驱动,然后对屏幕做逐行扫描,然后计算变化的部分,之后只传输变化的部分。
TeamViewer(版本9.0)也是支持虚拟屏幕驱动的,但是需要到设置中手动进行安装。

 

另一名网友回复:

"如果连接的其中任一方是有公网IP的网络环境,双方的连接就启用P2P连接。",最近对Teamviewer的连接机制做了一些试验,结果表明您的这个说法可能并不准确。
我用TV连接一台拥有公网IP的计算机A和通过NAT上网的计算机B,发现A和B的远端都是同一个IP(124.232.163.81、221.181.64.34,多次发起连接,远端IP会改变,但每次连接,A和B的远端IP相同)。相同的环境下,用QQ传输文件,A和B的远端IP为对方的IP(或对方的粗口IP)
此外,我用TV连接两台通过NAT上网的计算机B和C,远端IP为124.232.163.84或221.181.64.32(与之前A和B的连接IP段相同)。
所以我推断,即使有一方为公网IP,TV也会经过中间服务器传输。对于双方均为公网IP的情况,我没有测试条件,未作试验。

另一名网友回复的话:

用了挺久的teamviewer。下面都是我猜的。

teamveiwer的工作原理:把你的键盘鼠标操作发送到被控制的电脑上,执行相同的操作。

teamviewer如何刺穿内网:我感觉使用teamviewer进行远程控制的时候,操作的响应非常慢,而且一天之内不同时段的延时不同,所以推测它是通过服务器中转通信数据的方式来刺穿内网的(最土的方式...)。
 
 
另一名网友回复的话:

TeamViewer也是可以纯内网访问的,见下图:

teamviewer 工作原理_第2张图片

经过一些设置之后ID这里是可以显示IP地址的。内网中的另一个TeamViewer输入这个IP就能连接了。下面是设置方法

点击【其他】-【选项】

teamviewer 工作原理_第3张图片

把下图红色的【呼入的LAN】连接设置为【仅接受】。

teamviewer 工作原理_第4张图片

确定之后ID处就会显示内网IP了。

设置为接受的话连接方在ID处输入IP也行,但是本机ID区域只会显示TeamViewer的ID,所以我一般要内网连的话就设置为仅接受。

当然你们设为接受然后ipconfig查IP也行啦。

 

链接: https://www.zhihu.com/question/20242069/answer/14455328
来源:知乎

你可能感兴趣的:(teamviewer,远程控制)