Centos6.3环境VNC服务安装、配置与使用

浏览: 6913
前言
Linux下常用的两个远程管理工具,一个是基于CLI(命令行模式)的SSH,另一个是基于GUI(图形用户界面模式)的VNC

远程管理的基本概念
对于我们使用的计算机来说,如果是个人计算机,就没有远程管理这一概念了,想用的时候开机就能使用,而对于我们的服务器来说,就不同了,对于服务器其一般都是放置在我们的IDC机房当中,我们通常是无法直接接触到服务器硬件,那么我们如果要对服务器进行操作的话,就只能通过远程管理的方式来对我们的服务器进行控制了。
目前我们常见的远程管理控制方式主要有以下几种:
1、RDP(remote desktop protocol)协议  远程桌面协议,我们常用的windows操作系统就是的远程桌面管理就是基于该协议的,更多有关RDP协议的可以查看百度百科 RDP
2、telnet  CLI界面下的远程管理工具,因为其历史非常悠久,几乎所有的操作系统都有该工具(telnet在传送数据时是通过明文传输的,没有加密,所以现在几乎都不会使用telnet来进行远程管理了)  telnet
3、SSH(Secure Shell)协议  CLI界面下的远程管理工具,几乎所有的操作系统都有(区别于telnet,SSH在进行数据传送时会对数据进行加密,所以SSH是比较安全的协议),几乎所有的类UNIX操作系统都是采用SSH来进行远程管理(Linux、BSD、Mac OS等)。  SSH
4、RFB(Remote FrameBuffer)协议  图形化远程管理协议,VNC(Virtual Network Computing)就是基于该协议的,上面讲的SSH在类UNIX下是CLI界面常用的远程管理方式,那么在类UNIX操作系统中,同样存在图形化的远程管理工具,VNC就是类UNIX系统下常用的图形化远程管理工具


SSH
SSH(Secure Shell)协议是Linux、Unix、Mac及其他网络设备最常用的远程CLI管理协议,SSH在对数据进行传送过程中会使用非对称的加密算法来对数据进行加密,以此来保证远程管理数据的安全
SSH2是目前广泛使用的ssh版本,SSH协议是TCP协议,其占用的端口号是 22
我们绝大多数Linux版本默认使用的SSH是openssh

VNC
VNC(Virtual Network Computing)是一种Linux系统(或者BSD、Mac等)下常用的图形化远程管理工具,使用的是RFB协议
VNC跟SSH一样,也分为客户端与服务器端,我们在需要被远程访问的服务器上安装VNC的服务器端,其他计算机上安装VNC的客户端程序与其进行连接
CentOS 6/RHEL 6中我们使用的是 tigervnc 来作为自带的VNC工具,默认这个工具是没有被安装的,我们如果想要使用VNC服务,就必须根据一下的操作步骤:
①首先我们需要通过 yum 来安装 tigervnc 这个工具
[root@localhost ~]# yum install tigervnc-server
Loaded plugins: fastestmirror, refresh-packagekit, security
Loading mirror speeds from cached hostfile
* base: centos.ustc.edu.cn
* extras: mirror01.idc.hinet.net
* updates: centos.ustc.edu.cn
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package tigervnc-server.x86_64 0:1.1.0-5.el6_4.1 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
tigervnc-server x86_64 1.1.0-5.el6_4.1 updates 1.1 M

Transaction Summary
================================================================================
Install 1 Package(s)

Total download size: 1.1 M
Installed size: 2.9 M
Is this ok [y/N]: y
Downloading Packages:
tigervnc-server-1.1.0-5.el6_4.1.x86_64.rpm | 1.1 MB 00:16
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : tigervnc-server-1.1.0-5.el6_4.1.x86_64 1/1
Verifying : tigervnc-server-1.1.0-5.el6_4.1.x86_64 1/1

Installed:
tigervnc-server.x86_64 0:1.1.0-5.el6_4.1

Complete!

②安装完 tigervnc-server 服务器端程序以后我们需要对其进行配置,配置文件是 /etc/sysconfig/vncservers 
[root@localhost ~]# cat /etc/sysconfig/vncservers 
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see this URL:
# [url]http://kbase.redhat.com/faq/docs/DOC-7028[/url]

# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.

# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the "-via" option in the
# `man vncviewer' manual page.

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

我们看到,这个配置文件默认是没有任何配置信息的,所以我们如果需要使用VNC服务,就要修改其配置信息:
[root@xiaoluo ~]# vi /etc/sysconfig/vncservers 

# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see this URL:
# [url]http://kbase.redhat.com/faq/docs/DOC-7028[/url]

# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.

# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the "-via" option in the
# `man vncviewer' manual page.

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

VNCSERVERS="1:ly"  //  在配置文件后面加上这样一条配置,VNCSERVERS="1:ly" ,后面引号里面的内容代表的就是我要为哪个用户开启服务,1其实就相当于端口号,比如说我要为第一个用户 xiaoluo 开启一个VNC服务,端口号就是1 ,如果还需要为其他用户添加VNC服务,则继续在后面添加,例如  VNCSERVERS="1:ly 2:root"这样我们就有两个 VNC 服务了,一个是ly用户登录的,另一个是 root 用户登录的

③配置好后,VNC还需要有单独的VNC密码才行,所以我们要对每个启用VNC服务的用户创建单独的VNC密码,通过 vncpasswd 命令b:[/b]
[root@localhost ~]# su - ly
[ly@localhost ~]$ vncpasswd
Password:
Verify:

④为用户设置好单独的VNC密码后,我们这个时候启动 vncserver 这个服务
[root@localhost ~]# service vncserver start  
Starting VNC server: 1:root
WARNING: The first attempt to start Xvnc failed, possibly because the font
catalog is not properly configured. Attempting to determine an appropriate
font path for this system and restart Xvnc using that font path ...
Could not start Xvnc.

/usr/bin/Xvnc: symbol lookup error: /usr/bin/Xvnc: undefined symbol: pixman_composite_trapezoids
/usr/bin/Xvnc: symbol lookup error: /usr/bin/Xvnc: undefined symbol: pixman_composite_trapezoids


[FAILED]

启动发现报错,后来搜索发现需要增加3个包即可解决该问题
 yum install pixman pixman-devel libXfont

重新启动,发现OK,说明启动成功
[root@localhost ~]# service vncserver start
Starting VNC server: 1:ly xauth: (stdin):1: bad display name "ly:1" in "add" command

New 'ly:1 (ly)' desktop is ly:1

Creating default startup script /home/ly/.vnc/xstartup
Starting applications specified in /home/ly/.vnc/xstartup
Log file is /home/ly/.vnc/ly:1.log

[ OK ]

⑤我们通常需要将iptables关闭或者将其里面的规则清空,或者在iptables里面加上一条规则,否则不能通过vnc客户端来远程登录vnc服务端
VNC服务使用的端口号与桌面号的关系
VNC服务使用的端口号与桌面号相关,VNC使用TCP端口从5900开始,对应关系如下
桌面号为“1” ---- 端口号为5901
桌面号为“2” ---- 端口号为5902
桌面号为“3” ---- 端口号为5903
……
基于Java的VNC客户程序Web服务TCP端口从5800开始,也是与桌面号相关,对应关系如下
桌面号为“1” ---- 端口号为5801
桌面号为“2” ---- 端口号为5802
桌面号为“3” ---- 端口号为5803
……
基于上面的介绍,如果Linux开启了防火墙功能,就需要手工开启相应的端口,以开启桌面号为“1”相应的端口为例,命令如下
[root@testdb ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
[root@testdb ~]# iptables -I INPUT -p tcp --dport 5801 -j ACCEPT


这个时候我们的VNC服务器端就配置好了,接下来我们就可以通过安装VNC客户端来远程登录了,对于VNC客户端程序,其在Linux、Mac、Windows等操作系统平台上都有客户端程序,我这里下载的是 windows 的vnc客户端来远程登录我们的CentOS服务器主机,下载地址如下:http://www.realvnc.com/download/vnc/
下载完以后我们点击安装,安装过程中提示要我们进行注册,我们去其官网注册以后,然后将注册码填上去就行了,然后启动我们的VNC客户端程序,界面如下:

在VNC Server这里输入我们要远程登陆的主机IP,【注意:】(这里要写上IP以及端口号,还记得我们刚才在VNC服务器端配置的VNC主配置文件吗?没错,我们为每一个需要开启VNC的服务都自己定义了一个端口号,比如说刚才1端口号就是以 ly 用户登录),然后点击Connect

这里会提示我们需要连接到 172.25.215.40:1 这台主机上,我们点击Continue即可:

这个时候提示我要我输入端口号为1这个用户的密码,注意这个密码是我们上面创建的个人用户的 VNC 密码,输入完点击OK

这个时候我们发现我们已经以GUI的方式远程登录到了我们的CentOS主机上了,这里要求我们输入 root 用户的密码,我们输入密码授权即可,然后点击Authenticate(第一次远程登录会提示让我们输入root密码进行授权,以后再登陆时就不需要输入root密码了)
此时我们发现,我们已经通过图形界面远程登录到我们的主机上了,我们可以在里面进行任何权限范围内的操作了,就跟直接使用服务器一样
推荐 0
本文由 梁勇 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册