Guacamole搭建,一个基于HTML5的远程桌面
介紹
Guacamole可以同HTML5來代理遠程桌面協議(如: VNC, RDP, Telnet, SSH)
官網: http://guac-dev.org/
其由許多部件組成的輕量級web應用程序,大部分的功能依靠Guacamole的底層組件>來完成。
用戶通過瀏覽器連接到Guacamole的服務端。Guacamole的客戶端是用JavaScript編寫的,Guacamole server通過web容器(比如tomcat)把服務提供給用戶。一旦加載,客戶端通過http承載著Guacamole自己的定義的協議與服務端通信。
部署在Guacamole server這邊的Web應用程序,解析到的Guacamole protocal,就傳給Guacamole的代理guacd(中間層),這個代理(guacd)實際上就是解析Guacamole protocal,替用戶連接到遠程機器
架構
架構圖
架構解釋
用戶通過瀏覽器連接到Guacamole的服務端, Guacamole通過JS寫的客戶端是為用戶提供服務, 服務端和客戶端的通信是基于HTTP的私有協議; web應用就是將瀏覽器客戶端的內容接受處理并轉發guacd, 就是一個本地代理, Guacamole的協議和提供給guacd的協議是無關的, Guacamole的客戶端和web應用不需要知道具體運行的什么協議.
關于Guacamole協議:
web應用完全不需要理解遠程桌面協議, 但必須要理解Guacamole的協議(遠程顯示渲染和事件傳輸),
而作為一個遠程顯示和交互協議, Guacamole是現有遠程連接協議的集合. 想讓Guacamole支持一個新的協議 只需要下一個"翻譯"協議的中間層即可. 這個中間件就是guacd
關于web應用
web應用是直接和用戶交付的組件.web應用不依賴遠程桌面協議, 而依賴guacd; web應用的唯一左右就是提供一個漂亮的web界面和認證.
目前主要用java來寫的web應用, 但它可以基于任何語言重寫; Guacamole的重點在于API.
關于RealMint
Guacamole現在是一個通用的遠程桌面網關, 但并不絕對. Guacamole開始于一個純凈的基于文本的JS寫的名字叫做ReaMint的telnet客戶端, 這個主意起源于演示, 之所以出名主要是由于他是純JS寫的.
RealMint的隧道主要是用PHP寫的, 相對于Guacamole的HTTP的隧道, RealMint的隧道只是簡單的長輪詢, 并且效率低下. 但是RealMint的鍵盤部分實現的很好, 目前吸收到了Guacamole中, 但也僅此而已了.
關于VNC客戶端
一旦開發者掌握了HTML5的canvas標簽, 并且看到他已經被Firefox和Chrome支持了, 就有人想做個JS的的VNC客戶端的POC.
這個客戶端是純JS實現的,客戶端用的JAVA, 通過將VNC翻譯為XML版的. 該客戶端的開發是基于VNC本身功能驅動的, 開發范圍限制于將一個單獨的連接轉發給一組用戶. 雖然看法速度不是很快,但是足夠POC和項目需求了. 在Guacamole官網是可以找到的。
關于遠程桌面網關
開發一個基于文本協議的快速協議即可代表多個遠程管理協議. 整個系統以后臺運行形式重新構建了, 項目的范圍擴展到相對于一個快速的HTML5的遠程桌面協議功能足夠的VNC客戶端和通用API. 現在Guacamole可以用作一個中心網關來連接多個運行不同協議的桌面. 同時也提供可擴展的認證, 當然這里就需要可以通過HTML5訪問的一個通用API.
安裝
Guacamole有2個部分:
Guacamole-server: 提供代理和相關依賴庫
guacamole-client: 提供服務端容器(如Tomcat)運行的客戶端
Guacamole-client可以直接使用二進制程序, 但Guacamole-server就需要通過源碼按照了(不要灰心, 很簡單的, 并且編譯過程也是自動化的)
以下以CentOS為例介紹按照過程:
系統環境:
CentOS7.2 + Tomcat8.5 + JDK18 + guacamole-server1.1.0
安裝依賴環境:
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
yum -y install
http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
安裝依賴包
yum -y install cairo-devel libjpeg-devel libpng-devel uuid-devel yum -y install ffmpeg-devel freerdp-devel pango-devel libssh2-devel yum -y install libtelnet-devel libvncserver-devel pulseaudio-libs-devel yum -y install openssl-devel libvorbis-devel libwebp-develyum -y install freerdp-plugins下載安裝包:
訪問鏈接:
https://guacamole.apache.org/releases/1.1.0/
如圖
啟動服務
service guacd start
提示SUCCESS,表示安裝成功。
安裝client
下載鏈接中的guacamole-1.1.0.war,然后放入tomcat webapps目錄下(tomcat安裝省略)。然后啟動tomcat 訪問鏈接
http://192.168.0.46:8088/guacamole/#/
配置
創建guacamole配置文件和目錄
mkdir /etc/guacamole/
創建guacd.conf和guacamole.properties文件
guacd.conf
[server] bind_host = 0.0.0.0 bind_port = 4822guacamole.properties
# Hostname and port of guacamole proxyguacd-hostname: 0.0.0.0guacd-port: 4822enable-websocket: trueenable-clipboard-integration: true# auth-provider: net.sourceforge.guacamole.net.auth.noauth.NoAuthenticationProvider# noauth-config: /etc/guacamole/noauth-config.xmlauth-provider: net.sourceforge.guacamole.net.basic.BasicFileAuthenticationProviderbasic-user-mapping: /etc/guacamole/user-mapping.xml創建授權文件 user-mapping.xml
具體如圖所示:
重啟guacd和tomcat并登錄即可。
最后,分享一個演示的視頻
guacamole搭建,一個基于HTML5的遠程桌面
總結
以上是生活随笔為你收集整理的Guacamole搭建,一个基于HTML5的远程桌面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初始化oracle环境失败,Oracle
- 下一篇: 80072745 80072efd 解决