如何通过vnc 图形界面远程控制Linux 主机
Sailor_forever [email protected] 转载请注明
下载地址 http://download.csdn.net/source/510171
http://blog.csdn.net/sailor_8318/archive/2008/06/23/2580047.aspx
【摘要】本文详细介绍了 vnc 服务器的搭建,尤其是为不同用户开启不同的窗口,这样多人协作开发时不会出现相互干扰,大家可以在同一时刻操作同一 Linux 主机,并且相关操作具备不同的用户属性,便于区分不同的开发者。
【关键词】 vnc server ,图形界面,远处操作
在多人协作的项目中,经常需要大家共享信息,而通常这些都是放在 Linux 服务器上的,开发者通过 nfs 在本地 Linux 主机上可以远处操作服务器上的相关资源,但相比图形界面来说还是不友好。因此本文分析了如何可视化远程操作 Linux 服务器,本机甚至可以是 Windows PC ,这种方式最大的好处就是可以做 Windows 下做其他的所有工作,比如代码编辑文档阅读等,实际的编译等才需要用到 Linux 环境。
一、VNC 简介... 1
二、服务器vncserver 的安装及配置... 1
2.1.VNC 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
网络遥控技术是指由一部计算机(主控端)去控制另一部计算机(被控端),而且当主控端在控制端时,就如同用户亲自坐在被控端前操作一样,可以执行被控端的应用程序,及使用被控端的系统资源。
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 的桌面环境及输入装置。
VNC Server 下载地址 http://www.linuxeden.com/download/softdetail.php?softid=744
或者到 rmpfind.net 上下载与系统对应的安装包
其实也是非常简单的,一个命令就可以了。
rpm -ivh vnc-3.3.6-2.i386.rpm
vncpasswd
补充说明: 3.3 版的 vnc ,不会自动的建立 /root/.vnc/passwd 文件,需要先手工建立,再运行 vncpasswd
若未用 vncpasswd 设置密码,则第一次运行 vncserver 时,会提示设置密码,再次确定密码。
[ sailing@dding sailing]$ 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/ sailing/.vnc/xstartup
Starting applications specified in /home/ sailing/.vnc/xstartup
Log file is /home/ sailing/.vnc/dding:2.log
每次会启动一个 server, 并有一个代号,如 :1 :2 等
可以在服务里面选中 vncserver ,这样系统启动时可以默认启动 vnc 服务。否则需要手动启动。
L inux 上的 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 了,
即可以管理远程登陆的用户,对权限等进行管理。
建立 root 用户的 vncserver ,其对应的窗口号为 1 。
[root@dding sailing]# 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
# <URL:http://www.uk.research.att.com/vnc/sshvnc.html>.
VNCSERVERS="1:root 2: sailing" 表示用 1 登陆即为 root 用户, 2 登陆为 sailing用户
///////////////////////////////////
可以通过以下命令启动或停止 vnc 服务:
# service vncserver start/stop/restart
如果启动了多个 vnc 显示,可以通过以下命令关闭指定显示号的 vnc 服务:
# vncserver -kill :1
(":1" 为指定的显示号)
[root@dding sailing]# /etc/init.d/vncserver stop
关闭 VNC 服务器: 1:root 2: sailing [ 确定 ]
[root@dding sailing]# /etc/init.d/vncserver start
启动 VNC 服务器: 1:root 2: sailing [ 确定 ]
VNC viewer 下载地址 http://download.pchome.net/php/dl.php?sid=2603
在 Microsoft Windows 上运行 VNC Viewer
直接运行 “vncviewer.exe”, 系统会出现 ”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 +显示编号 ” 的端口号即可操控该计算机。
例如: http://10.0.0.247:5801/ ( 如果显示编号为 1 ,一般第一次设置的显示编号都是 1 ,就用 5800 + 1 = 5801 。 )
另外,采用浏览器访问方式,需安装 Java Runtime Environment 环境。
linux 下使用 vncviewer 连接:输入以下命令:
# vncviewer 10.0.0.139:48
( 注:“ 10.0.0 ..139 ”为远程服务器的 IP 地址,“ :48” 即为显示号 ) 。
按要求输入密码,即可以看到远程的桌面。
如果网络速度较差,又希望通过图形界面管理,可以降低显示的颜色深度。执行以下指令:
# vncviewer 219.166.236.11:1 -brg233