在CentOS上安装和配置Guacamole

Posted 清风$waj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在CentOS上安装和配置Guacamole相关的知识,希望对你有一定的参考价值。

一、环境说明

  1. 操作系统:CentOS 6.4 x86_64
  2. 主机IP:192.168.38.20
  3. 登录账户:root

二、安装编译和运行环境

1. 关闭防火墙

 

在Shell中运行以下命令:

  1. chkconfig iptables off
  2. service iptables stop

2. 修改SELinux运行模式

在Shell中运行以下命令:

  1. setenforce 0
  2. vi /etc/selinux/config

将上述配置文件中的:

  1. SELINUX=enforcing

修改为:

  1. SELINUX=permissive

3. 安装GCC套件

在Shell中运行以下命令:

  1. yum groupinstall -"Development Tools"

4. 下载JDK

至下面的网页下载JDK,此处下载的是jdk-8u45-linux-x64.tar.gz安装包,存放在/root/Downloads目录中:

jdk-8u45-linux-x64.tar.gz

5. 卸载系统自带的OpenJDK

在Shell中运行以下命令:

  1. rpm -qa | grep java
  2. rpm ---nodeps java-1.6.0-openjdk-1.6.0.0-1.50.1.11.5.el6_3.x86_64
  3. rpm ---nodeps java-1.7.0-openjdk-1.7.0.9-2.3.4.1.el6_3.x86_64
  4. rpm ---nodeps tzdata-java-2012j-1.el6.noarch

6. 解压缩安装JDK

在Shell中运行以下命令:

  1. cd /root/Downloads
  2. tar xvzf jdk-8u45-linux-x64.tar.gz
  3. mv jdk1.8.0_45 /usr/local/Java

7. 配置JDK环境变量

在Shell中运行以下命令:

  1. vi /etc/profile

在上述配置文件的最后,另起新行输入:

  1. JAVA_HOME=/usr/local/Java
  2. PATH=$JAVA_HOME/bin:$PATH
  3. CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
  4. export JAVA_HOME
  5. export PATH
  6. export CLASSPATH

保存上述配置文件,生效配置文件:

  1. source /etc/profile

8. 测试JDK安装结果

在Shell中运行以下命令:

  1. java -version

若上述命令的输出如下所示,则表示安装成功:

技术分享图片

9. 下载Tomcat

在Shell中运行以下命令:

  1. cd /root/Downloads
  2. wget http://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.0.23/bin/apache-tomcat-8.0.23.tar.gz

10. 解压缩安装Tomcat

在Shell中运行以下命令:

  1. tar xvzf apache-tomcat-8.0.23.tar.gz
  2. mv apache-tomcat-8.0.23 /usr/local/Tomcat
  3. cd /usr/local/Tomcat/bin
  4. chmod +*.*

11. 创建Tomcat服务控制脚本

在Shell中运行以下命令:

  1. vi /etc/init.d/tomcat

在这个新建的文件中输入以下内容:

  1. #!/bin/bash
  2. # description: Tomcat Start Stop Restart Status
  3. # processname: tomcat
  4. # chkconfig: 234 20 80
  5. # description: Tomcat is a Java application Server.
  6. # Source function library
  7. . /etc/init.d/functions
  8. # System environment variables
  9. CATALINA_HOME=/usr/local/Tomcat
  10. TOMCAT_USER=root
  11. LOCKFILE=/var/lock/subsys/tomcat
  12. RETVAL=0
  13. start(){
  14.  echo "Starting Tomcat: "
  15.  su - $TOMCAT_USER -"$CATALINA_HOME/bin/startup.sh"
  16.  RETVAL=$?
  17.        echo
  18.        [ $RETVAL -eq 0 ] && touch $LOCKFILE
  19.        return $RETVAL
  20. }
  21. stop(){
  22.  echo "Shutting down Tomcat: "
  23.  $CATALINA_HOME/bin/shutdown.sh
  24.        RETVAL=$?
  25.  echo
  26.  [ $RETVAL -eq 0 ] && rm -f $LOCKFILE
  27.  return $RETVAL
  28. }
  29. case "$1" in
  30.        start)
  31.           start
  32.           ;;
  33.        stop)
  34.           stop
  35.           ;;
  36.        restart)
  37.           stop
  38.           start
  39.           ;;
  40.        status)
  41.           status tomcat
  42.           ;;
  43.        *)
  44.           echo $"Usage: $0 {start|stop|restart|status}"
  45.           exit 1
  46.           ;;
  47.     esac
  48.     exit $?

保存上述文件,然后在Shell中执行以下命令:

  1. chmod 755 /etc/init.d/tomcat
  2. chkconfig --add /etc/init.d/tomcat
  3. chkconfig tomcat on

以下四条命令可用于控制Tomcat服务:

  1. service tomcat start # 启动Tomcat服务
  2. service tomcat stop # 停止Tomcat服务
  3. service tomcat restart # 重启Tomcat服务
  4. service tomcat status # 查看Tomcat服务状态

12. 配置catalina.sh脚本

在Shell中运行以下命令:

  1. vi /usr/local/Tomcat/bin/catalina.sh

#!/bin/sh这行下面添加系统环境变量:

  1. JAVA_HOME=/usr/local/Java
  2. PATH=$JAVA_HOME/bin:$PATH
  3. CATALINA_HOME=/usr/local/Tomcat
  4. CATALINA_BASE=/usr/local/Tomcat
  5. CATALINA_PID=/var/run/tomcat.pid
  6. CATALINA_OPTS="$CATALINA_OPTS -XX:+UseParallelGC"

注意:必须在CATALINA_OPTS环境变量中显式指定使用并行垃圾收集器(-XX:+UseParallelGC选项),否则JVM可能会根据服务器配置默认使用串行垃圾收集器,这种垃圾收集器的性能和效率较低。

13. 测试Tomcat安装

在Shell中运行以下命令:

  1. service tomcat start

在浏览器中访问以下URL:

http://192.168.38.20:8080

若打开页面如下所示,则表示安装成功:

技术分享图片

14. 安装VNC服务端

在Shell中运行以下命令:

  1. yum install -y tigervnc-server

15. 配置VNC服务器

在Shell中运行以下命令:

  1. vi /etc/sysconfig/vncservers

在上述文件中作出以下修改:
① 将# VNCSERVERS="2:myusername"修改为VNCSERVERS="1:root"
② 将# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"修改为VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp"

上述配置会为远程用户root提供一个分辨率为800×600的远程桌面,连接端口号为5901。

16. 设置VNC登录密码

在Shell中运行以下命令:

  1. vncserver

运行上述命令之后会提示输入密码,此处设置密码为password。

17. 重启VNC服务

在Shell中运行以下命令:

  1. chkconfig vncserver on
  2. service vncserver restart

三、安装和配置Guacamole

1. 导入第三方软件源

在Shell中运行以下命令:

  1. rpm -Uvh http://mirrors.ustc.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm
  2. rpm -Uvh http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm vi /etc/yum.repos.d/epel.repo

将上述配置文件中的:

  1. # baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
  2. mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

改为:

  1. baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch
  2. #mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch

2. 安装Guacamole依赖软件包

在Shell中运行以下命令:

  1. # 安装Cairo
  2. yum install -y cairo cairo-devel
  3. # 安装libpng
  4. yum install -y libpng libpng-devel
  5. # 安装FreeRDP
  6. yum install -y freerdp freerdp-devel
  7. # 安装Pango
  8. yum install -y pango pango-devel
  9. # 安装libssh2
  10. yum install -y libssh2 libssh2-devel
  11. # 安装libtelnet
  12. yum install -y libtelnet libtelnet-devel
  13. # 安装libVNCServer
  14. yum install -y libvncserver libvncserver-devel
  15. # 安装libpulse
  16. yum install -y pulseaudio pulseaudio-libs pulseaudio-libs-devel
  17. # 安装libssl
  18. yum install -y openssl openssl-devel
  19. # 安装libvorbis
  20. yum install -y libvorbis libvorbis-devel
  21. # 安装OSSP UUID
  22. yum install -y uuid uuid-devel

3. 下载Guacamole源码包

在Shell中运行以下命令:

  1. cd /root/Downloads
  2. wget http://jaist.dl.sourceforge.net/project/guacamole/current/source/guacamole-server-0.9.7.tar.gz
  3. git clone https://github.com/cmujedi/guacamole.git

4. 编译Guacamole

在Shell中运行以下命令:

  1. tar -xvzf guacamole-server-0.9.7.tar.gz
  2. cd guacamole-server-0.9.7/
  3. ./configure --with-init-dir=/etc/init.d
  4. make
  5. make install
  6. ldconfig

5. 配置Guacamole服务

在Shell中运行以下命令:

  1. chown root.root /etc/init.d/guacd
  2. chmod 755 /etc/init.d/guacd
  3. chkconfig --add guacd
  4. chkconfig guacd on

以下四条命令可用于控制guacd服务:

  1. service guacd start # 启动guacd服务
  2. service guacd stop # 停止guacd服务
  3. service guacd restart # 重启guacd服务
  4. service guacd status # 查看guacd服务状态

6. 下载Guacamole客户端

在Shell中运行以下命令:

  1. cd /root/Downloads
  2. wget http://jaist.dl.sourceforge.net/project/guacamole/current/binary/guacamole-0.9.7.war
  3. mkdir /var/lib/guacamole
  4. mv /root/Downloads/guacamole-0.9.7.war /var/lib/guacamole/guacamole.war

7. 新建Guacamole配置文件

在Shell中运行以下命令:

  1. mkdir /etc/guacamole
  2. mkdir /root/.guacamole
  3. cp /root/Downloads/guacamole/doc/example/guacamole.properties/etc/guacamole/guacamole.properties
  4. cp /root/Downloads/guacamole/doc/example/user-mapping.xml/etc/guacamole/user-mapping.xml
  5. ln -/etc/guacamole/guacamole.properties /root/.guacamole/

8. 配置guacamole.properties文件

在Shell中运行以下命令:

  1. vi /etc/guacamole/guacamole.properties

将上述文件的basic-user-mapping属性设置为:

  1. /etc/guacamole/user-mapping.xml

9. 配置user-mapping.xml文件

在Shell中运行以下命令:

  1. vi /etc/guacamole/user-mapping.xml

在上述XML文件的user-mapping节点内添加如下内容:

  1. <authorize username="root" password="password">
  2.  <protocol>vnc</protocol>
  3.  <param name="hostname">localhost</param>
  4.  <param name="port">5901</param>
  5.  <param name="password">password</param>
  6.  <param name="color-depth">32</param>
  7. </authorize>

其中的密码值要和之前安装VNC Server时为相应用户设置的密码相同。

10. 部署Guacamole客户端

在Shell中运行以下命令:

  1. ln -/var/lib/guacamole/guacamole.war /usr/local/Tomcat/webapps

11. 重启Tomcat

在Shell中运行以下命令:

  1. service tomcat restart

12. 启动guacd

在Shell中运行以下命令:

  1. service guacd start

四、验证Guacamole安装

在WEB浏览器中输入以下URL:

http://192.168.38.20:8080/guacamole/

然后,在登录页面中输入之前配置好的用户名/密码(root/password)即可通过WEB页面连接至VNC。



以上是关于在CentOS上安装和配置Guacamole的主要内容,如果未能解决你的问题,请参考以下文章

guacamole安装配置

guacamole部署

分布式部署文档 - guacamole 部署

guacamole实现RDP的下载

远程桌面网关 guacamole 配置指南

Tightvnc服务器和Guacamole