2024年2月21日发(作者:)

【摘要】本文详细介绍了vnc服务器的搭建,尤其是为不同用户开启不同的窗口,这样多人协作开发时不会出现相互干扰,大家可以在同一时刻操作同一Linux主机,并且相关操作具备不同的用户属性,便于区分不同的开发者。

【关键词】vnc server,图形界面,远程操作

在多人协作的项目中,经常需要大家共享信息,而通常这些都是放在Linux服务器上的,开发者通过nfs在本地Linux主机上可以远处操作服务器上的相关资源,但相比图形界面来说还是不友好。因此本文分析了如何可视化远程操作Linux服务器,本机甚至可以是Windows PC,这种方式最大的好处就是可以做Windows下做其他的所有工作,比如代码编辑文档阅读等,实际的编译等才需要用到Linux环境。

一、VNC简介... 1

二、服务器vncserver的安装及配置... 1

Server的安装... 1

2.2 设置 vnc server 的访问密码... 2

2.3 启动vnc server 2

2.4 更改为kde或者gnome等图形方式登陆... 2

2.5 为不同的用户开启不同的窗口... 3

三、客户端的设置及连接... 4

3.1 windows系统... 4

3.2 Linux系统远程控制其他Linux主机... 5

1 VNC简介

网络遥控技术是指由一部计算机(主控端)去控制另一部计算机(被控端),而且当主控端在控制端时,就如同用户亲自坐在被控端前操作一样,可以执行被控端的应用程序,及使用被控端的系统资源。

VNC(Virtual Network Computing)是一套由AT&T实验室所开发的可操控远程的计算机的软件,其采用了授权条款,任何人都可免费取得该软件。VNC软件主要由两个部分组成:VNC server及VNC viewer。用户需先将VNC

server安装在被控端的计算机上后,才能在主控端执行VNC viewer控制被控端。(在windows中也由一套著名的网络遥控软件――Symantec公司推出的pcAnywhere。VNC server与VNC viewer支持多种操作系统,如Unix系列(Unix,Linux,Solaris等),windows及MacOS,因此可将VNC server

及VNC viewer分别安装在不同的操作系统中进行控制。如果目前操作的主控端计算机没有安装VNC viewer,也可以通过一般的网页浏览器来控制被控端。

整个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的桌面环境及输入装置。

2 服务器vncserver的安装及配置

2.1 VNC Server的安装

VNC Server下载地址

/download/?softid=744

或者到上下载与系统对应的安装包

其实也是非常简单的,一个命令就可以了。

rpm -ivh

2.2 设置 vnc server 的访问密码

vncpasswd

补充说明:3.3版的vnc,不会自动的建立/root/.vnc/passwd文件,需要先手工建立,再运行vncpasswd

2.3 启动vnc server

若未用vncpasswd设置密码,则第一次运行vncserver时,会提示设置密码,再次确定密码。

[drq@dding drq]$ vncserver

You will require a password to access your desktops.

Password: ***** 为了不想任何人都可以任意遥控此计算机。因此当第 1次启动VNC server时,会要求设置网络遥控的密码。

Verify: *****

注意: vncpasswd 可以更改这个密码,或者添加密码

New 'X' desktop is dding:2 一定要记住这一行稍后会用到,终端编号;

Creating default startup script /home/drq/.vnc/xstartup

Starting applications specified in /home/drq/.vnc/xstartup

Log file is /home/drq/.vnc/dding:

每次会启动一个server, 并有一个代号,如 :1 :2 等

可以在服务里面选中vncserver,这样系统启动时可以默认启动vnc服务。否则需要手动启动。

2.4 更改为kde或者gnome等图形方式登陆

Linux 上的 vnc server 内定的管理环境是 twm,不好看,也不方便。

第一次启动后vnc使用twm客户端(即只能显示个虚拟终端,可在终端里运行界面程序,但是任意时刻只能运行一个),如果要用完整的KDE客户端(此时可以显示终端桌面,完全跟本地登陆一样),我们来把它改成 KDE。修改

$HOME/.vnc/xstartup这个文件。把 twm 改成 startkde 修改后要重新启动 vnc server。再次进行vnc连接时将显示KDE图形界面。

其实是将root/.vnc/xstartup这个文件。

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/xstartupn".

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

xsetroot -solid greyn".

vncconfig -iconic &n".

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

wm &

有三种方法修改:

a) 可以将最后一行中的twm修改成gnome或者startkde都可以,保存并重新启动vncserver服务;

b) 将文件所有内容清除,写入gnome-session,保存并重新启动vncserver服务;

c) 也可以写入

unset SESSION_MANAGER

exec /etc/X11/xinit/xinitrc

表示启动默认的图形管理器

即将第2,3行的#去掉也可以,我就是这么做的。然后重新开一下服务。试一下就OK了,

2.5 为不同的用户开启不同的窗口

即可以管理远程登陆的用户,对权限等进行管理。

建立root用户的vncserver,其对应的窗口号为 1。

[root@dding drq]# vi /etc/sysconfig/vncservers

///////////////////////////////////

# The VNCSERVERS variable is a list of display:user pairs.

#

# Uncomment the line below to start a VNC server on display :1

# 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

# .

VNCSERVERS="1:root 2:drq" 表示用1登陆即为root用户,2登陆为drq用户

///////////////////////////////////

可以通过以下命令启动或停止vnc服务:

# service vncserver start/stop/restart

如果启动了多个vnc显示,可以通过以下命令关闭指定显示号的vnc服务:

# vncserver -kill :1

(":1"为指定的显示号)

[root@dding drq]# /etc/init.d/vncserver stop

关闭 VNC 服务器:1:root 2:drq [ 确定 ]

[root@dding drq]# /etc/init.d/vncserver start

启动 VNC 服务器:1:root 2:drq [ 确定 ]

3 客户等的设置及连接

3.1 windows系统

VNC viewer下载地址/php/?sid=2603

在Microsoft Windows上运行VNC Viewer

直接运行“”,系统会出现”Connection details”对话框。

在“Connection details”对话框中的“VNC server”文本框中输入VNC Server的IP地址(或主机名及显示装置编号,单击“OK”按钮后,VNC Server即会开始检查所输入的信息,若是信息错误,系统会出现“Failed to connect to

server”的错误信息:若是信息正确,则会接着出现“VNC Authentication”对话框。

若是在“VNC Authentication”对话框中输入的密码正确,就可以成功地打开Linux的桌面窗口。

注意:若vncserver未启动或者秘密错误都将不能正常登陆。

下图即为从windows登陆不同显示装置号对应进入的帐户。

从浏览器远程遥控。

启动VNC Server 后直接打开windwos的浏览器,在地址栏中输入被控端的网址或IP地址,并在网址后加上“:5800+显示编号”的端口号即可操控该计算机。

例如:10.0.0.247:5801/ (如果显示编号为1,一般第一次设置的显示编号都是1,就用5800+1=5801。)

另外,采用浏览器访问方式,需安装Java Runtime Environment环境。

3.2 Linux系统远程控制其他Linux主机

linux下使用vncviewer连接:输入以下命令:

# vncviewer 10.0.0.139:48

(注:“10.0.0..139”为远程服务器的IP地址,“:48”即为显示号)。

按要求输入密码,即可以看到远程的桌面。

如果网络速度较差,又希望通过图形界面管理,可以降低显示的颜色深度。执行以下指令:

# vncviewer 219.166.236.11:1 -brg233