首页 > 代码库 > 设置VNC多用户登录

设置VNC多用户登录

1、安装VNC
yum install vnc-server

2、添加多个用户用户
useradd user1  //添加用户user1
passwd user1  //设置用户的linux登录密码

su user1          //切换到用户user1
vncpasswd      //设置用户的user1登录密码
exit

useradd user2  //添加用户user2
passwd user2  //设置用户的linux登录密码

su user2         //切换到用户user2
vncpasswd     //设置用户的user2登录密码

exit

3、编辑vnc配置文件
vi /etc/sysconfig/vncservers
在最后加上:
VNCSERVERS="1:user1 2:user2"
VNCSERVERSVNCSERVERARGS[1]="-geometry 1024x768 -alwaysshared"  
VNCSERVERSVNCSERVERARGS[2]="-geometry 1024x768 -alwaysshared"
注意:-geometry 1024x768表示分辨率;-alwaysshared 表示允许多终端同时登陆

配置多个桌面
Linux下VNC配置多个桌面和修改密码   
可以使用如下的方法启动多个桌面的VNC   vncserver :1   vncserver :2   vncserver :3   ……   
但是这种手工启动的方法在服务器重新启动之后将失效,
因此,下面介绍如何让系统自动管理多个桌面的VNC,方法是将需要自动管理的信息添加到/etc/sysconfig/vncservers配置文件中,
先以桌面1为root用户桌面2为oracle用户为例进行配置如下:   
格式为:VNCSERVERS="桌面号:使用的用户名 桌面号:使用的用户名"   
[root@testdb ~]# vi /etc/sysconfig/vncservers   
VNCSERVERS="1:ro
配置多个桌面   
可以使用如下的方法启动多个桌面的VNC   
vncserver :1   vncserver :2   vncserver :3   ……   
但是这种手工启动的方法在服务器重新启动之后将失效,因此,下面介绍如何让系统自动管理多个桌面的VNC,
方法是将需要自动管理的信息添加到/etc/sysconfig/vncservers配置文件中,先以桌面1为root用户桌面2为oracle用户为例进行配置如下:   
格式为:VNCSERVERS="桌面号:使用的用户名 桌面号:使用的用户名"   
[root@testdb ~]# vi /etc/sysconfig/vncservers   
VNCSERVERS="1:root 2:oracle"   
VNCSERVERARGS[1]="-geometry 1024x768"   
VNCSERVERARGS[2]="-geometry 1024x768"   
修改VNC访问的密码   
使用命令vncpasswd对不同用户的VNC的密码进行修改,一定要注意,如果配置了不同用户的VNC需要分别到各自用户中进行修改,例如在我的这个实验中,root用户和oracle用户需要分别修改,修改过程如下:   
[root@testdb ~]# vncpasswd   
Password:   
Verify:
或vncpasswd oracle
vncpasswd root
 

 

4、打开对应的端口

打开5901至5902 端口用于vnc  //如果需要配置更多的桌面,增加端口即可
iptables -I INPUT -p tcp --dport 5901:5902 -j ACCEPT
iptables -A INPUT -p tcp --dport 5901:5902 -j ACCEPT
永久保存
service iptables save
4.启动vncserver服务
1)启动全部桌面
   service vncserver start 
2)启动某一桌面
   vncserver :1   //这里1表示第一个桌面

5、停止vncserver服务

1)停止全部桌面
   service vncserver stop
2) 停止某一桌面
    vncserver -kill :1   //停止第1个界面,要用kill命令来杀掉界面1的进程

6、查看当前有几个桌面在运行

    service vncserver status

7、让vncserver服务随机启动

默认状态下,vncserver服务不是开机自动启动,需要手工启动。
chkconfig --list vncserver
chkconfig vncserver on
保存后,重启测试。

8.客户端登录vncserver服务

(1)先安装vncviewer来远程登录,
(2)然后在地址栏输入“主机地址:1”(即主机IP加界面号的方式)

 

 

http://blog.sina.com.cn/s/blog_4ab088470100x605.html

http://blog.csdn.net/jkxsanger/article/details/8897306

 

 

1.安装VNC

# rpm -ivh rpm -ivh vnc-server-4.1.2-9.el5.i386.rpm

# rpm -ivh vnc-4.1.2-9.el5.i386.rpm

 

VNC是Virtual Network Computing(虚拟网络计算机)的缩写。VNC是由AT&T的欧洲研究实验室开发的一款优秀的跨平台远程桌面控制软件,支持 Linux,Unix,Windows等操作系统跨平台远程桌面控制。VNC有两部分组成,分别是:服务端(vncserver)和客户端 (vncviewer)

1. 在配置VNC前,必须了解VNC的运行机制

Linux下的VNC可以同时启动多个vncserver,各个vncserver之间用显示编号(display number)来区分,每个vncserver服务监听3个端口,它们分别是:
5800+显示编号:  VNC的httpd监听端口,如果VNC客户端为IE,Firefox等非vncviewer时必须开放。
5900+显示编号:  VNC服务端与客户端通信的真正端口,必须无条件开放。
6000+显示编号:  X监听端口,可选。

显示编号开放的端口分别由/etc/sysconfig/vncservers文件中的VNCSERVERSVNCSERVERARGS控制。

VNCSERVERS的设置方式为
“VNCSERVERS="显示编号1:用户名1 …"”,如:VNCSERVERS="1:root 2:aiezu"。

VNCSERVERARGS的设置方式为
VNCSERVERARGS[显示编号1]="参数一 参数值一 参数二 参数值二  ……",
如VNCSERVERARGS[2]="-geometry 800x600 -nohttpd",

VNCSERVERARGS的详细参数有:
-geometry    桌面分辨率,默认1024x768;
-nohttpd    不监听HTTP端口(58xx端口);
-nolisten tcp    不监听X端口(60xx端口);
-localhost    只允许从本机访问;
-AlwaysShared    默认只同时允许一个vncviewer连接,此参数允许同时连多个vncviewer;
-SecurityTypes None    登录不需要密码认证VncAuth默认值,要密码认证。

 

 


2. 修改/etc/sysconfig/vncserver文件

vi /etc/sysconfig/vncserver

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp"

 

本例我们开启两个vncserver,分别是root用户,显示编号为1和用户user2,显示编号为3,并且全不开启X监听端口60xx。

vi /etc/sysconfig/vncserver,添加如下三行:

VNCSERVERS="1:root 3:user2"

VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -nohttpd -alwaysshared"

VNCSERVERARGS[3]="-geometry 1024x768 -nolisten tcp -nohttpd -alwaysshared"

 

防火墙相关:

如果Linux启用了防火墙,必须允许VNC的相关端口(58xx,59xx,60xx)。具体的端口,请参照第2大步骤的①小步骤的VNC运行机制介绍,本例开启,5901,5903端口就可以。在Linux命令提示符下输入"system-config-securitylevel-tui"启动防火墙配置工具,点"Customize",在"Other Port"中输入" 5901:tcp 5903:tcp",然后点"OK"既可。

3. 设置VNC用户密码

接下来设置VNC的密码,此步骤不可跳过,否则VNC Server将无法启动,在Linux Shell下执行下列命令:

# vncpasswd

 

设置VNC用户密码:此步骤不可跳过,否则VNC Server将无法启动

# su - user2

# vncpasswd

# su - root

# vncpasswd

4. 启动VNC

# service vncserver start

运行上面命令后,会在用户根目录($HOME)下的".vnc"文件夹下生成一系列文件。其中passwd为vnc用户密码文件,由vncpasswd生成。其他的都由vnc初次启动时生成,xstartup为VNC客户端连接时启动的脚本

5. 修改".vnc/xstartup"文件

#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

就是去掉相关行的注释即可。

修改下面配置完成界面化的实现...
   vi /root/.vnc/xstartup 去除注释下面兩行的注釋,使之生效。
   unset SESSION_MANAGER
   exec /etc/X11/xinit/xinitrc
最後一行修改為:gnome-session &

 

 

执行到上面步骤后,VNC Server已经能正常运行。但是默认设置下,客户连接时启动的是xterm,我们如果想看到桌面,必须将用户根目录下的".vnc/xstartup"文件中的最后两行注释掉,然后根据你安装的桌面坏境,添加一行"startkde &"或者"gnome-session &"。如下:

 

#!/bin/sh

 

# Uncomment the following two lines for normal desktop:

 

# unset SESSION_MANAGER

 

# exec /etc/X11/xinit/xinitrc

 

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup

 

[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources

 

xsetroot -solid grey

 

vncconfig -iconic &

 

#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &

 

#twm &

 

startkde &

 

# gnome-session &

 

配置完各个用户根目录下的".vnc/xstartup"后,执行service vncserver restart 重新启动vncserver使配置生效。

 

 

6. 如果Linux启用了防火墙,必须允许VNC的相关端口(58xx,59xx,60xx)

7. 在windows下使用IE进行远程控制连接:

使用浏览器连接时,服务端的VNCSERVERARGS设置必须没有"-nohttpd参数",并且防火墙允许VNC的58xx和59xx端口通过。浏览器必须安装了Java支持插件,Java插件下载地址:http://www.java.com/zh_CN/download/manual.jsp

 

6. 如何使得linux启动时,vnc服务自动启动...
   a. 系统设置>服务器设置>服务 中把 vncserver 打勾
   b. chkconfig vncserver on

 

常见问题:

问:为什么成功连接后,没有显示桌面,而只是现实一个Terminal窗口? 答:在未修改用户根目录下的".vnc/xstartup"文件,xstartup的默认设置即是此情况。请按上面文件修改xstartup,然后运行"service vncserver restart"重新启动vncserver服务即可。

问:如何查看VNC正在运行的显示编号端口号? 答:在Linux命令提示符下执行"netstat -tlup|grep vnc",即可以查看到端口号,端口号的后两位即显示编号。

问:如何关闭指定的显示编号? 答:vncserver -kill :number 即可以关闭指定的显示编号和对应的端口号。

问:为何我通过浏览器连接VNC 端口时,浏览器显示了一个红叉。 答:那是因为你的浏览器没装Java插件的缘故,下载Java插件安装即可。

问:客户端连接时"Connetcion timed out(10060)"是怎么回事? 答:对于客户端连接时出现"Connetcion timed out(10060)"或者"No route to host:connect",请检查防火墙是否开启了58xx,59xx,vncserver是否正常运行,以及/etc/sysconfig /vncserver文件配置是否正确。

 

 

 

客户端的配置
如客户端为windows ,用putty详见SSH配置一文
客户端为linux:
1.vncviewer localhost:2 在本机执行
2.用ssh
ssh -L 5901:localhost:5901 -l foo myserver
需在sudo vi /etc/sysconfig/iptables中打开5901端口,
然后重启iptables
sudo /sbin/service iptables restart
或者直接用ip地址

ssh -L 5901:localhost:5901 -l foo 192.168.x.x

 

 

 

 

1.设置vncserver启动脚本(/etc/init.d/vncserver)实现系统自启动时启动vncserver.
# 在/etc/rc.d/rc.local文件中加入下面行

 

 

 

写道
/etc/init.d/vncserver start

 

 

 

#也可以用chkconfig命令实现系统自启动时启动vncserver
[root@CPAYNET005 ~]# chkconfig --level 2345 vncserver on

 

 

 

2、编辑/etc/sysconfig/vncservers
 
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768"
 
在ARGS 中修改"1024x768"来适应自己的X桌面实际参数配置。可以在这里添加任何其他VNC服务器参数配置。在VNCSERVERS中修改 root 为你希望运行VNC桌面的用户。VNCSERVERS中的1表示VNC以桌面1运行,如果希望添加其他的桌面,可以修改配置如下:

 

 

 

写道
VNCSERVERS="1:user1 2:user2 3:user3"

 

 

 

3.设置vnc server的访问密码
使用vncpasswd命令
 
4、在RedHat系统上,使用以下命令启动VNC:
/etc/init.d/vncserver start
5、查看VNC Server启动情况
 
[root@CPAYNET005 ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name
tcp        0      0 0.0.0.0:5801                0.0.0.0:*                   LISTEN      5248/Xvnc
tcp        0      0 0.0.0.0:5901                0.0.0.0:*                   LISTEN      5248/Xvnc
tcp        0      0 0.0.0.0:6001                0.0.0.0:*                   LISTEN      5248/Xvnc
tcp        0      0 :::6001                     :::*                        LISTEN      5248/Xvnc
注:如果在浏览器中通过web方式访问VNC则 端口为:5801,如果通过VNC客户端(比如VNC Viewer)来访问VNC则端口为:5901
 
 
 
 
1. 在Linux下安装VNC
将Red Hat Enterprise Linux AS 5 DVD安装盘放入DVD光驱,执行下列命令进行安装:
  1. # mkdir -p /mnt/cdrom  
  2. # mount -t auto /dev/cdrom /mnt/cdrom  
  3. # cd /mnt/cdrom/Server  
  4. # rpm -ivh rpm -ivh vnc-server-4.1.2-9.el5.i386.rpm  
  5. # rpm -ivh vnc-4.1.2-9.el5.i386.rpm 

2. 配置Linux下的VNC Server ①. VNC的运行机制介绍:   在配置VNC前,必须了解VNC的运行机制。Linux下的VNC可以同时启动多个vncserver,各个vncserver之间用显示编号(display number)来区分,每个vncserver服务监听3个端口,它们分别是: 5800+显示编号:  VNC的httpd监听端口,如果VNC客户端为IE,Firefox等非vncviewer时必须开放。 5900+显示编号:  VNC服务端与客户端通信的真正端口,必须无条件开放。 6000+显示编号:  X监听端口,可选。   显示编号、开放的端口分别由/etc/sysconfig/vncservers文件中的VNCSERVERS和VNCSERVERARGS控制。VNCSERVERS的设置方式为“VNCSERVERS="显示编号1:用户名1 …"”,如:VNCSERVERS="1:root 2:aiezu"。VNCSERVERARGS的设置方式为VNCSERVERARGS[显示编号1]="参数一 参数值一 参数二 参数值二  ……",如VNCSERVERARGS[2]="-geometry 800x600 -nohttpd",VNCSERVERARGS的详细参数有:

-geometry 桌面分辨率,默认1024x768;
-nohttpd 不监听HTTP端口(58xx端口);
-nolisten tcp 不监听X端口(60xx端口);
-localhost 只允许从本机访问;
-AlwaysShared 默认只同时允许一个vncviewer连接,此参数允许同时连多个vncviewer;
-SecurityTypes None 登录不需要密码认证VncAuth默认值,要密码认证。

 

②. 修改/etc/sysconfig/vncserver文件:   熟悉Linux下VNC的运行机制后,开始正式配置VNC Server。vi /etc/sysconfig/vncserver,添加如下三行:

  1. VNCSERVERS="1:root 3:aiezu" 
  2. VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp" 
  3. VNCSERVERARGS[3]="-geometry 1024x768 -nolisten tcp" 

本例我们开启两个vncserver,分别是root用户,显示编号为1和用户aiezu,显示编号为3,并且全不开启X监听端口60xx。

③. 设置VNC用户密码:   接下来设置VNC的密码,此步骤不可跳过,否则VNC Server将无法启动,在Linux Shell下执行下列命令:

  1. # su - aiezu  
  2. # vncpasswd  
  3. Password: 
  4. Verify:  
  5. # su - root  
  6. # vncpasswd  
  7. Password:  
  8. Verify: 
  9. service vncserver start  //启动vncserver

运行上面命令后,会在用户根目录($HOME)下的".vnc"文件夹下生成一系列文件。其中passwd为vnc用户密码文件,由vncpasswd生成。其他的都由vnc初次启动时生成,xstartup为VNC客户端连接时启动的脚本。

 

④. 修改".vnc/xstartup"文件:   执行到上面步骤后,VNC Server已经能正常运行。但是默认设置下,客户连接时启动的是xterm,我们如果想看到桌面,必须将用户根目录下的".vnc/xstartup"文件中的最后两行注释掉,然后根据你安装的桌面坏境,添加一行"startkde &"或者"gnome-session &"。如下:

  1. #!/bin/sh  
  2.  
  3. # Uncomment the following two lines for normal desktop:  
  4. # unset SESSION_MANAGER  
  5. # exec /etc/X11/xinit/xinitrc  
  6. [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup  
  7. [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources  
  8. xsetroot -solid grey  
  9. vncconfig -iconic &  
  10. #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &  
  11. #twm &  
  12. startkde &  
  13. # gnome-session & 

配置完各个用户根目录下的".vnc/xstartup"后,执行service vncserver restart 重新启动vncserver使配置生效。

⑤. 配置防火墙:
  如果Linux启用了防火墙,必须允许VNC的相关端口(58xx,59xx,60xx)。具体的端口,请参照第2大步骤的①小步骤的VNC运行机制介绍,本例开启5801,5803,5901,5903端口就可以。在Linux命令提示符下输入"system-config-securitylevel-tui"启动防火墙配置工具,点"Customize",在"Other Port"中输入"5801:tcp 5803:tcp 5901:tcp 5903:tcp",然后点"OK"既可。