ext Terminal是使用Golang和React開發的一款HTML5的遠程桌面網關,具有小巧、易安裝、易使用、資源占用小的特點,支持RDP、SSH、VNC和Telnet協議的連接和管理。
Next Terminal基于 Apache Guacamole 開發,使用到了guacd服務。
目前支持的功能有:
默認賬號密碼為 admin/admin
資源占用截圖
資產管理
rdp
vnc
ssh
批量執行命令
https://gitee.com/dushixiang/next-terminal
018年世界杯都來了,你還在看幾年前的云桌面傳輸協議文章嗎?來看新鮮出爐的!
上期我們談到了影響云桌面性能的三個重要因素是啥?分別是服務器配置、網絡和桌面傳輸協議。其中,桌面傳輸協議是各云桌面廠家的技術核心。本期我們來談談全球幾大主流桌面傳輸協議。
桌面傳輸協議,指的是一組特殊的數據傳輸規則,可以使云主機和云終端之間的數據有序并高效傳輸,從而達到“豐富而流暢”的用戶體驗。簡單來說,就是一套踢球規則,每個球員(每種數據)都有自己的路徑,并且球員之間要配合好,才能快速傳球傳球進球!
戈洛文45度角斜傳到后點,無人盯防的加津斯基頭球攻門得手,此球也是本屆2018世界杯的首粒進球
云主機和云終端之間傳輸的數據包括視頻、音頻、圖像、鍵盤鼠標輸入以及其它外設輸入。需要注意的是,桌面傳輸協議應用于虛擬云桌面(VDI)和共享云桌面是不同的。在其它條件相同時,使用相同的桌面傳輸協議在共享云桌面中,其傳輸速度會比虛擬云桌面(VDI)要快。畢竟球場不同(因為虛擬云桌面VDI多了虛擬層),路程遠了,傳球時間自然也就長了。
1. 圖形數據處理方式
目前主要有兩種:
2. 傳輸層協議
目前主要有兩種:
3. 壓縮和緩存技術
壓縮技術有兩種:有損壓縮和無損壓縮。根據字面意思也很好理解,有損壓縮就是傳輸的數據有損壞,而無損壓縮則是數據是完整沒有損壞的。兩者最直觀的區別就是圖像數據的傳輸(如下圖):經過無損壓縮的圖像依然清晰,而經過有損壓縮后的圖像則模糊不清。
來源:Google
有損壓縮除非和終端渲染技術(client-side rendering)搭配使用,才可以保證圖像清晰;對于無損壓縮,如果數據傳輸量大,也會出現不流暢的現象。如RDP協議屬于無損壓縮,但是流暢度不佳。而微軟后期推出RemoteFX技術使得圖像加速,這時流暢了,但畫質又有損耗。因此,兩者中間得有個取舍。優質的壓縮算法需要權衡二者,這樣不僅可以保證圖像質量清晰,還可以有效減少數據傳輸量,從而降低對帶寬的要求。
緩存技術是保存經常使用的顯示元素,如字體和圖位等,如果需要就直接獲取,而無需向服務器發送重復請求,以提供高效的桌面傳輸性能。
4. 外設支持技術
事實上,各協議都提供了對虛擬多通道支持的技術。簡單來說,桌面傳輸協議為了保證外設設備正常運行,就要為每種設備建立一條道路,以保證其正常有序通行。
聽不懂的,稍安勿躁。小微換個說法跟大家解釋:
高效的桌面傳輸協議的性能可以從資源占用(CPU, 網絡帶寬),桌面流暢度(使用起來卡不卡),丟幀率(部分畫面是否丟失),畫質(畫面清晰度和色彩還原度),外設支持(兼容性,識別速度,讀寫速度)等幾個方面來測試和評價。至于其中的原理,我們暫且不用深究。
1.1 歷史由來
RDP(Remote Desktop Protocol,遠程桌面協議)是基于ITU-T(國際電信聯盟)的T.120協議中的T.128應用程序共享協議(又稱為T.share),隨后由英國軟件公司DataConnection Limited優化成RDP的雛形。此時,微軟看到RDP是塊肥肉,果斷收購了DataConnection Limited,進而把RDP變成自己的囊中物(知識產權)。
RDP協議的第一個版本是RDP 4.0,當時隨同“Terminal Services”出現在Windows NT 4.0 Server、Terminal Server Edition。事實上,這個版本不是微軟自己開發的,而是通過Citrix開發的。當時微軟對外宣稱是“共同開發”。具體過程是這樣的:
在RDP4.0版本的開發期間,微軟想自己單干,于是決定不再授予Citrix公司Windows NT 4.0的源代碼開發的權利,還宣稱要開發微軟版本Winframe,并且要求Citrix將MultiWin技術許可給微軟。微軟想“過橋抽板”,Citrix當然不同意。于是,兩位行業大佬開始談判。談判的結果是,微軟同意在Windows NT Server 4.0的RDP服務命名為Citrix MetaFrame,并且包含在Windows NT 4.0終端服務中的Citrix提供的DLL仍然帶有Citrix版權,而不是微軟版權。同時,Citrix也答應不提供競爭產品,但保留向微軟產品出售附加產品的權利。這種關系一直持續至今。
發展至今,已經有10個版本了。當前主要使用的版本有6.1(Windows Server 2008/Windows Vista SP1/Windows XP SP3),7.0(Windows Server 2008 R2/Windows 7),其中7.0版本增加了Remote FX功能,用于提升高清圖像的渲染效果,如2D、3D圖像。
1.2 原理及特點
RDP 10.0 是基于TCP/UDP協議的,其桌面傳輸速度有了很大的提升;此外,在視頻方面,已經是AVC 4:4:4模式了,意味著顯示效果非常接近PC機。不過其寬帶占用高于PCoIP和HDX。RDP協議只能支持Windows和Mac平臺。
在云桌面領域中,RDP協議主要應用于共享云桌面方案(基于多用戶操作系統,實現多個用戶共享一套系統和軟件,每個用戶獨立使用,互不干擾),如Centerm(升騰)的C75零客戶機就是搭配使用RDP8.0協議。但需要注意的是,RDP協議并非專門為多用戶共享環境開發的,它的應用范圍很廣,所以RDP協議在云桌面中的性能并不能算“優”。因為RDP協議在多用戶同時運行下,其桌面流暢度和響應度會降低,而且畫質也會下降。
目前市面上專門為多用戶共享環境開發的云桌面協議有NComputing的UXP(User eXtension Protocol,用戶擴展協議)和vCloudPoint的DDP(Dynamic Desktop Protocol,動態桌面協議)。
vCloudPoint的DDP協議是混合使用了TCP和RDP協議,針對不同的畫面場景(如文字、網頁瀏覽、視頻等)進行優化而開發的,適用于共享環境下的桌面傳輸協議。DDP協議除了使用獨特的視頻傳輸技術外,還使用了H.264,以視頻流的方式傳輸整個桌面,其性能體現在一臺i7電腦可以支持30個1080P高清視頻超流暢播放。(好東西,不怕比較哈 )此外,IP虛擬化技術還可以允許每個用戶桌面都使用自己的IP地址,解決共享環境下部分基于獨立IP框架軟件的兼容性問題。
DDP視頻性能:在騰訊視頻,輸入“微云點云桌面1080p高清視頻播放”
2.1 歷史由來
PCoIP (PC over IP) 協議是由加拿大Teradici公司開發的遠程顯示協議。2008年,VMware宣布和Teradici共同開發PCoIP協議,以提高桌面虛擬化的性能。隨后,VMware推出了使用了PCoIP協議的云桌面產品VMware Horizon View,這個舉動直接促進PCoIP協議的商用化。2013年,亞馬遜也在AWS Amazon Workspaces產品中也使用PCoIP協議。 在云桌面領域中,VMware的名氣遠遠大于Teradici。所以大伙們都習慣說“VMware的PCoIP”。
需要注意的是,Teradici開發PCoIP協議的最初目的是應用于瘦客戶機和一些硬件的圖形加速,而不是桌面虛擬化,因此,PCoIP協議在應用于虛擬化軟件上就顯得心有余而力不足。為了彌補這個不足,VMware在View產品中增加對微軟RDP協議的支持,即用戶如果在使用桌面虛擬化時發現PCoIP協議無法實現的一些基礎功能時,例如外設的重定向功能,可以在注銷當前通過PCoIP登錄的桌面,然后再選擇微軟RDP方式登錄。讓用戶揪心的是,當然桌面的軟件狀態全部沒有了,用戶體驗大打折扣;為徹底解決View產品在核心技術上依賴于其他公司的困境,VMware試圖開發自己的協議Blast。最初是在2011年VMworld2011大會上宣布AppBlast項目。直到2016年,Blast協議才隨同VMWARE HORIZON 7正式發布,不過目前Blast只能在Html5上訪問。更多功能還待開發。
2.2 原理及特點
PCoIP協議基于UDP協議,其傳輸效率會比RDP協議更快。PCoIP協議靈活支持多種平臺,如Windows, Linux, Mac, Android, iOS, Chrome, and web。目前最新版本是隨同VMware Horizon 6.0發布的,帶寬占用低,圖像質量好。而在VMware Horizon 7.0,Blast協議出來了。這個是VMware自己獨立研發的一款協議,不過目前只能支持HTMI訪問,其特點是圖像性能非常優(Blast默認H.264)。雖然目前還沒推出視頻AVC 4:4:4模式,但圖像顯示效果已經非常棒了。在介紹完Citrix的ICA/HDX之后,小微會給大家看兩個視頻體驗。
ICA(Independent Computing Architecture)是Citrix公司自己開發的桌面傳輸協議。Citrix是一直專注于桌面虛擬化。所以非常有實力。
ICA協議基于UXP協議,其特點是平臺無關性和節省帶寬,換句話說,ICA協議幾乎可以支持所有桌面操作系統和對帶寬占用節省最低。目前使用ICA協議的產品有Citrix's WinFrame, Citrix XenApp , 和Citrix XenDesktop。ICA協議能夠支持音頻、視頻和多媒體帶寬控制,在視頻觀看、Flash播放、3D設計等應用上,其用戶體驗會很流暢。
2009年,Citrix在發布XenDesktop 3.0時推出HDX技術。HDX技術是基于ICA協議開發的,同時包含其它子系列協議,并且還增加了提高了多媒體、語音、視頻和3D圖形性能的功能。
來到這里,小微把國外一份對于RDP10.0,Blast和ICA/HDX三種協議的視頻效果測試報告在這里簡單展示一下(報告鏈接在參考文章的第13篇)。
<script src="https://lf6-cdn-tos.bytescm.com/obj/cdn-static-resource/tt_player/tt.player.js?v=20160723"></script>
報告結論:HDX的性能是最棒的,無論是視頻顯示效果,還是網絡帶寬占用。其次是Blast,最后是RDP10.0。不過,整體來說,三種協議都是非常不錯的。
不過需要注意的是,這份報告只是單純比較三種協議的視頻性能,而并沒有測試N多個用戶同時跑視頻時的效果。從小微的N次測試來看,當服務器連接的終端數量超過15個時,RDP10.0會耗用大量的服務器資源。
SIPCE(Simple Protocol for Independent Computing Environments)于2007年由Qumranet公司最先開發,后來Red Hat公司把Qumranet收購并開源了。SPICE協議的最大的特點是開源,國內很多云桌面產品都是直接在SPICE協議上做文章的。由于SPICE協議有太多版本了,在這里就不列舉了。
不過,由于底層是固定了,所以可優化的程度不高。因此,基于SPICE協議開發的虛擬云桌面(VDI)方案性能不佳,帶寬占用高、圖像顯示不優仍是其痛點。雖然國人的技術不斷更新,方案也不斷改善,但協議決定了其性能的上限。奈何?沒錯,SPICE協議主要看氣質!
① RDP/Remote FX只能在Windows和Mac平臺使用,而ICA/HDX 可以在 Windows, Mac, Linux, Blackberry, iOS, Android等多平臺使用;
② RDP/Remote FX需要遠程主機使用圖形處理單元進行位圖編碼,而PCoIP直接使用服務器CPU,所以PCoIP比RDP/RemoteFX的傳輸效率要高;
③ PCoIP可以支持RDP;
④ 只有SPICE協議是開源的,提供平臺給大家分吃云桌面蛋糕。
⑤ ICA/HDX協議和PCoIP協議的授權費用不菲,大多用于虛擬云桌面(VDI)中;而RDP/RemoteFX協議較為劃算,但總體性能一般。至于SPICE協議,就的去自己研究了。因為實在是太多版本了!!
小微建議小伙伴們通過測試自己找答案。可以通過視頻播放、畫面顯示質量、用戶體驗度、外設兼容等去判斷。
不過,小微提醒大家,并不是性能高就適合自己的。畢竟,價格和應用需求也是考慮的重要因素。如果用于普通辦公和需要標準化教學的普教電腦機房,不妨考慮vCloudPoint微云點的共享云桌面;)
歡迎關注下期話題:
VDI,VOI,IDV,共享云桌面的區別。
開始前準備:
主要步驟:
Guacamole是無客戶端遠程桌面網關。它支持眾多標準協議,例如VNC,RDP和SSH。它不需要插件或客戶端軟件。得益于HTML5,在服務器上安裝了Guacamole之后,只需使用Web瀏覽器即可訪問遠程桌面。
Guacamole架構
為了保證guacamole-server正常安裝,并且體驗更多功能,我們盡可能多的安裝以下依賴包:
sudo yum install cairo-devel libjpeg-turbo-devel libpng-devel uuid-devel
sudo yum install libvncserver-devel pulseaudio-libs-devel
sudo yum install freerdp-devel
sudo yum -y install libssh2-devel openssl-devel pango-devel
sudo amazon-linux-extras install epel
sudo yum install libtelnet-devel pango-devel
sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
sudo yum install ffmpeg-devel
sudo yum -y install libvorbis-devel
sudo yum -y install libwebp-devel
2.編譯安裝guacamole_server源碼包
# 安裝gcc編譯器,源碼編譯需要
sudo yum -y install gcc
# 下載源碼
sudo wget http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/1.1.0/source/guacamole-server-1.1.0.tar.gz
# 解壓源碼
sudo tar -zxvf guacamole-server-1.1.0.tar.gz
# 進入到guacamole-server-1.1.0目錄
sudo cd guacamole-server-1.1.0
# 執行configure進行腳本配置,并將guacd的啟動腳本置于/init.d目錄下
sudo ./configure --with-init-dir=/etc/init.d
# 編譯guacamole_server源碼
sudo make
# 安裝創建完的組件
sudo make install
# 更新已安裝庫的系統緩存
sudo ldconfig
3.配置guacamole為系統啟動服務
# 增加guacd啟動腳本為系統服務
sudo chkconfig --add guacd
# 設置guacd在各執行等級為開啟狀態
sudo chkconfig guacd on
sudo yum install tomcat
# 下載guacamole-client預編譯web應用
sudo wget http://apache.org/dyn/closer.cgi?action=download&filename=guacamole/1.1.0/binary/guacamole-1.1.0.war
2部署guacamole-client
# 將下載的guacamole-1.1.0.war拷貝至/var/lib/tomcat/webapps
sudo cp guacamole-1.1.0.war /var/lib/tomcat/webapps/guacamole.war
3.配置Guacamole服務文件
# 創建guacamole文件夾
sudo mkdir /etc/guacamole
# 創建配置文件guacamole.properties
touch /etc/guacamole/guacamole.properties
# 添加以下配置到guacamole.properties
basic-user-mapping: user-mapping.xml
# 創建配置文件user-mapping.xml
touch /etc/guacamole/user-mapping.xml
# 添加以下設置到user-mapping.xml
<user-mapping>
<authorize username="test" password="test"> # 用于guacamole登錄的的用戶名密碼,即安裝server和client機器上的用戶名密碼
<connection name="rdp localhost">
<protocol>rdp</protocol>
<param name="hostname">localhost</param> # 遠程桌面連接安裝server和client機器
<param name="port">3389</param> # rdp一般默認使用3389端口
<param name="ignore-cert">true</param> #注意設置此項
<param name="username">test</param> # 需要遠程連接桌面的用戶名和密碼
<param name="password">test</param>
</connection>
</authorize>
</user-mapping>
4.啟動guacd和tomcat
sudo systemctl start guacd
sudo systemctl start tomcat
1.Amazon Linux 2安裝 MATE桌面
# 安裝 MATE 軟件包:
sudo amazon-linux-extras install mate-desktop1.x
# 將 MATE 定義為您的默認桌面。
# 要為所有用戶定義 MATE:
sudo bash -c 'echo PREFERRED=/usr/bin/mate-session > /etc/sysconfig/desktop'
# 安裝 TigerVNC 程序包:
sudo yum install tigervnc-server
# 安裝xrdp
sudo yum install xrdp
2.啟動rdp服務
sudo systemctl start xrdp.service
在瀏覽地址欄通過 http://服務IP地址:8080/guacamole/ 形式訪問,出現guacamole登錄界面后輸入用戶名密碼即可訪問桌面。
登錄界面
注意點:記得開放8080和3389端口,如果使用其他協議則開放對應端口。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。