『VNC简介』
网络遥控技术是指由一部计算机(主控端)去控制另一部计算机(被控端),而且当主控端在控制端时,就如同用户亲自坐在被控端前操作一样,可以执行被控端的应用程序,及使用被控端的系统资源。
VNC(Virtual Network Computing)是一套由AT&T实验室所开发的可操控远程的计算机的软件,其采用了GPL授权条款,任何人都可免费取得该软件。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的桌面环境及输入装置。
Linux 要使用远程桌面需要安装VNC,好在Red Hat Enterprise Linux AS 4.0 已经自带了VNC,默认也已经安装了,只要配置一下就可以了。但是Windows客户端还是要安装的。
1.键入下面的命令来检查vnc客户端和服务器是否已经安装在你的系统中:
[root@localhost ~]# rpm -q vnc vnc-server
vnc-4.0-11.el4
vnc-server-4.0-11.el4
2.如果没有安装,则下载VNC Server安装
VNC Server下载地址:http://www.linuxeden.com/download/softdetail.php?softid=744
VNC viewer下载地址:http://download.pchome.net/php/dl.php?sid=2603
或者http://www.realvnc.com/dist/vnc-4.0-x86_linux.tar.gz
vnc有免费版本和收费版本,我们使用免费的版本就足够了。
官方网站是:http://www.realvnc.com
解压后按照README文档操作即可:
[root@xcorder ]# tar -zxvf vnc-4.0-x86_linux.tar.gz
vnc-4.0-x86_linux/ vnc-4.0-x86_linux/vncinstall vnc-4.0-x86_linux/Xvnc vnc-4.0-x86_linux/vncviewer vnc-4.0-x86_linux/vncserver ..... vnc-4.0-x86_linux/java/vncviewer.jar [root@xcorder ]# cd vnc-4.0-x86_linux
[root@xcorder ]# ./vncinstall /usr/local/bin Can´t install manual pages to /usr/local/man/man1 Copying Xvnc to /usr/local/bin Copying vncviewer to /usr/local/bin Copying vncpasswd to /usr/local/bin Copying vncconfig to /usr/local/bin Copying vncserver to /usr/local/bin Copying x0vncserver to /usr/local/bin [root@xcorder ]# mkdir -p /usr/local/vnc/classes [root@xcorder ]# cp java/* /usr/local/vnc/classes
|
3.此时即可启动vncserver:
第一次启动要设置密码.VNC远程密码
[root@xcorder ]# vncserver You will require a password to access your desktops. Password: Verify: xauth: creating new authority file /root/.Xauthority New ´xcorder.sky.cn:1 (root)´ desktop is xcorder.sky.cn:1 Creating default startup script. /root/.vnc/xstartup Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/xcorder.sky.cn:1.log |
上面这段话表示起动了一个图形终端,编号为1,要记住这个编号,等下登录时需要提供这个编号。
如果你要停止这个进程,使用
代码::
$vncserver -kill :1
(经上述步骤后,便已启动了VNC Server。如果你想要更改VNC Server的密码,只要执行vncpasswd命令即可。)
4.如果上面的没有成功,发出现以下提示:缺少libstdc++库文件.
You will require a password to access your desktops.
vncpasswd: error while loading shared libraries: libstdc++-libc6.1-1.so.2: cannot open shared object file: No such file or directory
5.请到这里下载
http://rpm.pbone.net/index.php3/stat/4/idpl/843376/com/compat-libstdc++-7.3-2.96.118.i386.rpm.html
rpm -ivh compat-libstdc++-7.3-2.96.118.i386.rpm
之后现运行:vncserver
6.如果存在防火墙,还需要开放防火墙.
如果需要从外网控制内网的某台Linux,则需要打开防火墙相应的端口,并在路由器上进行端口映射。
VNC给浏览器的端口是5800+N,给vncviewer的端口是5900+N,N是设置的display号。
可以通过如下命令确认端口已经正常启动:
[root@xcorder ]# netstat -an|grep 01 tcp 0 0 0.0.0.0:5801 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN ..... 在使用防火墙的情况下来连接到一个远程系统,需要打开端口5901. 加入以下红色的部分,然后重启iptables服务。 [root@localhost .vnc]# more /etc/sysconfig/iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT #/sbin/service iptables restart |
7.PS: 在/root/.vnc/xstartup
把twm & 改为gnome-session& or kde&
保存修改配置后.重启服务器.
8.再运行开启vncserver命令.开启一次图形终端,编号为1,
如果要开启两个图形终端就运行两次vncserver命令.但第二个图形终端在远程的时候.要以:XXX.XXX.XXX.XXX:2 这样的格式.表示远程图形终端2
9.客户端远程的时候.一般是用WIndows 系统.在客户端安装vnc-E4_1_9-x86_win32_CHS.rar
软件(自己选用的.).一步一步安装就可以了.安装好后.打开客户端
VNC 客户端下载:http://download.pchome.net/inter ... /download_2603.html
在服务器里输入LINUX服务器IP.后面还要加个1.远程第一个图形终端.正确连接后.会返回提示要输入密码
10.密码正确登陆后.就会看到LINUX服务器桌面..
11.FAQ
A.为什么连接后,不能显示桌面,而只有一个Terminal窗口?
试着修改/root/.vnc/xstartup,把最后一行 twm& 改成 gnome-session& or kde&(据说KDE在目前的VNC Viewer上的表现不太稳定)
B.为什么重新启动VNC Server后,连接不上了?
因为重新启动VNC Server时,系统会指定一个新的显示编号,需使用此新的编号,否则就无法连接。
(以上只是本人遇到的一些问题,而且用VNC也不是很多,很不全面,还望多提宝贵意见)
C. 要把vnc配置成一项系统服务自动运行,把你的用户名称加入到下面的配置文件中:
1) 在 系统设置>服务器设置>服务 中把 vncserver 打勾。
2) 打开配置文件/etc/sysconfig/vncservers,去掉下面这行的注释,
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 800x600"
1表示VNC以桌面1运行,这样可以启动root的桌面。
D.让vncserver接受两个不同的用户:
VNCSERVERS="1:root 2:thomasc"
当然你要为两个用户分别运行vncpasswd来设置口令. 并且在你的防火墙修改中,你应该明白VNC使用端口5901给连接1用,如果象上面一样要支持两个用户,应同时打开5901和5902.
blog.chinaunix.net/u/18526/showart_373103.html
server.51cto.com/vnc-connect-linux-109049.htm
blog.sina.com.cn/s/blog_4ea29b49010009yp.html