• VNC


    VNC概述

    我们知道在windows里面有远程桌面,在linux下我们同样有这个东西,其中最流行的一种就是VNC。其实VNC是一种协议,它的全称是virtual network computing,是一种C/S架构的协议,所以需要客户端和服务端同时执行,在服务端监听5800,5801,5901等多个可能的端口,而客户端只需要向sever端发起连接请求,并输入账号密码即可访问了

    VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 、基于 UNIX 和 Linux、免费开源,远程控制能力强大,高效实用,其性能可以和 Windows 或 MAC 中的任何远程控制软件媲美。目前,原来的AT&T版本已经不再使用,因为更多有重大改善的分支版本已经出现,像是RealVNC,VNC tight 和UltraVNC。

    RealVNC官方网址http://www.realvnc.com/

    Tight VNC官方网址http://www.tightvnc.com/

    UltraVNC官方网址http://www.uvnc.com/

    VNC原理

    VNC系统由客户端,服务端和一个协议组成。VNC 的服务端目的是分享其所运行机器的屏幕, 服务端被动的允许客户端控制它。 VNC客户端(或Viewer) 观察控制服务端,与服务端交互。 VNC 协议 Protocol (RFB)是一个简单的协议,传送服务端的原始图像到客户端(一个X,Y 位置上的正方形的点阵数据), 客户端传送事件消息到服务端。

    服务器发送小方块的帧缓存给客户端,在最简单的情况,VNC协议使用大量的带宽,因此各种各样的方法被发明出来减少通讯的开支,举例来说,有各种各样的编码方法来决定最有效率的方法来传送这些点阵方块)

    协议允许客户端和服务端去协议哪种编码会被使用,最简单的编码,被大多数客户端和服务端所支持的是,从左到右的像素扫描数据的原始编码, 当原始的满屏被发送后,只发送变化的方块区域。这种编码在幁间只有小部分屏幕变化的情况下工作的非常好(像是鼠标键在桌面移动的情况,或在光标处敲击文字),不过如果大量的像素同时变化带宽将会增加的非常高,像是拖动一个窗口或观看全屏录像。

    远程桌面Linux服务器

    1、CentOS服务器端的安装

    yum install tigervnc-server

    2、Windows客户端

    下载地址:http://sourceforge.net/projects/tigervnc/

    下载文件: vncviewer64-1.5.0.exe

    clip_image001[4]

    3、linux客户端

    在linux上安装vnc的客户端vncviewer

    #yum install vnc    //这个就是vncviewer的安装包

    启动客户端

    vncviewer 
    或者
    vncviewer  ip:n

    clip_image002[4]

    4、启动vncserver

    vncserver :n

    其中n为桌号,不同用户的桌号也不能相同。当你第一次启动vncserver时,会要求指定密码,该密码是VNC客户端连接时要输入

    5、设置修改远程桌面密码

    分别以oracle和root执行vncpasswd, 如果还未设置VNC用户密码,启动vncserver服务,则会报如下错误:

    # 设置远程桌面密码
    
    vncpasswd

    6、启动客户端

    clip_image003[4]

    关于VNC服务使用的端口号与桌面号相关,VNC使用TCP端口从5900开始,对应关系如下

    桌面号为“1” ---- 端口号为5901

    桌面号为“2” ---- 端口号为5902

    桌面号为“3” ---- 端口号为5903

    ……

    XVNC不仅支持vncview等客户端程序,还支持浏览器控制。基于Java的VNC客户程序Web服务TCP端口从5800开始,也是与桌面号相关,浏览器直接输入地址http://IP:5800,就会启动Java客户端连接。

    桌面号为“1” ---- 端口号为5801

    桌面号为“2” ---- 端口号为5802

    桌面号为“3” ---- 端口号为5803

    7、关闭vncserver(服务器端)

    vncserver -kill :n

    8、列出当前连接的客户端

    vncserver –list

    9、开机自动启动

    上面的操作都是要先登录Linux端,然后手动启动vncserver服务后,才能使用VNC连接。如果你想开机自启动vncserver服务,必须这样做。

    修改配置文件 /etc/sysconfig/vncservers,配置远程登录用户, vncservers是用来设定可以使用VNC的服务器账号,可以设定多个,例如上面oracle、root,但是中间要用空格隔开。

    vi /etc/sysconfig/vncservers
    
    # 去掉最后两行的注释
    
    VNCSERVERS="1:oracle 2:root"
    
    VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp -nohttpd"
    
    VNCSERVERARGS[2]="-geometry 1024x768 -nolisten tcp -nohttpd"
    
    # 使生效
    
    source /etc/sysconfig/vncservers

    关于参数配置说明:

    1:-geometry 表示桌面分辨率,默认为1024x768,所以上面的1024x768也可以不写。

    2:-nohttpd  表示不监听HTTP端口(58xx)。

    3:-nolisten tcp 表示不监听TCP端口(60xx)

    4:-localhost 只运行从本机访问。

    5:AlwaysShared 默认只允许一个VNCVIEWER连接,此参数表示同一个显示端口允许多用户同时登录.

    6:-depth  表示色深,参数有8,16,24,32.

    7: SecurityTypes None 登录不需要密码认证VncAuth默认值,要密码认证。

    #设置开机启动
    
    chkconfig vncserver on

    相当于开机启动的时候,oracle用户执行了 vncserver :1 , root执行了 vncserver :2

    10、常见连接错误

    clip_image004[4]

    开启端口(以80端口为例)

    /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT   写入修改
    
    /etc/init.d/iptables save   保存修改
    
    service iptables restart    重启防火墙,修改生效

    clip_image005[4]

    10061 未启动vncserver

    参考:

    远程桌面软件VNC的安装与配置

    vncserver 图形界面显示

    linux下VNC的配置及使用

    Linux系统VNC配置实践总结

  • 相关阅读:
    从Ecma规范深入理解js中的this的指向
    js中继承的几种用法总结(apply,call,prototype)
    缓存 Array.length 是老生常谈的小优化
    spark app
    source code spark
    spark dev by IDEA
    编译spark-0.9.1
    图解GIT,ZT
    Spark分布式安装
    倒排索引(Inverted Index)
  • 原文地址:https://www.cnblogs.com/xqzt/p/4919046.html
Copyright © 2020-2023  润新知