您的位置:首页 > 运维架构 > Linux

Linux环境VNC服务安装、配置与使用

2010-12-05 22:33 1041 查看
1.首先是在Linux机器上安装VNC(有挺多版本,我一般都是 yum search vnc,然后yum install ×××);此外还得在Windows机器上安装VNC客户端(VNC Viewer),不赘述。
2.接着是Linux机器上的VNC配置:
(1)首先是建VNC 账户,主要是编辑文件/etc/sysconfig/vncservice,可以创建多个账户(每个账户必须同时是Linux的账户),并为每个账户指定窗口、分辨率等参数(一般到分辨率即可,后面的参数可以删除);
(2)开放端口,以前很傻的办法是把/etc/init.d/iptables stop或者是把所有的端口设为可信端口(这是在屡次尝试后的无奈之举),实际上只要把5900+账户对应的窗口号设为可信端口即可(在Fedora 13中可以在 系统-->管理-->防火墙-->其他端口 添加5900、5901等等);
(3)此外得为每个VNC账户设置VNC密码,切换到每个用户,通过passwd设置登录密码;
(4)要从Windows登录Linux,必须保证VNC Server已经开启,所以在开启VNC Server服务之后,执行
/etc/chkconfig/vncserver on命令以命令VNC Server每次开机后自动开启。

大致流程如此吧。下面是转载的一篇文章,很详细很基础。

--------------------------------------------------------------------------------------------------------------------------------------

作者:高张远瞩(HiLoveS)
博客:http://www.cnblogs.com/hiloves/
转载请保留该信息
小弟在此写篇扫盲贴,请各位大牛拍砖留情,小弟谢谢了。呵呵。

VNC是由AT&T试验室开发,是一款优秀的远程控制工具软件,后来以GPL授权的形式开源。经过几年的发展,现在的VNC已经不单指某个软件,而是一类软件的通称。下面介绍Linux下常用的两个VNC软件。
VNC的原理就是不停的对窗口界面截屏,再将图像传输给客户端,同时VNC服务器端接管服务器端的键盘、鼠标控制权,客户端可以通过服务器端操纵键盘鼠标。比较类似Windows下的pcAnywhere。

一、Windows 端设置
先讲Windows端是因为,下述的两个VNC可以用同一个客户端连接。
在Windows平台上,客户端我选择了RealVNC。RealVNC包括了一整套的服务器端与客户端,如果只安装客户端是不需要注册码的,其客户端程序名为vncviewer.exe,这是个绿色软件,你可以从安装目录下拷贝到其他电脑中运行。



二、VINO
VINO是Gnome中集成的一个VNC软件,安装Gnome环境时默认安装,点击“系统”-“首选项”-“远程桌面”就打开了其配置窗口。



选中“允许其他人查看您的桌面”后VINO就会启动服务器端进程vino-server,同时它监听TCP 5900端口。如果不选中“允许其他用户控制您的桌面”,客户端则只能观看不能操纵。
VINO的模式与下面介绍的XVNC有很大不同,我觉得VINO其实是“Windows下的远程协助”,因为客户端显示的桌面与Linux端本地显示器中显示的桌面一样,如果你操纵客户端中的鼠标,Linux的显示器也能看到鼠标在跑。如果你在Windows下安装过VNC服务器端,效果就是这个样。
另外,VINO的带宽占用真是变态,就算是一进桌面什么都不打开无操作的情况下,带宽也要占到4-5Mbps(桌面1280×1024,色彩24),如果有操作会占到8-12Mbps。
所以,VINO不适合做为服务器的日常远程管理,比较适合做为Linux下的远程协助和远程教学,也就是说你遇到一个问题,求助高手,而高手可以手把手的教你,你可以直接观看屏幕学习,或者做故障重现,你在本地做故障或Bug重现,而工程师可以远程观看。

三、XVNC
XVNC就是大家所熟悉的vnc或vncserver,是由RealVNC公司开发的开源版的VNC软件。

1、安装XVNC。

安装Linux时,可以从安装包中选中。若没有安装,可以从安装盘中找到。
服务器的组件名叫 vnc-server。请执行 rpm -q vnc-server 这个指令。
它的输出应该是 package vnc-server is not installed 或类似 vnc-server-4.0-11.el4。
假如服务器未被安装,请用这个指令来安装它:yum install vnc-server。

2、启动vncserver。

在终端中输入:
vncserver :1 -geometry 1280x1024 –depth 24 注::1指1号窗口,-geometry指窗口分辨率,-depth指色彩数
也可以简单的指定:
vncserver :1 注:使用RealVNC的客户端,窗口分辨率与色彩数可以在客户端指定
当你第一次启动vncserver时,会要求指定密码,该密码是VNC客户端连接时要输入。
窗口可以从0开始指定,如果Linux本地端已经启用图形环境,则必须从1开始指定,因为窗口0被X11占用。

3、配置xstartup

XVNC默认采用twm做为图形环境,如果你安装了KDE或Gnome也可以启动。
vi ~/.vnc/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/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
twm &

最后一行twm &表示启动twm,修改成gnome-session &启动Gnome,修改成startkde &启动KDE。
如果Linux本地端已经启用Gnome或KDE图形环境,当VNC客户端连接服务器后,可能会只显示灰屏,没有正常启用图形环境。查看~/.vnc下的日志时会提示错误:You are already running a session manager。
这时需要去掉xstartup文件中的
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
这两行前的#,

去掉 下面两行前面的“#”保存即可
#unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
用":wq"命令是因为它得多敲一个字母。
但是,今天我才知道":x"和":wq"的真正区别,如下:
:wq强制性写入文件并退出。即使文件没有被修改也强制写入,并更新文件的修改时间。
:x写入文件并退出。仅当文件被修改时才写入,并更新文件修改时间,否则不会更新文件修改时间。】

然后重启vncserver。如果Linux本地端是init 3模式,则不需要修改这两行。
当vnc客户端连接服务器时显示的界面是英文的,主要是中文环境还没有装入,而且没有中文输入法。在# exec /etc/X11/xinit/xinitrc行后添加下面内容:
export LANG=zh_CN.UTF-8 注:启用中文环境
scim –d 注:加载scim输入法

4、关闭vncserver

vncserver –kill :1 注:关闭窗口1,以此类推关闭窗口2就为:2
当所有窗口都关闭vncserver服务就关闭了。

5、客户端使用

XVNC不仅支持vncview等客户端程序,还支持浏览器控制。
浏览器直接输入地址http://IP:5800,就会启动Java客户端连接。
窗口0占用TCP 5900端口(VNC客户端),TCP 5800端口(浏览器)。
窗口1占用TCP 5901端口(VNC客户端),TCP 5801端口(浏览器)。
窗口2、3以此类推。

6、开机自启动vncserver

上面的操作都是要先登录Linux端,然后手动启动vncserver服务后,才能使用VNC连接。如果你想开机自启动vncserver服务,必须这样做。
先按上面的步骤启动一次vncserver,确保密码和xstartup文件都建立了。
然后,vi /etc/sysconfig/vncservers,添加如下内容:
VNCSERVERS="1:root 2:zhang 3:li" 注:1、2、3代表窗口,比如root用户用窗口1,zhang用户用窗口2,这里的用户是指Linux中的正规的用户帐户
VNCSERVERARGS[1]="-geometry 640x480 –depth 24" 注:为root用户指定分辨率和色彩数,这里的[1]指上面的“1:root”
VNCSERVERARGS[2]="-geometry 640x480 –depth 16" 注:为zhang用户指定分辨率和色彩数
VNCSERVERARGS[3]="-geometry 800x600"
注:上面的这三行可以不添加,由vnc客户端自行控制分辨率和色彩。上面的root、zhang、li用户必须确保密码和xstartup文件都建立了,你可以分别登录先执行一次vncserver :1。
最后,执行/sbin/chkconfig vncserver on指令。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 服务 环境