实现效果:实时全屏共享桌面给客户端,客户端的桌面完全同server端动态一致,操作全部由server端完成,客户端不需要执行任何操作
实现原理:server端开启vino-server,允许别人查看自己的桌面,监听TCP 5900端口;开启vncserver的1号桌面,监听TCP 5901端口;使用vncserver的1号桌面连接vino-server开启的0号桌面,即可实现上述效果
配置步骤:
1:运行vino-preferences,勾选“允许其他人查看您的桌面”和“请您确认”两个方框后点击关闭按钮
2:配置vncserver
[root@ ~]# grep -v '^#' /etc/sysconfig/vncservers |grep -v '^$'
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1440x900 -nolisten tcp "
vncpasswd设置vnc连接密码;
编辑vncserver 1号桌面配置文件如下:
[root@ ~]# grep -v '^#' /root/.vnc/xstartup |grep -v '^$'
vncviewer 127.0.0.1 -ViewOnly -Shared -FullScreen -FullColor
3:启动vncserver,vncserver启动的时候会使用vncviewer自动连接0号桌面,弹出询问提示,点击“允许”按钮
[root@ ~]# service vncserver start
4:配置客户端连接
在客户端上安装vncviewer客户端;
将server端的ssh公钥通过ssh-copy-id命令添加到客户端的authorized_keys文件中;
将vncserver的密码文件通过scp命令传到客户端/tmp目录下,也可以指定其他位置;密码文件为/root/.vnc/passwd
编写启动何关闭桌面脚本如下:
[root@ ~]# cat start.sh
#!/bin/sh
ssh 192.168.50.3 "export DISPLAY=:0 && vncviewer 192.168.50.24:1 -PasswordFile=/tmp/passwd -FullScreen -ViewOnly -Shared"
[root@ ~]# cat stop.sh
#!/bin/sh
ssh 192.168.50.3 "killall vncviewer"
5:注意事项
红帽系统上vino-2.13.5-7.el5这个版本的vino-server包存在bug,会出现"connection reset by perr(104)"错误,升级版本到vino-2.13.5-9.el5_4可以解决该问题,Ubuntu系统上则不存在这个问题;
如果使用3D效果,桌面则不会同步,能同步的只有鼠标的移动,这个时候就需要关闭3D特效
可以创建桌面启动器来运行上述的两个启动和关闭脚本,实现简单开启和关闭
6:申明
该配置原理系福州RHCE唐波讲师原创,主要用于RHCE和Oracle教学环境,转载请注明此项,谢谢…