因为特殊的需求关系,琢磨了一下如何在本地连接远程Linux主机的桌面环境。翻了不少网上的相关文章,大部分都只讲了步骤没有说为什么这么做,我就简单再复述一遍吧,加深一下印象。
环境如下:
1 2 |
本地:OS X 10.8.2 服务器:CentOS 6(64位) |
基本原理其实很简单,要连接服务器的远程桌面环境,首先需要在服务器准备好桌面环境,然后通过远程桌面的协议实现远程访问。
一、安装服务器桌面环境
因为连接的是服务器,所以一般是没有预装有桌面环境的,需要自行安装。
安装桌面环境主要两部分,X窗口系统和桌面环境(KDE或Gnome等)。
关于X窗口系统的介绍参见这里,关于X窗口系统和KDE、Gnome之间的关系参见这里,简单来说:
Gnome 和 KDE 是“桌面系统”,一种很多程序和函数库的集合。它们的设计目的是提供一致的方便的操作方式来满足普通用户的需要。它们不但包含窗口管理器,还有很多实用程序和应用程序,比如配置程序,工具条,编辑器,绘图工具…… 其实 Gnome 可以和很多窗口管理器合作,在历史上,Gnome 使用过的窗口管理器包括 englightenment, sawmill, sawfish, metacity。KDE 的窗口管理器叫做 kwin。
言归正传,既然知道了KDE、Gnome需要依赖于X窗口系统运行,首先安装X窗口系统:
1 2 |
yum grouplist #查看组列表,确认是否已经安装过X窗口系统 yum groupinstall "X Window System" #安装X窗口系统 |
成功安装后再安装桌面环境,如果要安装Gnome:
1 |
yum groupinstall "Desktop" #CentOS5下为 "GNOME Desktop Environment" |
至此服务器上的桌面环境已经准备就绪了,后续可以自行安装中文支持、输入法等,方法类似,不加赘述了。
二、安装配置VNC server
既然已经有桌面环境了,事情就简单了,通过远程桌面访问即可,可以采用的方法有很多,这里选用VNC作为访问手段。关于VNC的介绍参见这里。
VNC分为两部分,server和client,client运行在本地机器,而server运行在目标机器。client通过与server进行通信将远程的桌面在本地显示,而server运行在目的端(Xvnc),响应client端的请求。
首先在服务器端安装VNC server程序:
1 |
yum install tigervnc-server #CentOS5中为vnc-server |
配置VNC server:
1 2 3 |
su kongfy #切换至要开启远程桌面的账户,重要! vncpasswd #设置vnc连接密码 vim ~/.vnc/xstartup #修改配置文件 |
配置文件的最后一行
1 |
twm & |
修改为
1 2 |
gnome-session &#GNOME startkde &#KDE |
上面两个按照安装的桌面环境选择,twm是X窗口系统自带的一个非常简陋的窗口管理器,通过修改该文件可以改变vnc默认开启的桌面系统。PS:这一步我并没有做还是默认启动了Gnome环境,不解。
最后启动vncserver:
1 |
vncserver |
如果一切顺利,你会看到类似下面的输出:
1 2 3 4 |
New 'server:1 (kongfy)' desktop is server:1 Starting applications specified in /home/kongfy/.vnc/xstartup Log file is /home/kongfy/.vnc/server:1.log |
输出中的编号就是启动的vnc远程桌面的ID,之后在连接中会用到。
三、连接远程桌面
VNC的连接可以通过浏览器或客户端进行访问,浏览器访问的方法我没有实际测试,不谈。
客户端在Win下可以采用VNCViewer进行,Mac下使用Chicken of the VNC连接。
以Chicken of the VNC为例,开始连接:
输入要连接服务器的域名(或IP)、vnc编号和密码即可连接
连接成功: