VNC服务全攻略

VNC服务全攻略
 
一、VNC简单介绍:
1、简介
       VNC (Virtual Network Computing)是虚拟网络计算机的缩写。VNC是一款优秀的远程控制工具软件,由著名的AT&T的欧洲研究实验室开发的。VNC是在基于UNIX和Linux操作系统的免费的开放源码软件,远程控制能力强大,高效实用。 其性能可以和Windows和MAC中的任何远程控制软件媲美。
 ——百度百科
ps:Symantec的pcAnywhere也是优秀的远程软件,windows环境下的。
 
2、vnc工作流程:
 (1)VNC客户端通过浏览器或VNC Viewer连接至VNC Server。
    (2)VNC Server传送一对话窗口至客户端,要求输入连接密码,以及存取的VNC Server显示装置。
    (3)在客户端输入联机密码后,VNC Server验证客户端是否具有存取权限。
    (4)若是客户端通过VNC Server的验证,客户端即要求VNC Server显示桌面环境。
    (5)VNC Server通过X Protocol 要求X Server将画面显示控制权交由VNC Server负责。
    (6) VNC Server将来由 X Server的桌面环境利用VNC通信协议送至客户端,并且允许客户端控制VNC Server的桌面环境及输入装置。
 
3、linux下的vnc安装(RHEL6.2):
RHEL6.2中的相关rpm是:
客户端:tigervnc-1.0.90-0.17.20110314svn4359.el6.x86_64.rpm
服务端:tigervnc-server-1.0.90-0.17.20110314svn4359.el6.x86_64.rpm
安装: 
yum install tigervnc 
yum install tigervnc-server
  

二、VNC服务搭建:
1、启用vnc桌面
[xuke@RHEL6 ~]$ vncserver 

You will require a password to access your desktops. 

Password: 
Verify: 
xauth:    creating new authority file /home/xuke/.Xauthority 
xauth: (stdin):1:    bad display name "RHEL6:3" in "add" command 

New 'RHEL6:3 (xuke)' desktop is RHEL6:3 

Creating default startup script /home/xuke/.vnc/xstartup 
Starting applications specified in /home/xuke/.vnc/xstartup 
Log file is /home/xuke/.vnc/RHEL6:3.log 

[xuke@RHEL6 ~]$ 
 
 
2、更改vnc桌面配置文件
[xuke@RHEL6 ~]$vim .vnc/xstartup 
    1 #!/bin/sh 
    2    
    3 [ -r /etc/sysconfig/i18n ] && . /etc/sysconfig/i18n 
    4 export LANG 
    5 export SYSFONT 
    6 vncconfig -iconic & 
    7 unset SESSION_MANAGER 
    8 unset DBUS_SESSION_BUS_ADDRESS 
    …… 
    …… 
20 if [ -x /etc/X11/xinit/xinitrc ]; then 
21     exec /etc/X11/xinit/xinitrc 
22 fi 
23 if [ -f /etc/X11/xinit/xinitrc ]; then 
24     exec sh /etc/X11/xinit/xinitrc 
25 fi 
26 [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources 
27 xsetroot -solid grey 
28 xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & 
29 #twm & 
30 gnome-session &                                        
   第7行和第21或24行在红帽5版本中默认是被注释掉的,要启用;最后一个gnome-session &是启用gnome的桌面,把默认的twm注释掉,很丑的。
 
3、修改vncserver配置文件,并重启服务
[xuke@RHEL6 ~]$su root 
Password: 

[root@RHEL6 xuke]#vim /etc/sysconfig/vncservers 
……         
17    
18    VNCSERVERS="1:root 2:xuke" 
19    VNCSERVERARGS[3]="-geometry 800x600 -nolisten tcp -localhost" 
[root@RHEL6 xuke]#service vncserver restart
第18、19行要启用。
 
4、vnc客户端连接
windows客户端安装VNC Viewer这个程序可以连接,连接格式:IP:桌面号
VNC服务全攻略 VNC服务全攻略
linux客户端下可以用vncviewer命令连接,连接格式:IP:桌面号
VNC服务全攻略
VNC服务全攻略
 

三、VNC共享桌面配置
1、构建可用的vncserver
   参照第二部分,首先搭建好可用访问的vncserver
2、发布共享的桌面
[xuke@RHEL6 ~]$ x0vncserver --PasswordFile=/home/xuke/.vnc/passwd  --display=:1 --AcceptKeyEvents=off --AcceptPointerEvents=off & 
[1] 5101 
[xuke@RHEL6 ~]$    
Mon Jul    9 18:06:05 2012 
Geometry:        Desktop geometry is set to 1024x768+0+0 
Main:                XTest extension present - version 2.2 
Main:                Listening on port 5900 

[xuke@RHEL6 ~]$
x0vncserver 共享vnc桌面命令
--display=:1 指定共享的桌面号
--PasswordFile指定客户端密码验证文件,除非指定--SecurityTypes=None
--AcceptKeyEvents 是否接受来自客户端的按键和释放事件
--AcceptPointerEvents 是否接受来自客户端的指针事件
 
3、客户端连接共享
  此时客户端就可以通过vncviewer连接到共享的桌面了。但是,连接时,不要加桌面号,只用输入VNCserver的地址即可。
  VNC服务全攻略 VNC服务全攻略
 
 
四、VNC相关常用命令
1、启用vnc桌面
vncserver
   普通用户也有权限启用vnc桌面,上面就是特意拿普通账号举的例子。
   如果命令后面不跟桌面号(:1),默认从1开始依次往后排。如果桌面号1已经被tom启用,那么下次root将缺省启用桌面2,如果4、5都已经被启用,但是2被关闭,那下次将先启用2,再往后排。 启用的VNC桌面占用端口号为port=(5900+桌面号) 
   选项:  -list 列出当前用户所有VNC桌面号及PROCESS ID 
           -kill <X-display>关闭指定的桌面号
 
2、更改vnc密码
vncpasswd
   vncserver服务程序没有设置密码将不能运行 
   用户第一次启用VNC桌面时会被要求输入密码 
   更改当前用户的VNC密码 
   生成密码文件,vncpasswd [file]
 
3、配置和控制vnc服务器
vncconfig
   启用客户端与服务器之间的剪切板支持,红帽6版本~/.vnc/xstartup文件中有vncconfig -iconic &语句,已经启用。 
   vncconfig --display=:1 -disconnect断开现在所有的连接 
   vncconfig --display=:1 -connect host:[port] 反向监听vncviewer
 
4、客户端访问
viewer
   linux下访问vncserver的命令,格式为:ip:x,其中x为桌面号。 
   访问共享的桌面时,不需要桌面号
 
 

五、FAQ
1、端口号问题
   x0vncserver共享桌面的端口号是5900。做实验时,RHEL6中的qemu-kvm把5900的端口占用了,所以一直启用不了共享。杀掉qemu-kvm就OK了。
  由于x0vncserver就用5900这个端口,所以一台服务器只能有一个共享桌面,第一个启用的生效。
 
2、多用户问题
   /etc/sysconfig/vncservers文件中: 
 
18    VNCSERVERS="1:root 2:xuke" 
19    VNCSERVERARGS[3]="-geometry 800x600 -nolisten tcp -localhost"
   如果启用多用户,第18行,可以直接空格再继续同格式的跟在后面,但是第19行的[2],一定要改成第18行启用的用户数加上1,比如上面两个用户,就要写成3,。不然的话,vncserver重启后,最后一个用户的vnc桌面不可用,但是如果以上用户又启用了其他桌面但没写进这个文件,不受影响。具体原因,我也不理解。

你可能感兴趣的:(vnc)