手把手搭建Guacamole教程
初始Guacamole
作用
在浏览器上远程操作虚拟机适用于Chrome,Firefox,IE10等浏览器(浏览器需要支持HTML5)
Guacamole的介绍以及架构
其由许多部件组成的轻量级web应用程序,大部分的功能依靠Guacamole的底层组件>来完成。
用户通过浏览器连接到Guacamole的服务端。Guacamole的客户端是用JavaScript编写的,Guacamole server通过web容器(比如tomcat)把服务提供给用户。一旦加载,客户端通过http承载着Guacamole自己的定义的协议与服务端通信。
部署在Guacamole server这边的Web应用程序,解析到的Guacamole protocal,就传给Guacamole的代理guacd(中间层),这个代理(guacd)实际上就是解析Guacamole protocal,替用户连接到远程机器
guacamole-serve配置
系统环境:
CentOS7.2 + Tomcat8.5 + JDK18 + guacamole-server0.9.14
安装必要环境:
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
yum -y install
http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
安装依赖包
yum -y install cairo-devel libjpeg-devel libpng-devel uuid-devel
yum -y install ffmpeg-devel freerdp-devel pango-devel libssh2-devel
yum -y install libtelnet-devel libvncserver-devel pulseaudio-libs-devel
yum -y install openssl-devel libvorbis-devel libwebp-devel
yum -y install freerdp-plugins
下载安装包:
下载地址:Guacamole安装包
guacamole-server安装
编译安装成功效果tar -zvxf guacamole-server-0.9.14.tar.gz -C /opt
cd /opt/guacamole-server-0.9.14/
./configure --with-initdir=/etc/init.d
make #编译
makeinstall #安装
启动guacd服务
guacd/etc/init.d/guacd start
安装client
将war包移至webapps/
mv guacamole-0.9.14.war /usr/local/tomcat/apache-tomcat-8.5.33/webapps
[其会自动解压]
查看效果
Guacamole界面
创建guacamole配置文件和目录
mkdir /etc/guacamole/
创建guacamole.properties文件
vim /etc/guacamole/guacamole.properties
guacd-hostname: localhost
guacd-port: 4822
user-mapping.xml: /etc/guacamole/user-mapping.xml
enable-clipboard-integration: true
创建授权文件 user-mapping.xml
vim /etc/guacamole/ user-mapping.xml
<user-mapping>
<authorize password="123456" username="admin"> #登录界面账号密码
<connection name="rdp-10.0.102.149">
登入界面
Guacamole界面 初始界面添加服务器
vim /etc/guacamole/ user-mapping.xml
<user-mapping>
<authorize password="123456" username="admin"> #登录界面账号密码
<connection name="rdp-10.0.102.149">
<protocol>rdp</protocol> #RDP协议配置
<param name="hostname">10.0.102.149</param> #远程主机IP
<param name="port">3389</param> #rdp 默认端口
<param name="username">admin123</param> #远程主机用户
<param name="password">qwer1234!</param> #远程主机用户密码
</connection>
<connection name="ssh-10.0.102.219">
<protocol>ssh</protocol>
<param name="hostname">10.0.102.219</param>
<param name="port">22</param>
<param name="username">root</param>
<param name="password">cnhope</param>
<param name="enable-sftp">true</param> #sftp参数配置(没有安装则以下sftp可不用添加)
<param name="sftp-hostname">10.0.102.219</param>
<param name="sftp-root-directory">/data/sftp</param>
<param name="sftp-username">sftp</param>
<param name="sftp-password">123</param>
<param name="color-scheme">white-black</param> #远程登录显示字体颜色
</connection>
</authorize>
</user-mapping>
重启guacd并登录
guacd重启/etc/init.d/guacd restart
Guacamole界面
Guacamole界面
扩展
SFTP安装
是要在每一台linux服务器上进行配置的,你要登录哪台机器,需要上传文件到该机器上,就需要配置SFTP
1.创建sftp用户组/用户
groupadd sftp
useradd -g sftp -s /sbin/nologin -M sftp
2.设置密码
echo "123"|passwd --stdin sftp
3.创建sftp根目录,即存放文件的目录
mkdir -p /data/sftp
chown root:sftp /data/sftp
chmod 770 /data/sftp
4.编辑sshd_config文件
vim /etc/ssh/sshd_config
Subsystem sftp /usr/libexec/openssh/sftp-server // 注释这一条配置
新增以下配置
Subsystem sftp internal-sftp
Match User sftp
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /data/sftp
字体设置
在生产中发现ssh协议连接linux机器,会出现乱码的情况。这是因为guacamole机器字体不对,可以从windows机器下载黑体和宋体字到linux机器上
1.查看是否有安装fontconfig
cd /usr/shared/fonts
(没有该目录则
yum -y install fontconfig)
2.在windows系统拷贝字体
win7字体进入windows C:\Windows\Fonts中
3.选择宋体和黑体
宋体和黑体,两个后缀名为ttf和ttc的文件4.将字体放进linux
fonts.conf文件在/usr/shared/fonts目录下新建一个目录chinese
mkdir /usr/shared/fonts/chinese
将windows下两个字体,放置在该目录下
vi /etc/fonts/fonts.conf
更新字体缓存并查看
字体列表内存中的字体缓存
fc-cache
可查看字体列表
fc-list
问题
一
tomcat关闭后重启后,但进程没有启动
方法
进入/usr/local/tomcat/apache-tomcat-8.5.33/conf/server.xml文件
将以下这段删除<Contextpath="/"docBase="guacamole"debug="0"privileged="true"reloadable="true"/>
便可启动
二
问题:如下图guacd重启失败
解决:
netstat -lntp 发现guacd进程未关闭
将guacd的进程号kill掉
kill -9 +guacd进程号
guacd重启失败
三
问题
guacd登陆界面linux系统日志
由上图可得该错误是由系统本身缺少fonts字体
方法
参照上述扩展内容 字体步骤,在windons将字体拷贝至centos中