Guacamole 远程桌面
本文將Apache的guacamole服務的部署和應用,http://guacamole.apache.org/doc/gug/? 該鏈接下有全部相關知識的英文文檔,如果水平ok,可以去這里仔細查看。
一、簡介
Apache Guacamole 是無客戶端的遠程桌面網關。它支持VNC,RDP,SSH等標準協議。guacamole的客戶端是html5 web應用程序,因此通過訪問瀏覽器,就可以訪問到遠程桌面。大家應該使用過Microsoft的mstsc,或者VNC,又或者teamviewer,這些都是基于C/S架構的遠程桌面連接組件,而guacamole卻做到了基于B/S的遠程桌面連接。下圖介紹了guacamole的整個體系:
這里稍作講解,guacamole包括兩大部分,guacamole-client和guacamole-server。client是一個web服務器,實現了對server的遠程訪問。server則實現了client和遠程桌面服務的橋梁。server中包括了一個servlet容器,和一個guacd服務。準確來說,是這個guacd服務實現了對遠程桌面服務的代理。例如,你的遠程電腦中安裝了一個vnc服務器,那么這個guacd就你能實現從guacamole到這個vnc服務器的連接,完成代理工作。一個完整的guacamole應用體系,至少應該是這樣的:一個guacamole-client,一個guacamole-server, server中包括了guacd,一個遠程主機的vnc服務器。當用戶訪問client,client則將請求發送到server,server利用guacd進行協議轉化,guacd從遠程主機中的vnc服務器中獲取實時畫面,并將其返回給server,server加工處理后返回給client,用戶就能看到一個實時畫面監控的頁面了。(本文由開源中國-千里明月-原創 ,https://my.oschina.net/u/3490860/。如有雷同,純屬抄襲。)
二、適應場景
guacamole能夠實現多方面的用途,但我主要是為了實現java-web程序的網頁遠程監控,監控內網中的一部小型服務器。這樣子的話,我起碼需要三個東西,一個web服務器,一個guacamole服務器部署在Linux上,一個vnc服務(guacamole支持不同的遠程協議,rdp、vnc等,我只實現vnc)部署在遠程主機上。要完成這么一個工程,需要各個方面的環境搭建,下面一一介紹。
安裝環境:
我以centOS系統作為guacamole服務器的承載,工具使用secureCRT,通過SFTP傳輸文件。SFTP的基本命令如下:
pwd 查看遠程服務器當前目錄; lpwd 查看本地系統的當前目錄。 cd <dir> 將遠程服務器的當前目錄更改為<dir>; lcd <dir> 將本地系統的當前目錄更改為<dir>。 ls 顯示遠程服務器上當前目錄的文件名; ls -l 顯示遠程服務器上當前目錄的文件詳細列表; ls <pattern> 顯示遠程服務器上符合指定模式<pattern>的文件名; ls -l <pattern> 顯示遠程服務器上符合指定模式<pattern>的文件詳細列表。 lls 顯示本地系統上當前目錄的文件名; lls的其他參數與ls命令的類似。 get <file> 下載指定文件<file>; get <pattern> 下載符合指定模式<pattern>的文件。 put <file> 上傳指定文件<file>; get <pattern> 上傳符合指定模式<pattern>的文件。 progress 切換是否顯示文件傳輸進度。 mkdir <dir> 在遠程服務器上創建目錄; lmkdir <dir> 在本地系統上創建目錄。?
三、安裝jdk
部署guacamole需要jdk和tomcat,先下載jdk8,下載地址 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
將文件通過SFTP傳入CentOS,tar -zvxf 命令解壓,重命名為java8。然后,配置環境變量。
輸入: sudo vim /etc/profile? 編輯環境變量。
在/etc/profile文件末尾加入:?
export JAVA_HOME=java8的路徑(可以進入java8目錄使用命令“pwd”查看) export PATH=$JAVA_HOME/bin:$PATH? export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar?編輯好之后,保存退出。輸入:source?/etc/profile?更新環境變量。
為了驗證環境變量是否配置好,可以輸入$JAVA_HOME 查看,如果顯示出一行目錄,則正常。
再驗證jdk是否配置成功,輸入:java -version 如果輸入一下類似信息,則成功。
java version "1.8.0_171" Java(TM) SE Runtime Environment (build 1.8.0_171-b11) Java HotSpot(TM) 64-Bit Server VM (build 25.171-b11, mixed mode)四、安裝tomcat
? ? ? ? tomcat要8.0以上版本就行,下載地址:https://tomcat.apache.org/download-80.cgi
一樣的方式,將tomcat傳入了Linux,解壓,命名為tomcat。編輯環境變量
export CATALINA_HOME=/home/yue/tomcat export CATALINA_BASE= /home/yue/tomcat? ? ? ??最后的/etc/profile文件配置的所有環境變量如下:
執行 source /etc/profile 使環境變量生效
進入tomcat? 的bin目錄
輸入./shtartup.sh
如果輸出類似tomcat started的啟動信息 ,則沒問題。但是我們必須保證并且內網能夠用http://ip:8080的方式訪問tomcat,如果不行,看看是不是防火墻或者ip限制的問題,具體設置可以查看iptables的資料 http://man.linuxde.net/iptables。如果不在乎安全問題,可以直接關閉防火墻。
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT #允許本地回環接口(即運行本機訪問本機) iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT #允許已建立的或相關連的通行 iptables -A OUTPUT -j ACCEPT #允許所有本機向外的訪問 iptables -A INPUT -p tcp --dport 22 -j ACCEPT #允許訪問22端口 iptables -A INPUT -p tcp --dport 80 -j ACCEPT #允許訪問80端口 iptables -A INPUT -p tcp --dport 21 -j ACCEPT #允許ftp服務的21端口 iptables -A INPUT -p tcp --dport 20 -j ACCEPT #允許FTP服務的20端口 iptables -A INPUT -j reject #禁止其他未允許的規則訪問 iptables -A FORWARD -j REJECT #禁止其他未允許的規則訪問我這邊是已經配置成功了:
?
五、安裝必須的依賴庫
前面提到,Guacamole分為兩部分:提供guacd代理和相關庫的?guacamole-server,以及為servlet容器(通常為Tomcat)提供客戶端的guacamole-client。現在就先構建server。
guacamole-server 包含了guacamole連接到遠程桌面的必要組件,這些組件需要依賴一些庫。
guacd是guacamole-server的守護進程,接收來自web應用的隧道連接,然后代表guacamole連接到遠程桌面。
安裝必須的庫,來自官方的整理,以下這些庫都是必須安裝的。
輸入不同命令安裝:
sudo yum install cairo-develsudo yum install libjpeg-turbo-devel? 這個如果安裝不了就使用?sudo yum install libjpeg-develsudo yum install libpng-develsudo yum install uuid-devel另外還有兩個必須安裝的sudo yum install ffmpeg-develsudo yum install libvncserver-devel?
六、安裝server
下一步,http://guacamole.apache.org/releases/0.9.14/ 這里下載guacamole-client和server的tar包,通過secureCRT傳到Linux,在Linux解壓,tar -zxvf 文件名。
在Linux上home/yue目錄下新建guacamole文件夾,將解壓后的server和client包移動進去。
進入解壓后的server包,guacamole-server-0.9.14目錄下,執行以下命令:
sudo .configure --with-init-dir=/etc/init.dsudo makesudo make installldconfig? (更新系統已安裝庫的緩存)執行:? guacd?
彈出消息 guacd[23084]: INFO: ? ? Guacamole proxy daemon (guacd) version 0.9.14 started? 證明server安裝成功了。
?
七、安裝client
安裝guacamole-client(即web服務器)
進入guacamole-client-0.9.14 執行:
mvn package
$ mvn package [INFO] Scanning for projects... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Build Order: [INFO] [INFO] guacamole-common [INFO] guacamole-ext [INFO] guacamole-common-js [INFO] guacamole [INFO] guacamole-auth-jdbc [INFO] guacamole-auth-jdbc-base [INFO] guacamole-auth-jdbc-mysql [INFO] guacamole-auth-jdbc-postgresql [INFO] guacamole-auth-ldap [INFO] guacamole-auth-noauth [INFO] guacamole-client ... [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] guacamole-common ................................... SUCCESS [ 7.566 s] [INFO] guacamole-ext ...................................... SUCCESS [ 5.594 s] [INFO] guacamole-common-js ................................ SUCCESS [ 1.249 s] [INFO] guacamole .......................................... SUCCESS [ 8.474 s] [INFO] guacamole-auth-jdbc ................................ SUCCESS [ 0.592 s] [INFO] guacamole-auth-jdbc-base ........................... SUCCESS [ 2.548 s] [INFO] guacamole-auth-jdbc-mysql .......................... SUCCESS [ 2.557 s] [INFO] guacamole-auth-jdbc-postgresql ..................... SUCCESS [ 1.990 s] [INFO] guacamole-auth-ldap ................................ SUCCESS [ 1.314 s] [INFO] guacamole-auth-noauth .............................. SUCCESS [ 0.961 s] [INFO] guacamole-client ................................... SUCCESS [ 1.721 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 34.701 s [INFO] Finished at: 2015-06-08T17:03:15-07:00 [INFO] Final Memory: 34M/340M [INFO] ------------------------------------------------------------------------ $如果,你沒有mvn包,那么請先yum install maven
這個時候在當前目錄的guacamole/target目錄下,會有個guacamole-0.9.14.war包。將這個包復制到tomcat的webapps目錄下。這個tomcat就用我們上面配置好的。
sudo cp guacamole-0.9.14? tomcat的webapps目錄/guacamole.war
好了,啟動tomcat,局域網內訪問服務器的8080端口, http://ip:8080/guacamole,你會看到這樣的畫面
但是此時,你點擊登錄是沒有任何作用的,因為還要配置一些東西。
?
八、配置guacamole的環境:
?
1、GUACAMOLE_HOME
GUACAMOLE_HOME是Guacamole的默認配置目錄,可在/etc/profile中指定此目錄:
末尾加入? export GUACAMOLE_HOME=/home/yue/guacamole
當然如果不做配置,guacamole也會默認將/etc/guacamole作為GUACAMOLE_HOME,但是你需要自己去新建這個目錄。為了方便,我將它配置成了和server包,client包同一目錄。即/home/yue/guacamole
在該目錄下新建
guacamole.properties
這是主要的Guacamole配置文件。該文件中的屬性規定了Guacamole將如何連接到guacd。在文件中寫入:
guacd-hostname:localhost
guacd-port:4822
2、新建logback.xml
Guacamole使用稱為Logback的日志系統來處理所有消息。默認情況下,Guacamole只會登錄到控制臺,但可以通過提供你自己的Logback配置文件來改變它。我們寫成這樣就好:guacamole運行時,會生成guacamole.log在當前目錄,記錄所有debug級別的日志。
<configuration><appender name="FILE" class="ch.qos.logback.core.FileAppender"><file>/home/yue/guacamole/guacamole.log</file><encoder><pattern>%msg%n</pattern></encoder></appender><root level="debug"><appender-ref ref="FILE" /></root> </configuration>3.新建user-mapping.xml? 寫入
<user-mapping><authorize username="test" password="test"><protocol>vnc</protocol><param name="hostname">192.168.162.15</param><param name="port">5900</param></authorize> </user-mapping>這里是說,新增一個vnc服務器,服務器地址為192.168.162.15,vnc所有端口為5900,guacamole連接這個vnc服務器的用戶名和密碼為test,test。接下來的操作,不用我說也知道,
如果想配置多個連接,就寫多個authorize節點。
到此為止,GUACAMOLE_HOME的目錄下現在一共有一下幾個文件,
guacamole-client-0.9.14 guacamole-server-0.9.14 guacamole.properties logback.xml user-mapping.xmluser-mapping.xml文件寫入后,guacamole會自動去讀取,等一會兒后,就能生效,不需要重啟guacd或者tomcat。
不過,如果你以為這樣就能完事的話,那就錯了 ,因為還差最后一步,遠程主機vnc服務器的搭建!
九、vnc服務器搭建
vnc-server下載地址 https://www.realvnc.com/en/connect/download/vnc/
在遠程主機安裝vnc-server,我這里的遠程主機是window系統,ip地址為192.168.162.15,所以直接安裝exe就好。為了測試容易,把防火墻也關了吧,免得存在訪問限制問題。vnc服務器需要關閉密碼保護, 不然guacamole不能連接成功,端口也設置成5900。大概設置如下
好了,這個時候在guacamole登錄頁面上輸入test,test登錄,就能看到遠程主機的實時畫面了。
?
下一篇博客,我將會寫如果自己構建web程序,代替guacamole-client,并嵌入到java程序中,實現web系統集成guacamole。
?轉載至鏈接:https://my.oschina.net/u/3490860/blog/1831706
轉載原創文章請注明出處,轉載至: 梁鐘霖個人博客www.liangzl.com
轉載于:https://www.cnblogs.com/xiang--liu/p/10955119.html
總結
以上是生活随笔為你收集整理的Guacamole 远程桌面的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 职业化“实训”网管培训班招生简章
- 下一篇: Moodle导入CSV文件格式的试题