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

vnc 安装和配置 ubuntu环境和centos环境

2016-10-18 10:45 246 查看
1:vnc概述:

VNC (Virtual Network Console)是虚拟网络控制台的缩写,一款优秀的远程控制的图形化工具软件。

VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多数情况下用户只需要其中的两个命令:vncserver 和 vncviewer。

一般使用vnc,需要server端不仅安装vncserver,而且需要安装Xwindow的图形化界面,诸如gnome,xdm,xfce等

查看系统发行版本

lsb_release -a

2:安装

——————————ubuntu 16环境----

sudo apt-get install vnc4server

sudo apt-get install gnome-panel

---------------centos 环境--------------

# yum groupinstall "GNOME Desktop Environment"(CentOS 5.x安装GNOME桌面环境)

# yum groupinstall "X Window System" "Desktop"(CentOS 6.x安装GNOME桌面环境)

# yum groupinstall Xfce(CentOS安装Xfce桌面环境,可选)

# yum install vnc-server vnc* (CentOS 5.x)

# yum install tigervnc-server tigervnc (CentOS 6.x)

vncserver

此服务程序必须在在主(或遥控)计算机上运行,server端。

vncviewer

本地应用程序,用于远程接入运行vncserver的计算机并显示其环境。你需要知道远程计算机的IP地址和vncserver设定的密码。client端。

vncpasswd

vncserver的密码设置工具。vncserver服务程序没有设置密码将不能运行(好习惯)。如果你没有设置,运行vncserver时它会提示你输入一个密码。所以,一般我不会单独运行这个命令来设置密码。

vncconnect

告诉vncserver连接到远程一个运行vncviewer的计算机的IP和端口号。这样我就可以避免给其他人一个接入的密码。

——————————————————————————————————————————————

3:vnc 配置

3-1 vncserver配置

vi /etc/sysconfig/vncservers

在最后加上:

VNCSERVERS="1:用户名 2:用户名"

VNCSERVERARGS[1]="-geometry 1024x768 –alwaysshared -depth 16"

VNCSERVERARGS[2]="-geometry 1024x768 –alwaysshared -depth 16"

    1:其中-alwaysshared表示允许多终端同时登录,-depth指颜色分辨率,可以是8,16,24,32。

    2:这里的“用户名”是指linux系统用户的名称

    3:系统远程桌面中默认的是console模式,用户要是想使用图像界面的话,则需激活:

    unset SESSION_MANAGER

    exec /etc/X11/xinit/xinitrc

    4:上面第一行是设定可以使用VNC服务器的帐号,可以设定多个,但中间要用空格隔开。注意前面的数字“1”或是“2”,

    当你要从其它电脑来VNC服务器时,就需要用IP:1这种方法,而不能直接用IP。如假定你的VNC服务器IP是192.168.1.100,

    那想进入VNC服务器,并以peter用户登录时,需要在vncviewer里输入IP的地方输入:192.168.1.100:1,

    如果是root,那就是192.168.1.100:2;

    5:下面两行[1][2]最好与上面那个相对应,后面的800X600可以换成你电脑支持的分辨率。注意中间的”x”不是“*”,而是小写字母”x”

3-2 创建xstartup脚本

启动 vncserver

$ vncserver :1  

表示启动vncserver,“:1”表示display号,即启动vncserver的1号display。

服务器中可以在不同的账户中启动不同的display号,客户端登录时需要填写对应的display号登录到对应的账户。

如果多个客户端登录同一个display,会看到别人操作的动作,即会争抢鼠标。

关闭1号display

vncserver -kill :1

vi ~/.vnc/xstartup

————————————ubuntu的配置————————————————————————

打开 .vnc/xstartup 文件并编辑:

取消unset和exec开始的行的注释,注释以xsetroot,vnccon**,xterm和twm开始的行,内容如下:

#!/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

#vnccon** -iconic &

#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &

#x-window-manager &

——————————————————————————————

vnc 原理

一、屏幕控制原理

       VNC是把被控制端的屏幕做成图像,经过压缩后传送到控制端,控制端的控制信息(如鼠标信息)传送到被控制端后进入消息队列。

       客户端                                         X服务器                                            应用程序

vnc viewer<----------------------->Xvnc(vnc server)<------------------------>applications

                       (vnc protocal)                                             (X protocal)                    

其控制是基于tcp/ip的,其中vnc server扮演了双重角色,vnc protocal是基于RFB protocal的。

二、截屏方式

       VNC使用的截屏方式比较独特,它有两种方式:第一种是使用钩子自动报告需要截屏的区域;第二种是轮询某一个区域(如前景窗口)。截屏后使用某种压缩算法压缩后发送。

三、传输方式

1.RFB协议传输:

在控之端不能直接改变显示大小,只能进行缩放,如缩放为原大小的几倍。原理是在远程机器上运行一个额外的X服务器,X服务器和客户机器都在远程跑。然后通过RFB协议用自己的客户端显示到本地。

 

2.X协议:

X 视窗系统提供了一个公开协议,由其客户程序可以查询和更新 X 服务器上的信息。X 视窗系统(X 协议)允许网络中不同计算机上的进程在其它网络显示器上显示内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: