TeamViewer替代方案


引言
昨天,****在微博上發布了一條消息,披露某個黑客組織已經成功入侵了某軟件服務器,並成功拿下某軟件公司的后台管理系統,使得黑客組織可以訪問並控制任何安裝了某軟件的客戶端。還發布了應對措施,且要求近期不要使用該軟件,核查該事件對企業帶來的影響,發生安全事件及時上報。這一重磅消息一經發出,在互聯網上雖不能說炸開了鍋,也算掀起了不小的波瀾。隨后,湖南省信息安全中心也發布了安全漏洞預警,措辭雖沒有****嚴厲,但也要求用戶卸載軟件並關閉5938端口臨時處置。這一消息在互聯上迅速傳播,大型國企,醫院等企事業單位,包抱民營企業,基本都在第一時間,對該事件進行了處置。畢竟安全無小事,加上最近流行的勒索病毒,搞得大家寧可信其有,不可信其無,紛紛卸載軟件。但隨后,****又刪除了該條微博,某軟件官方網站一直沒有相關通告,讓整個事件走向撲朔迷離。不管事件后繼怎么發展,我們都希望某軟件是安全的,強烈譴責黑客的行為,也感謝深****的提醒,時刻提防網絡安全,共同維護網絡安全環境。

技術探討
某軟件不失為一款優秀的遠程控制軟件,為廣大用戶工作和生活提供了方便,如果真的突然不能使用該軟件,勢必會對部分用戶產生一定的影響。雖然也有相關替代的產品,如XT800,向日葵等,但從效率方面考量,筆者認為暫時都不如某軟件強大,這也是某軟件能在中國有如此巨大用戶數量的原因。筆者最近發現AnyDesk軟件基本和某軟件性能相當,不過都是國外軟件,且價格不菲,個人用戶如果購買使用,還算有點小奢侈。
某軟件到底使用了什么技術,這么小的一個軟件,為何就沒有一款國產的軟件能夠在性能上與之匹敵?筆者從事軟件開發十多年,下面將從技術層面介紹一下遠程控制軟件實現的兩種原理,不正之處歡迎指正。
第一種思路:
截屏 -> 網絡傳輸 -> 顯示。原理夠簡單吧,實現起來也夠簡單,但要做到好用,高性能,這里面就比較深了,具體實現的思路也較多。市面上大多數產品都是按這個思路來的,包括某軟件,AnyDesk等優秀軟件,也包含QQ遠程協助。這種思路想要做得足夠優秀,就必須找到一種高效低代價的方法,快速的獲取屏幕變化區塊,且僅傳輸變化的內容到對方進行顯示。通常的做法都是從User32.dll入手,通過掛鈎這些系統繪圖函數實現,再解決那些使用DirectX技術的軟件,因為使用了DirectX技術,繪制不再經過User32.dll,也就捕獲不到相關繪制信息。還有一種方法就是實現虛擬網卡驅動,當然這種方法也是第一種思路中難度最高的,也是性能最好的,算是一勞永逸的解決方法,目前使用虛擬驅動實現的,也有很多。比如我們之所以能在虛擬機軟件中看到桌面,就得益於虛擬網卡驅動的功勞。
第二種思路:
使用微軟的Rdp協議。沒有誰比微軟更精通Windows的底層,Rdp協議發展到現在,已經相當成熟,不管從功能還是性能,可謂相當優秀了,連3D都支持了。Rdp協議相比前面的方法最大的差別就在於,它傳輸的,大部份不再是圖片,而是繪圖命令,僅傳輸極少數圖片。 也就是說,客戶端看到電腦桌面,是通過傳輸過來的命令繪制上去的,這樣就節省了極大的帶寬。而且可以磁盤映射,聲音回傳,打印機共享等高級功能,交互性強,實用性高。

替代方案
既然微軟提供了這么優秀的功能,我們為什么不用?當然要用,在內網,或者有公網Ip的情況下,我們都在用,而且確實好用。Windows系統管理員對遠程桌面工具一定不會陌生。其它情況下,對不起,用不了!有不有解決辦法呢?有,先建VPN,再使用。算了,建VPN,太復雜了,普通用戶根本不會。那還有不有其它辦法?當然有,筆者已經實現了,而且穩定運行了很久,在需要的時候,這種解決方案從未放過我鴿子。
內網穿透 +遠程桌面
之所有大多數用戶在公司不能控制家里面的電腦,究其根本原因在於家里面的電腦設備處於NAT設備之后,NAT設備充當了一個硬件防火牆,形成了一個天然屏障,提供共享上網的便利,也阻止了那些不請自來的訪問。特別是在IPV4地址枯竭之后,就算撥號上網,運營商分配給你地址,其實是一個內網地址,而非公網地址。這給那些會設置路由器端口轉發的朋友,制造了不小的麻煩,在這種情況下想使用系統自帶的Windows遠程桌面,基本沒有可能。
何為內網穿透?你可以簡單的理解為可以從外網穿透NAT設備,直接訪問你家里面的電腦。比如P2P下載軟件,基本都使用了這一技術。實現原理也極為簡單,簡單解釋為A電腦和B電腦分別處於兩個不同的NAT設備之后,它們想要相互通訊。
第一種辦法,就是讓A和B分別和一個支點C建立連接,雙向傳輸數據時,都先將數據轉交給C,C再進行轉發,此時C起到媒人的作用。但這種方法有一個弊端,就是當通訊的數目較多時,媒人會很忙,可能家門檻都會被踏破。實現起來,對C服務器的寬帶要求就較高,當然解決辦法就是增加支點C的數量和帶寬,可以簡單的理解為資源疊加吧,好處就是當一支點掛掉以后,還有其它支點繼續服務。
第二種辦法,媒人C介紹A與B認識,之后A與B直接通訊,與媒人C再無瓜葛,聽上去無情,但卻是最好的辦法。這種方法,也是所有遠程控制軟件在網絡情況允許的前提下,優先考慮和使用的方法。但現實往往是殘酷的,這種需要硬件的支持,同時運營商也會封鎖這種技術的實現,制造一些麻煩,這也是P2P下載軟件被封殺的原因,原因是使用的人多了,可能造成局部路由或者交換設備癱瘓。
以上就是穿透NAT設備的兩種方法,基本所有的遠程控制軟件,都綜合使用到了這兩種辦法。其它諸如upnp技術,在此不再介紹,原理跟手動設置路由器轉發功能一樣。我們的解決思路,就是用內網穿透的辦法去使用微軟Windows操作系統自帶的遠程桌面實現遠程控制。這種解決辦法是成本最低,也是最容易實現的,性價比最高的。繞過了實現思路中第一種方法的技術壁壘。

軟件實現
如果僅提供一個技術解決方案,而沒有軟件實現,總覺得還是空洞。雖然解決方案介紹得簡單,畢竟實現起來,還是會碰到不小的麻煩,而且工作量也不會太少。按照上面的思路,筆者已經實現了,先看一張效果圖吧,界面將就看,后期會不斷的改進,歡迎關注!
 

 暫時別嫌它難看,干起活來,那叫一個麻利,干凈利索,各項功能考慮得相當周到,雖然看起來還不成熟。好不好用,我說了不算,你說了才算。還是聊點技術,聽了你就會覺得它很牛逼。

1>IOCP高並發技術
IOCP技術具有天生的優越性,相同的硬件配置,能夠承載更多的TCP連接,消耗更少的資源。相比異步TCP,確實在並發量上有不小的突破。單台普通台式機,輕松負載20萬個 TCP連接,別以為用了 IOCP就是高並發,其實這里面東西多着呢。IOCP主要用於解決媒人C的功能,讓她多撮合幾對。
2>負載均衡
你找媒人之前,得先找負載均衡,它負責管理媒人的,相當於一個中介機構,它會根據媒人的工作量,區域,給你找個最合適的媒人。
3>通道替換
A和B通訊的管道太慢了,給你換一根粗點的,讓通訊更暢快一點。原理很簡單,但必需做到兩點,一是老水管的水滴水不漏,二是順序都不能亂,一點不能亂。這兩樣一點沒做對,全部報廢。這個最難做,聽起來簡單,做起來特別麻煩。
4>通道漂移
A和B通訊,之前通過媒人C交換信息,媒人C生病了,不干了,全部工作交給媒人D來干。難度不次於通道替換。
5>內網穿透P2P
俗稱的TCP打洞,實現媒人介紹后,兩個人直接戀愛,拋棄媒人。別拿UDP打洞來比,沒有可比性。網上做這個技術死得一堆一堆的。
6>動態壓縮傳輸
小包壓縮,小包解壓,效率高。主要解決通過遠程桌面持貝可壓縮文件。未實現該技術,想要節約時間,你得先壓縮再持貝,復制過去后再解壓。現在不用了,直接持貝吧,底層
已經自己給你做好了,你只管復制粘貼,夠貼心吧。
7>數據包加密
Rdp協議能搞懂,能拆開包的人不多,為了安全,再加密一次,保險了吧。
8>私有傳輸協議
底層的包既有RDP的數據,還得有我自己的控制包,為了在一個TCP連接里面傳輸兩種包,得用協議把他們分開。可能理解通過協議實現通道復用,信道分離的感覺。你可以理解
為把幾個TCP的數據,傳輸到這一個TCP,到達對等端后,再把數據分離出來,分別傳輸到對應的TCP通道里面去。
9>反向連接技術
這個最簡單,也最好理解。公網不能主動連接介於NAT之后的設備,那就反過來,讓NAT之后的設備主動連接公網的設備吧。其中稍有點難的就是心跳連接,你得把它做成打不死
的小強,中斷之后持續連接直至成功。

貼心的小功能

一、遠程文件管理功能
你不需要遠程桌面連接就直接可以上傳下載文件。其實很多時候,我們不需要操作或者控制電腦,我們只需要傳輸幾個文件或者管理文件。另外一個現實的問題,就是很多堡壘機使用頻次很高,我們盡量節約出時間讓別人使用吧。不可能你要傳輸一個小時的文件,你就獨占遠程桌面一個小時。另外文件傳輸中,上傳下載均實現了斷開續傳功能。
二、.權限管理
主帳戶可以建立子帳戶,可以授權計算機給他,這樣他就有遠程連接這台電腦的權限。員工離職后,直接收回權限或者刪除帳戶就可以了,沒有后顧之憂。

安全性
基於WindowRdp協議,但安全性高於WindowsRdp協議。在管理服務的時候,為了管理方便,我們打開3389服務,你連接的同時,別人也能連接吧,猜不到的地址或者端口號,那我就掃吧,只要你開了,我總能掃到。之后,就有各種辦法來嘗試你的密碼,再說,微軟遠程桌面服務還時不時的報出各種漏洞呢。用我這個方案,所有問題解決了。別把3389端口暴露出來,相當於門都關上了,你怎么破?此路不通!

軟件安裝與使用
安裝:
綠色軟件,不需要安裝,復制到電腦上就可以了。軟件分為兩個端,主控端與被控端。被控端就是安裝在被控機上面,如家里面的電腦,機房的服務器,總之你想控制誰,你
就安裝被控端到哪。主控端,這個就好理解了,就是你控制被控機的工具。
注冊:
打開主控端登錄程序,點擊注冊用戶,跟着指引,很容易就能完成注冊工作。注冊時需要手機號碼接收驗證碼,手機號同時也是登錄名,這樣不容易忘記用戶名。
登錄:
用剛剛注冊的帳號分別登錄被控端和主動端,最好先登錄被控端。此時主控端登錄成功后,就可以在計算機列表面板里面,看到多了一台計算機,雙擊就會連接遠程桌面,輸
入登錄密碼,一切搞定。其它功能,就先不介紹了,稍微摸索一下,就會了。

軟件下載 https://pan.baidu.com/s/15vJvn-NiMsUwXj5syPR35g 提取碼:202o 備注:360可能會阻止軟件,最好加入360信勝區。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM