guacamole 认识
簡介:guacamole是apache開源的一款連接遠程機器(類似window機器的mstsc工具以及linux的 xfreerdp遠程工具)的web應用。
官網:http://guacamole.apache.org/
一、介紹
1、先看看官網提供的架構圖
- 其中guacamole將架構圖中? HTML5(JavaScript編寫)以及guacamole server中的guacamole(Java編寫)部分打成了一個war包,稱之為guacamole-client,部署在tomcat等容器中。
- guacamole server中的guacd(C編寫) 稱之為guacamole-server,提供了代理和相關的依賴庫。
- 最終由 guacd 部分通過rdp、vnc等協議(利用依賴庫)連接到遠程的機器。
2、介紹:guacamole是一個開源的用于連接遠程桌面(支持RDP、SSH、VNC等協議) 的Web應用程序,可以實現對遠程桌面的訪問。用戶可以不用安裝客戶端,而直接通過瀏覽器訪問到不受限制的遠程機器。
3、連接流程:用戶發起對遠程桌面的連接時,瀏覽器會通過建立在http協議基礎上的guacamole協議與web容器中的guacamole部分建立連接,然后將桌面的登錄數據發送給后端。web容器中的guacamole獲取到前端發送的請求后轉發給guacd(本地Guacamole代理),由guacd根據獲取的數據進行相應協議的連接。之后瀏覽器發起的桌面操作也都是先發送給web后端,再由后端轉發給guacd,guacd再實際去操作對應的桌面進行鼠標/鍵盤等控制。
4、guacd:guacd是guacamole實現遠程連接的核心,是一個安裝在guacamole后臺運行的守護進程。
二、guacamole服務端(guacd)部署
服務端為 guacamole-server,為c語言編寫的服務。 下面講兩種部署方式:
命令部署方式:
1、編譯 guacamole-server 需要安裝如下依賴:
sudo yum install cairo-devel libjpeg-turbo-devel libpng-devel libtool uuid-devel2、安裝可選依賴,根據要求安裝
(1)提供視頻轉換功能: ?? sudo yum install ffmpeg-devel
(2)rdp支持,RDP支持需要FreeRDP 2.0.0或更高版:sudo yum install freerdp-devel
(3)基于終端 ssh、telnet的支持:sudo yum install pango-devel
(4)構建ssh的支持:sudo yum install libssh2-devel
(5)構建telnet支持:sudo yum install libtelnet-devel
(6)構建vnc支持:sudo yum install libvncserver-devel
(7)構建Kubernetes支持: sudo yum install libwebsockets-devel
(8)VNC的實驗性音頻支持:sudo yum install pulseaudio-libs-devel
(9)加密的支持:sudo yum install openssl-devel
(10)對聲音進行壓縮:sudo yum install libvorbis-devel
3、下載最新guacd服務包
地址:http://guacamole.apache.org/releases/1.1.0/
包:guacamole-server-1.1.0.tar.gz
4、解壓
tar -xzf guacamole-server-1.1.0.tar.gz5、進入目錄
cd guacamole-server-1.1.0/
6、運行configure之后,您可以看到找到了哪些庫,以及應該構建哪些庫的列表,-with init dir=/etc/init.d將guacd的啟動腳本安裝到/etc/init.d目錄中,命令如下:
sudo ./configure --with-init-dir=/etc/init.d7、編譯安裝:
sudo make && make install8、更新系統中已安裝庫的緩存:
ldconfig9、啟動guacd服務
sudo /etc/init.d/guacd start10、修改服務配置(guacamole默認的配置文件目錄為? /etc/guacamole)
根據上面啟動后,默認服務端口為 4822, 可以通過 netstat -antl | grep? 4822? 命令查看主機對該端口進行了監聽
可以通過下面方式修改配置:
創建配置文件: /etc/guacamole/guacd.conf,內容如下:
[daemon] pid_file = /var/run/guacd.pid log_level = info [server] bind_host = 127.0.0.1 bind_port = 4821 #對應服務啟動端口號這個時候重啟服務,監聽的端口改為 4821
11、配置文件存放路徑設置
默認guacamole配置文件存放路徑為 /etc/guacamole,我們也可以設置哪些路徑的文件作為我們的配置文件:
- 通過設置系統的 GUACAMOLE_HOME 變量,定義一個存放配置文件的路徑
- 啟動程序的用戶目錄下的? .guacamole 目錄下定義的配置文件也會被讀
- 系統的 guacamole.home 屬性對應的路徑下的配置文件
12、其他配置文件講解
在配置文件目錄下,我們還可以定義其他配置文件:
(1)logback.xml(日志文件的設置,Guacamole使用Logabck來記錄日志, 默認記錄到console, 也可以指定自己的Logback配置文件):
<configuration><!-- Appender for debugging --><appender name="GUAC-DEBUG" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern></encoder></appender><!-- 定義日志級別 --><root level="debug"><appender-ref ref="GUAC-DEBUG"/></root> </configuration>(2)extensions/ 目錄
會在對應的配置文件存放目錄的 extensions 目錄下存放Guacamole的插件, 啟動時默認會加載所有以 .jar結尾的文件
(3)lib/
會在對應的配置文件存放目錄的 lib 目錄下存放Guacamole插件所需要的依賴, 目錄下的.jar文件需要對所有插件可讀
docker部署方式:
1、pull鏡像:docker pull guacamole/guacd
2、啟動鏡像(映射本地端口4822):docker run --name my-guacd?-d -p 4822:4822 guacamole/guacd
3、另外可以在啟動鏡像的時候帶參數,如下:
定義guacd的日志級別:docker run -e GUACD_LOG_LEVEL=debug?-d guacamole/guacd
使用本地的網絡:docker run --name my-guacd --network host guacamole/guacd
三、guacamole客戶端部署
1、命令部署方式:
(1)獲取最新war包
官網地址: http://guacamole.apache.org/releases/1.1.0/???
對應的壓縮包:guacamole-client-1.1.0.tar.gz
通過tar命令解壓獲取到一個war包(或者直接源碼打包獲取):guacamole-1.1.0.war
(2)在配置文件定義目錄下,如/etc/guacamole 下,創建配置文件guacamole.properties,該配置文件指定guacamole-client連接哪個機器的guacd以及對應的端口等信息:
# Hostname and port of guacamole proxy #Guacamole代理的監聽地址, 默認localhost guacd-hostname: localhost #Guacamole代理的監聽端口, 默認4822 guacd-port: 4821#Guacamole會話的空連接時間,單位:分鐘; 默認:60 #api-session-timeout:(3)將war包部署到tomcat,啟動即可
2、docker部署方式:
(1)pull鏡像:docker pull guacamole/guacamole
(2)啟動鏡像(注意依賴于服務端的 my-guacd):
docker run --name my-guacamole --link my-guacd -d -p 8080:8080 guacamole/guacamole
(3)如果guacd不是通過docker部署的,則啟動的時候需要設置guacd的配置:
docker run --name my-guacamole -e GUACD_HOSTNAME=127.0.0.1 -e GUACD_PORT=4822? -d -p 8080:8080 guacamole/guacamole
四、訪問
(1)部署完 guacamole-server 和 guacamole-client 后,可以通過瀏覽器訪問,我們啟動了8080端口,直接瀏覽器:
http://127.0.0.1:8080? ,但是這個時候沒有任何桌面以及用戶信息
(2)在 /etc/guacamole 目錄下創建配置文件 user-mapping.xml,內容如下:
?
這個時候訪問瀏覽器, 輸入賬號: admin, 密碼:123 進行登錄。 登錄成功后選擇對應名稱的桌面即可進行相應的登錄。
(3)另外可以依賴mysql數據庫,將桌面等信息存放到mysql,并支持實時添加桌面進行連接
總結
以上是生活随笔為你收集整理的guacamole 认识的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 企业办公室5s管内容
- 下一篇: 移动端H5,软键盘的确认按钮变成搜索,