• Linux系统安装VNC及配置


    VNC概述

      VNC (Virtual Network Computing)是虚拟网络计算机的缩写。VNC 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux操作系统的免费的开源软件远程控制能力强大,高效实用,其性能可以和 Windows 或 MAC 中的任何远程控制软件媲美。在 Linux 中,VNC 包括以下四个命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多数情况下只需要其中的两个命令:vncserver 和 vncviewer。目前,原来的AT&T版本已经不再使用,因为更多有重大改善的分支版本已经出现, 像是RealVNC, VNC tight 和UltraVNC。 Real VNC 是当前最活跃和强大的主流应用。

      VNC一共有三个版本,TightVNC、RealVNC、UltraVNC,RealVNC旨在推进商业化,因此需要License;TightVNC旨在改善服务器和查看器之间的VNC压缩,但是该版本最大的缺点是不能远程复制粘贴,而RealVNC则可以(这里的复制粘贴指的是文本的复制粘贴,文件的复制粘贴各版本都不支持);最后是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协议使用大量的带宽,因此各种各样的方法被发明出来减少通讯的开支,举例来说,有各种各样的编码方法来决定最有效率的方法来传送这些点阵方块)

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

    VNC默认使用TCP端口5900至5906,而JAVA的VNC客户端使用5800至5806。一个服务端可以在5500口用“监听模式”连接一个客户端,使用监听模式的一个好处是服务端不需要设置防火墙。

    UNIX上的VNC称为xvnc,同时扮演两种角色,对X窗口系统的应用程序来说它是X server,对于VNC客户端来说它是VNC服务器程序。

    一、tigervnc

    1. 安装VNC

    sudo yum install tigervnc tigervnc-server

    2. 修改配置

    sudo vim /etc/sysconfig/vncservers

    修改内容如下:

    # THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/vncserver@.service
     
    # VNCSERVERS="桌面号:系统用户 桌面号:系统用户"
    VNCSERVERS="1:zhang 2:root"
     
    # VNCSERVERARGS[桌面号]="-geometry 分辨率 -alwaysshared[允许多个客户端同时连接] -depth [色深,值有8,16,24,32]"
    VNCSERVERARGS[1]="-geometry 1024x768 -alwaysshared -depth 24"
    VNCSERVERARGS[2]="-geometry 1024x768 -alwaysshared -depth 24"

    3. 设置密码

    vncpasswd

    4. 启动服务

    vncserver

    *防火墙开放端口

    首先判断firewalld是否启动,输入以下命令判断

    sudo firewall-cmd --state

    如果启动应该输出:running

    如果是:not running,执行下面命令

    sudo systemctl start firewalld

    添加端口号5901-5905

    sudo firewall-cmd --permanent --zone=public --add-port=5901-5905/tcp

    重新加载防火墙

    sudo firewall-cmd --reload

    可以使用下面命令查看端口号是否被加入

    firewall-cmd --list-all-zones
    # 或者(只查看活动的)
    firewall-cmd --list-all

    删除规则例子

    firewall-cmd --permanent --zone=public --remove-port=5901-5905/tcp

    5. 客户端连接

    若没有客户端,可前往 这里下载

     

    二、realvnc

    1. 下载deb或rpm安装包

    官方下载地址:https://www.realvnc.com/en/connect/download/vnc/

    CSDN下载地址:https://download.csdn.net/download/u013992330/18503629

    2. 安装

    下载之后直接安装即可,例如kylin平台使用deb包进行安装:

    sudo dpkg -i VNC-Server-6.7.4-Linux-x64.deb
    

    3. 加载VNC License

    由于RealVNC旨在推进商业化,因此在安装之后需要使用vnclicense加载License,命令如下:

    vnclicense -add xxxx  # xxxx 是License序列号,也就是realvnc license key,自己想办法搞到。

    vnclicense工具的其他用法可使用vnclicense --help查看。

     License加载之后,可使用vnclicense -list查看:

    4. 启动VNC

    realvnc有两种启动方式,一种是virtual,一种是x11,virtual跟上边的TightVNC原理差不多,x11则是直接连接的服务器的X桌面,跟你直接在服务器上操作是一样的。两种选择其中一种启动、使用即可。

    a.  virtual启动:

    systemctl start vncserver-virtuald.service

    查看启动状态:

    systemctl status vncserver-virtuald.service

    b.  x11启动:

    systemctl start vncserver-x11-serviced.service

    查看启动状态:

    systemctl status vncserver-x11-serviced.service

    5. 连接VNC Server

    连接方法跟上边的TightVNC一样,但是我在连接的时候,使用 IP:桌面号 的方式连接不上,因此查看了它监听的端口,使用端口连接成功了,端口查看命令:

    netstat -tnlp |grep vnc

     可以看到virtual的监听端口是5999,x11的监听端口是5900,现在使用ip:port的方式就可以连接了。

    ————————————————
    版权声明:本文为CSDN博主「password-u」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u013992330/article/details/116049635

    
    
  • 相关阅读:
    使用 Helm【转】
    部署 Helm【转】
    Helm 架构【转】
    Why Helm?【转】
    用 ConfigMap 管理配置【转】
    js argument实参集合与局部变量、参数关系
    js 定时器
    JVM的调优
    Java异常,以及finally不会执行的情况
    Java绑定
  • 原文地址:https://www.cnblogs.com/zouhao/p/16508052.html
Copyright © 2020-2023  润新知