日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

guacamole 认识

發布時間:2023/12/20 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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-devel

2、安裝可選依賴,根據要求安裝

(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.gz

5、進入目錄

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.d

7、編譯安裝:

sudo make && make install

8、更新系統中已安裝庫的緩存:

ldconfig

9、啟動guacd服務

sudo /etc/init.d/guacd start

10、修改服務配置(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,內容如下:
?

<user-mapping><!-- 登陸賬號密碼 --><authorize username="admin" password="123"><!-- 定義一個通過rdp協議登錄的window桌面 --><connection name="windows"><protocol>rdp</protocol><param name="hostname">192.168.1.1</param><param name="port">3389</param><!-- 桌面用戶名密碼 --><param name="username">user</param><param name="password">password</param><!-- 大小自動變化 --><param name="resize-method">display-update</param><!-- 分辨率 --><param name="dpi">100</param><param name="console">true</param><param name="disable-audio">true</param><param name="enable-drive">true</param><param name="drive-path">/usr/guacamole/upload/</param><param name="create-drive-path">true</param><param name="ignore-cert">true</param></connection><!-- 定義一個通過ssh協議登錄的centos桌面 --><connection name="centos ssh"><protocol>ssh</protocol><param name="hostname">192.168.1.2</param><param name="port">22</param></connection><!-- 定義一個通過vnc協議登錄的桌面 --><connection name="vnc"><protocol>vnc</protocol><param name="hostname">vncdesktop</param><param name="port">3244</param><param name="password">VNCPASS</param></connection></authorize> </user-mapping>

這個時候訪問瀏覽器, 輸入賬號: admin, 密碼:123 進行登錄。 登錄成功后選擇對應名稱的桌面即可進行相應的登錄。

(3)另外可以依賴mysql數據庫,將桌面等信息存放到mysql,并支持實時添加桌面進行連接

總結

以上是生活随笔為你收集整理的guacamole 认识的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。