linux vnc服务配置详细教程

来源:互联网 发布:开80端口 编辑:程序博客网 时间:2024/06/05 05:25

vnc是Virtual Network Computing(虚拟网络计算机)的缩写。VNC是由AT&T的欧洲研究实验室开发的一款优秀的跨平台远程桌面控制软件,支持linux,unix,windows等操作系统跨平台远程桌面控制。VNC有两部分组成,分别是:服务端(vncserver)和客户端(vncviewer)。下面以Linux(VNC服务端)、Windows(VNC客户端)为平台介绍VNC的安装、配置和使用。

linux vnc配置教程实验环境

Linux vnc服务端:

操作系统:Red Hat Enterprise Linux AS 5
内核版本:2.6.18-8.el5
CPU构架:i386 SMP
附件软件:Red Hat Enterprise Linux AS 5 DVD安装盘

windows vnc客户端:

操作系统:Windows Server 2008 Enterprise
浏览器:Windows Internet Explorer 7

1、在Linux下安装vnc

将Red Hat Enterprise Linux AS 5 DVD安装盘放入DVD光驱,执行下列命令进行安装:

  1. # mkdir -p /mnt/cdrom
  2. # mount -t auto /dev/cdrom /mnt/cdrom
  3. # cd /mnt/cdrom/Server
  4. # rpm -ivh rpm -ivh vnc-server-4.1.2-9.el5.i386.rpm
  5. # rpm -ivh vnc-4.1.2-9.el5.i386.rpm
2、配置linux下的vnc Server
(1)VNC的运行机制介绍

在配置VNC前,必须了解VNC的运行机制。Linux下的VNC可以同时启动多个vncserver,各个vncserver之间用显示编号(display number)来区分,每个vncserver服务监听3个端口,它们分别是:

5800+显示编号: VNC的httpd监听端口,如果VNC客户端为IE,Firefox等非vncviewer时必须开放。
5900+显示编号: VNC服务端与客户端通信的真正端口,必须无条件开放。
6000+显示编号: X监听端口,可选。

显示编号、开放的端口分别由/etc/sysconfig/vncservers文件中的VNCSERVERS和VNCSERVERARGS控制。

VNCSERVERS的设置方式为:

  1. VNCSERVERS="显示编号1:用户名1 …"

如:

  1. VNCSERVERS="1:root 2:aiezu"

VNCSERVERARGS的设置方式为:

  1. VNCSERVERARGS[显示编号1]="参数一 参数值一 参数二 参数值二 ……"

如:

  1. VNCSERVERARGS[2]="-geometry 800x600 -nohttpd"

VNCSERVERARGS的详细参数有:

-geometry 桌面分辨率,默认1024x768;
-nohttpd 不监听HTTP端口(58xx端口);
-nolisten tcp 不监听X端口(60xx端口);
-localhost 只允许从本机访问;
-AlwaysShared 默认只同时允许一个vncviewer连接,此参数允许同时连多个vncviewer;
-SecurityTypes None 登录不需要密码认证VncAuth默认值,要密码认证。

(2)修改/etc/sysconfig/vncserver文件:

熟悉Linux下VNC的运行机制后,开始正式配置VNC Server。vi /etc/sysconfig/vncserver,添加如下三行:

VNCSERVERS="1:root 3:aiezu"
VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp"
VNCSERVERARGS[3]="-geometry 1024x768 -nolisten tcp"

本例我们开启两个vncserver,分别是root用户,显示编号为1和用户aiezu,显示编号为3,并且全不开启X监听端口60xx。

(3)设置VNC用户密码:

接下来设置VNC的密码,此步骤不可跳过,否则VNC Server将无法启动,在Linux Shell下执行下列命令:

  1. # su - aiezu
  2. # vncpasswd
  3. Password:
  4. Verify:
  5. # su - root
  6. # vncpasswd
  7. Password:
  8. Verify:
  9. service vncserver start //启动vncserver

运行上面命令后,会在用户根目录($HOME)下的".vnc"文件夹下生成一系列文件。其中passwd为vnc用户密码文件,由vncpasswd生成。其他的都由vnc初次启动时生成,xstartup为VNC客户端连接时启动的脚本。

(4)修改".vnc/xstartup"文件:

执行到上面步骤后,VNC Server已经能正常运行。但是默认设置下,客户连接时启动的是xterm,我们如果想看到桌面,必须将用户根目录下的".vnc/xstartup"文件中的最后两行注释掉,然后根据你安装的桌面坏境,添加一行"startkde &"或者"gnome-session &"。如下:

  1. #!/bin/sh
  2. # Uncomment the following two lines for normal desktop:
  3. # unset SESSION_MANAGER
  4. # exec /etc/X11/xinit/xinitrc
  5. [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
  6. [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
  7. xsetroot -solid grey
  8. vncconfig -iconic &
  9. #xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
  10. #twm &
  11. startkde &
  12. # gnome-session &

配置完各个用户根目录下的".vnc/xstartup"后,执行service vncserver restart 重新启动vncserver使配置生效。

(5)配置防火墙:

如果Linux启用了防火墙,必须允许VNC的相关端口(58xx,59xx,60xx)。具体的端口,请参照第2大步骤的①小步骤的VNC运行机制介绍,本例开启5801,5803,5901,5903端口就可以。在Linux命令提示符下输入"system-config-securitylevel-tui"启动防火墙配置工具,点"Customize",在"Other Port"中输入"5801:tcp 5803:tcp 5901:tcp 5903:tcp",然后点"OK"既可。

3、VNC客户端配置与连接:
(1)在windows下使用IE进行远程控制连接:

使用浏览器连接时,服务端的VNCSERVERARGS设置必须没有"-nohttpd参数",并且防火墙允许VNC的58xx和59xx端口通过。浏览器必须安装了Java支持插件,Java插件下载地址:http://www.java.com/zh_CN/download/manual.jsp

(2)使用在windows下vncviewer远程控制连接:

使用vncviewer进行远程控制是最简单方式,服务器只需开启"59xx"端口就可以了。客户端也无需配置,双击vncviewer后,在server文本框中输入vncserver的ip地址和端口即可(本例为:192.168.1.22:5901)。vncviewer绿色版的本地下载地址为:http://www.aiezu.com/uploads/soft/vnc-4_1_2-x86_win32_viewer.exe

(3)在Linux下使用vncviewer进行远程控制连接:

使用vncviewer前必须安装vnc-4.1.2-9.el5.i386.rpm包,vncviewer的用法为:vncviewer host:显示编号。

(4)在windows下使用vncviewer+putty.exe通过ssh安全通道连接:

打开putty,在左边的"Category"中依次点"Connection"->"SSH"->"Tunnels"。在"Source Port"文本框中输入"5901","Destination"文本框中输入"localhost:5901",点击"Add,添加端口转发。然后在putty左边的"Category"下点"Session",输入服务器的IP地址后,点"Open"按钮,输入密码登陆后,既成功启用了端口转发。接着在本机打开vncviewer输入"127.0.0.1:5901"即可成功连接到远程的5901端口。

(5)在Linux下使用vncviewer+ssh安全通道连接:

与④类似,在linux vnc客户端shell下运行"ssh -L 5901:localhost:5901 vncserverhost"命令,输入用户名密码。即完成通过shh安全通道,将远程的5901端口转发到本机的5901端口。然后在shell下运行"vncviewer 127.0.0.1:1"命令即可以连接到远程的VNC Server。

上面的五种连接方式中,前面三种方式数据都是未加密的形式在网络中传输的,是极为不安全的方式,建议不要采用。

4、常见问题
(1)问:为什么成功连接后,没有显示桌面,而只是现实一个Terminal窗口?

答:在未修改用户根目录下的".vnc/xstartup"文件,xstartup的默认设置即是此情况。请按第2大步的第②小步修改xstartup,然后运行"service vncserver restart"重新启动vncserver服务即可。

(2)问:如何查看VNC正在运行的显示编号端口号?

答:在Linux命令提示符下执行"netstat -tlup|grep vnc",即可以查看到端口号,端口号的后两位即显示编号。

(3)问:如何关闭指定的显示编号?

答:vncserver -kill :number 即可以关闭指定的显示编号和对应的端口号。

(4)问:为何我通过浏览器连接VNC 端口时,浏览器显示了一个红叉。

答:那是因为你的浏览器没装Java插件的缘故,下载Java插件安装即可。

(5)问:客户端连接时"Connetcion timed out(10060)"是怎么回事?

答:对于客户端连接时出现"Connetcion timed out(10060)"或者"No route to host:connect",请检查防火墙是否开启了58xx,59xx,vncserver是否正常运行,以及/etc/sysconfig/vncserver文件配置是否正确。

(6)问:在通过VNC连接的图形界面桌面启动X应用时出现:"Error: Can't open display: :0.0"错误?

答:请使用"echo $DISPLAY"命令查看"DISPLAY"坏境变量是否设置为":显示编号:0",如:":1:0"。如果不是此形式,启动X应用时会出现此错误。此时可以通过"export DISPLAY=:1:0"设置正确的DISPLAY。还有一种可能就是切换了用户启动X应用,当前用户没有权限使用X窗口,这时返回到启用VNC的用户,运行"xhost +"允许其他用户访问此X窗口即可。

0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 母猪发烧耳朵放血止不住了怎么办? 青春期孩子动手打父母该怎么办 20岁睡觉不老实怎么办 孕妇梦见钱掉了怎么办 小孩晚上睡觉鼻子塞怎么办 宝宝晚上睡觉鼻子塞怎么办 按摩后吹冷气发冷怎么办 碰到特别细心敏感的下属怎么办 睡觉压的肩膀疼怎么办 睡觉感觉被压住动弹不得怎么办 越想睡觉越睡不着怎么办 腿被裤子染黑了怎么办 肚子上的松皮怎么办 在公司天天背锅怎么办 职场老实背锅怎么办 三星a8充不了电怎么办 果6软件连不上网怎么办 孩子在幼儿园磕伤了怎么办 小孩在幼儿园摔骨折了怎么办 孩子在幼儿园摔骨折了怎么办 大腿被撞了很痛怎么办 马面褶子坏了怎么办 纱料衣服有褶怎么办 裙子如果后背那里小了怎么办 湖州耳朵鸣很严重怎么办 预授权撤销错了怎么办 打酒店里小卡片电话被骗怎么办 本科错过了选导师该怎么办 本科导师威胁学生不让毕业怎么办 意向导师名额满了怎么办? 扔的瓶子被限制怎么办 左钝缘支起始部重度狭窄怎么办 吃了抑郁症药困怎么办 如果股票退市持股人怎么办 电信身份信息审核失败怎么办 打完肌肉针肿了怎么办 refa掉了一个球怎么办 左腿比右腿粗怎么办 产妇上火怎么办吃什么下火呢 哺乳期上火怎么办吃什么下火 前扣内衣有点紧怎么办