teamviewer 工作原理

原文鏈接:https://blog.csdn.net/frogking_cn/article/details/55504142

Teamviewer連接的原理主要分爲三部分,分別是①如何根據ID找到要連接的電腦,②找到電腦之後如何內網間互聯,③如何能操作對方的電腦。
一、先說TeamViewer如何根據ID連接到對方:
1、運行 TeamViewer 之後,電腦會先連接到TV的服務器,然後服務器對這臺電腦分配一個唯一的ID。這個ID主要是以網卡的MAC地址爲依據生成的,所以如果想給電腦換一個Teamviewer ID,只要修改一下MAC地址就行了。
2、當一個 TeamViewer 連接另一個的時候,會先連接到服務器,通過ID與電腦的對應關係找到這臺要連接的電腦。
二、如何建立內網對內網的連接:
如果連接的其中任一方是有公網IP的網絡環境,雙方的連接就啓用P2P連接。(注)就是說如果對方防火牆禁用P2P就不可以了嗎?答案是肯定的。
雙方是內網的情況, TeamViewer數據就會通過 TeamViewer 自己的服務器進行中轉。

這也是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也是可以純內網訪問的,見下圖:

經過一些設置之後ID這裏是可以顯示IP地址的。內網中的另一個TeamViewer輸入這個IP就能連接了。下面是設置方法

點擊【其他】-【選項】

把下圖紅色的【呼入的LAN】連接設置爲【僅接受】。

確定之後ID處就會顯示內網IP了。

設置爲接受的話連接方在ID處輸入IP也行,但是本機ID區域只會顯示TeamViewer的ID,所以我一般要內網連的話就設置爲僅接受。

當然你們設爲接受然後ipconfig查IP也行啦。

 

鏈接:https://www.zhihu.com/question/20242069/answer/14455328
來源:知乎

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章