之前一直在使用stable版本的guacamole 0.8.3,但是该版本存在feature的问题,而且有不少的bug。
令人不爽的是guacamole的官网只有0.8.3如何无脑搭建,就是几个apt-get install即可:
sudo add-apt-repository ppa:guacamole/stable
apt-get install guacamole-tomcat
apt-get install libguac-client-ssh0
然后就是设置guacamole.properties和user-mapping.xml文件
而如果想自己使用独立的tomcat搭建一个最新版本的guacamole就有点蛋疼,版本好麻烦。。
1.搭建一个tomcat7
sudo apt-get install tomcat7 (注意把tomcat6清理干净,需要的话到/etc/tomcat7/server.xml文件中修改默认端口号)
2.安装guacamole-0.9.3的依赖文件,
yes的那些是必须要安装的,而且版本一定要对,不然当 configure或者连接的时候会报错。
我装了这些:
下载安装:uuid-1.6.1
apt-get安装 libpng12-dev, libcairo2-dev, libpango1.0-dev,libssh2-1, libssh2-1-dev, libssl-dev
下载guacamole-0.9.2.war(基于war包搭建guacamole)和guacamole-auth-noauth-0.9.2.tar.gz(免除用户名密码验证)
然后到http://sourceforge.net/projects/guacamole/files/current/source/ 获取guacamole-server-0.9.2.tar.gz文件,至于client是干啥的我还不太清楚。。。继续研究。。
接下来就是tar,然后./configure, 注意,安装完上述说的那些依赖以后,./configure guacamole的server,信息应该显示正常,即你想要ssh的服务,那ssh应该显示为yes,如下图所示,如果想支持rdp那就对应去装freerdp及其对应的库:
然后 make, make install, 如果报错就去安装对应的依赖。Install结束后试着运行guacd,发现报错:
guacd: error while loading shared libraries: libguac.so.7: cannot open shared object file: No such file or directory
接着运行一个很重要的命令:ldconfig.这个东东是在装了新的库以后要运行动态加载的,然后就可以运行guacd了,如图:
如果guacd能够正常运行那说明guacamole服务器安装成功了!
安装完成后,一个基本的guacamole server就已经搞定了,接下来还需要几个配置文件:
guacamole.properties, user-mapping.xml(登录guacamole需要用户名密码)或者noauth-config.xml(不需要登录guacamole密码)
将guacamole.properties放到/user/share/tomcat7/.guacamole文件夹下,然后在该文件中指定user-mapping.xml或者noauth-config.xml文件的路径
然后一个支持ssh的guacamole server就搞定了!!!
有一点需要特别注意:guacd装好以后可能还会遇到类似如下的奇葩问题:
JCLLoggerAdapter error
Server: Internal server error
第一个可能出错的地方时缺少依赖文件,或者是没有ldconfig,具体可以去看tomcat的log以及syslog
第二:(这应该是个诡异的黑魔法,通过尝试修改noauth-congig.xml文件,例如改一下服务器名字或者别的内容,就可以正常工作。其实我觉得是不是touch一下即可)
配置文件需要注意两点:
1.需要保证被远程的机器其对应的服务打开,例如ssh等,注意如果是windows server, 则被远程的服务器需要在sysdm.cpl里设置可被远程访问
2.在guacamole.properties中还需要用lib-directory来指定guacamole-auth-noauth-0.8.0.jar文件的路径
这样一个支持ssh的guacamole server就配置完成了。如果需要配置rdp或者vnc则根据上面表中的依赖安装对应的包即可。
===========================================================
果然在装rdp的时候又栽了
要想enable rdp,需要装几个东西,根据上面的依赖表格:
libguac-client-rdp0, libfreerdp-dev, libfreerdp1, libogg0, libogg-dev, libvorbis0a, libvorbis-dev
装好这些依赖以后也是需要在要./configure的terminal中使用ldconfig命令去告诉guacamole server这些依赖已经好了
如果想要验证这些依赖文件是否已经生效,可以./configure一下,如果configure完以后有如下提示,那么RDP就OK了
然后需要卸载guacamole server, 即make uninstall, make clean, .configure, make , make install 这样guacamole server才能将对应的东西安装好
重启tomcat(要重启吗?!?!)
===========================================================
===========================================================
vnc也装好了。。。简直就是坑。。。
不知道配置完需要重新装一次。。。唉
vnc比较重要的是在系统环境中搭建vnc4server,这样才能起来一个vnc 的server,端口号么根据vnc4server自己的规则就是5900起,1就是5901,以此类推
然后vnc不需要用户名,所以在noauth-config.xml文件或者user-mapping.xml文件中只需要密码即可,密码是vnc4server的密码,可以通过vncpasswd去修改
guacamole连接vnc需要libvncserver-dev, libvncserver0, libpulse0, libpulse-dev, libguac-client-vnc0
这些依赖装好以后./configure,如下图所示,表明VNC服务装好啦!
但是由于我太粗心忘记重新安装,导致guacamole连接的时候一直遇到一个错误,而guacd服务器却没怎么报错。。。于是我只能去tomcat的log去看,提示包括No such tunnel, Socket closed,Connection reset,总归又都是JCLLoggerAdapter error,SEVERE:Internal server error,对于trouble shooting没有太显示的意义。。。
安装完这些依赖重新install guacamole的server即可。
于是我去ldconfig,果然好了。。。(是不是不用重新install guacamole。。。???)
然后我换了一台机器去部署,再次发现通过上面的黑魔法解决了无法登陆vnc的问题。。。哎,妈蛋。。。害我又没能控制变量去验证是不是要重新装guacamole server,但是我个人认为是要装的。。。希望能有机会再验证!哈哈告一段落了!
===========================================================
==================================9:53 AM 8/14/2014
guacamole+mysql
按照官方教程来,基本没有任何问题,可惜我太TM大意了。。。
http://guac-dev.org/doc/gug/mysql-auth.html#installing-mysql-auth
利用MySQL管理guacamole是一件很方便的事情而且web端ui做的也蛮方便的,但是暂时不支持noauth,后面会钻研一下有没有办法搞定guacamole+mysql+noauth
==================================9:53 AM 8/14/2014