CentOS 6下部署VNC服务器

VNC简介:

VNC是Linux/UNIX下优秀的远程桌面控制软件,由客户端(vncviewer)和服务端(vncserver)两部分组成。

安装软件包:

[root@localhost ~]# yum install -y tigervnc
[root@localhost ~]# yum install -y tigervnc-server

配置前的准备工作:

正式配置VNC服务前,先添加几个系统账号用于测试。

[root@localhost ~]# useradd user1
[root@localhost ~]# useradd user2
[root@localhost ~]# useradd user3

可以不用设置密码,当然,你想设置也可以。

服务配置:

编辑VNC主配置文件。

[root@localhost ~]# vim /etc/sysconfig/vncservers

在文件末尾找如下两行。

# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"

复制一份,或者直接去掉这两行前面的注释也可以,修改为如下形式。

VNCSERVERS="1:user1 2:user2"
VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp -localhost"
VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -localhost"

其中VNCSERVERS选项用以指定允许远程登录的用户名及该用户的编号,VNCSERVERARGS选项后面接用户编号,其后定义的是该用户远程登录的参数。

VNCSERVERARGS的默认参数有如下几个:

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

启动服务:

先切换到各个账户下为他们分别配置VNC密码,此密码可以与用户系统账户密码不同。(尝试过在root用户下为他们统一配置密码,发现行不通。。。)

[root@localhost ~]# su user1
[user1@localhost root]$ vncpasswd
Password:              #要求输入密码
Verify:                #要求再次输入密码

user2用户也要按照上面的方法配置VNC密码。

最后切换回root用户,在保证防火墙已关闭的情况下统一开启VNC服务,此时VNC进程会自动生成用户的VNC服务配置文件及日志文件到用户家目录的.vnc/下。

[root@localhost ~]# service vncserver start
正在启动 VNC 服务器:
1:user1
New 'localhost.localdomain:1 (user1)' desktop is localhost.localdomain:1
Starting applications specified in /home/user1/.vnc/xstartup
Log file is /home/user1/.vnc/localhost.localdomain:1.log
2:user2
New 'localhost.localdomain:2 (user2)' desktop is localhost.localdomain:2
Starting applications specified in /home/user2/.vnc/xstartup
Log file is /home/user2/.vnc/localhost.localdomain:2.log

注意第四行,其中的desktop is localhost.localdomain:1是告诉你,user1的VNC进程号是1,访问此VNC桌面的方法就是IP:1。而user2的进程号则是2,观察倒数第四行(算上空行~)。

如果你只想为某一用户启用VNC进程,可以切换到该用户的身份上,执行vncserver命令。注:使用此方法启用VNC服务后,在root用户下就不能再使用service命令来关闭VNC服务器了,必须使用kill -9暴力杀死用户的VNC服务器进程。

[root@localhost ~]# su user1
[user1@localhost root]$ vncserver
New 'localhost.localdomain:3 (user1)' desktop is localhost.localdomain:3
Starting applications specified in /home/user1/.vnc/xstartup
Log file is /home/user1/.vnc/localhost.localdomain:3.log

为用户指定默认桌面环境:

编辑user1的VNC配置文件。

[root@localhost ~]# vim /home/user1/.vnc/xstartup

转至文件末尾,找到下面一行。

twm &                   #指定默认使用文本界面

将其修改为以下任意一种形式,根据自己的需求选择,不要把两个都加上,如果你那么干了,那我只能感慨你是个大傻瓜了。

startkde &              #指定默认使用KDE桌面环境
gnome-session &         #指定默认使用Gnome桌面环境

使用客户端连接VNC服务器:

可以使用Windows下的VNC客户端,本实验中我在另一台安装有Desktop的CentOS6.5上使用客户端连接VNC。

安装VNC客户端,并连接VNC服务器,这里我连接user2的VNC服务。

[root@localhost ~]# yum install -y vnc
[root@localhost ~]# vncviewer 192.168.1.101:2

之后会弹出一个窗口要求你输入VNC的密码。

输入后按回车键就可以连接VNC桌面啦!

我这里出现乱码不是VNC配置的问题,而是因为安装系统的时候选择了系统语言为中文,但Desktop下却没有安装中文字体。上图中,gnmoe桌面的系统工具提醒我安装zh-cn字体,那我就安装一下吧!可以看到,安装后立刻正常了~

CentOS 6下安装VNC服务器失败的解决方法

看到很多朋友在CentOS 6 下安装VNC服务器的时候会出现下面这条错误:

Error Downloading Packages:
tigervnc-server-module-1.1.0-5.el6_4.1.x86_64: failure: Packages/tigervnc-server-module-1.1.0-5.el6_4.1.x86_64.rpm from c6-media: [Errno 256] No more mirrors to try.

提示说,软件包下载失败。出现这个错误,八九不离十是因为你是使用的下面这条命令来安装VNC服务器的。

yum install -y vnc-server

正确的安装命令应该是:

yum install -y tigervnc-server