來源:http://hi.baidu.com/naruto6006/blog/item/74313809be927b3fe92488be.html
實現效果:實時全屏共享桌面給客戶端,客戶端的桌面完全同server端動態一致,操作全部由server端完成,客戶端不需要執行任何操作
實現原理:server端開啓vino-server,允許別人查看自己的桌面,監聽TCP 5900端口;開啓vncserver的1號桌面,監聽TCP 5901端口;使用vncserver的1號桌面連接vino-server開啓的0號桌面,即可實現上述效果
配置步驟:
1:運行vino-preferences,勾選“允許其他人查看您的桌面”和“請您確認”兩個方框後點擊關閉按鈕
2:配置vncserver
[root@yunwei ~]# grep -v '^#' /etc/sysconfig/vncservers |grep -v '^$'
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1440x900 -nolisten tcp "
vncpasswd設置vnc連接密碼;
編輯vncserver 1號桌面配置文件如下:
[root@yunwei ~]# grep -v '^#' /root/.vnc/xstartup |grep -v '^$'
vncviewer 127.0.0.1 -ViewOnly -Shared -FullScreen -FullColor
3:啓動vncserver,vncserver啓動的時候會使用vncviewer自動連接0號桌面,彈出詢問提示,點擊“允許”按鈕
[root@yunwei ~]# service vncserver start
4:配置客戶端連接
在客戶端上安裝vncviewer客戶端;
將server端的ssh公鑰通過ssh-copy-id命令添加到客戶端的authorized_keys文件中;
將vncserver的密碼文件通過scp命令傳到客戶端/tmp目錄下,也可以指定其他位置;密碼文件爲/root/.vnc/passwd
編寫啓動何關閉桌面腳本如下:
[root@yunwei ~]# 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@yunwei ~]# 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特效
可以創建桌面啓動器來運行上述的兩個啓動和關閉腳本,實現簡單開啓和關閉