TigerVNC是一个高性能、平台无关的虚拟网络计算(Virtual Network Computing,VNC)实现,是一个客户端/服务器应用程序,允许用户在远程机器上启动并与图形应用程序进行交互。TigerVNC提供了运行3D和视频应用程序所需的性能要求,并试图维护一个通用的桌面外观和感觉并重用组件,在可能的情况下,跨越它所支持的各种平台。TigerVNC还为高级身份验证方法和TLS加密提供了扩展。

TigerVNC最初是基于TightVNC从未发布过的VNC4分支,目标是提供一个高性能、稳定和通用的VNC实现。TigerVNC将继续支持Windows、Linux和Java等多个平台,而且对最新一代的X.Org的支持已经到位。

多平台上的统一外观和对新一代的X.Org的支持也许是TigerVNC与TightVNC的最大的区别。事实上,TightVNC的Unix-like平台的支持一直停留在十几年前的1.3版,一直不停更新的是其Windows版。而TigerVNC则注重Unix-like版本的开发,特别是对新版本的X桌面系统的强力支持,而Windows版本则是不建议使用。所以如果想要在BSD、Linux等Unix-like操作系统中实现远程虚拟桌面,最好的选择当然是TigerVNC,也正是TigerVNC才真正解决了GNOME 3版本中所采用的硬件加速等新功能的远程虚拟,有一个能实现全功能的GNOME的TigerVNC服务器为什么不用呢。

centos7为例:

1.配置好本地 yum 源,然后安装上 tigervnc 和 tigervnc-server 安装包,被远程只装tigervnc-server即可

[root@nginx ~]# yum search tigervnc --showduplicates //可以看到本地 yum 源提供的 vnc 版本。
[root@nginx ~]# yum -y install tigervnc*

2.临时启用 VNC 远程连接又可以简单分为以下两种情况:

  • 【单终端】只需要一个远程窗口供用户进行操作即可;
  • 【多终端】需要多个远程窗口供多个用户进行操作(比如多个用户都需要图形化界面来配置多个不同的应用服务)。

单终端配置:

服务端配置,注意其中 :1连接时要用到

注: nginx是主机名 , 注意冒号": ”后面的数字 , 这里是“1 ” , 这个1  在登录对方 ip 的时候用得上。

首次运行 vncserver 会提示生成了 xstartup文件 , 这个文件里面包含着登录启动 X 时的一些配置。

启动完 vncserver 后在你的主目录下将会产生一个 .vnc 的目录。
每次启动 vncserver ,都会在当前用户家目录下产生一个 .pid ,这里是 启动过一次这个服务,会有一次.pid

客户端配置

windows安装并打开 VNC Viewer 客户端,按照下图所示进行配置:

服务器主机名就是机器名,命令行提示符@后面的地址,如root@zl-virtual-machine:~#中zl-virtual-machine就是主机名

输入在服务器端启动 vnc 服务时所设置的密码, 就可以远程访问服务器的图形化桌面了

多终端配置:其实多终端也很好理解,就是启用多个 vnc 服务,如下图所示:

此时,在客户端我们就可以使用3个窗口进行连接,如下图所示:

相关命令:

启动 vnc 服务:
# vncserver

关闭 vnc 服务:
# vncserver -kill <X DISPLAY>     如vncserver -kill  :1  或者查杀进程ps -ef | grep vnc ,kill -9 pid

查看当前 vnc 服务运行列表:
# vncserver -list

修改 vnc 连接密码:
# vncpasswd

修改桌面分辨率:
# vncserver -geometry 1920x1080 //其实就是新启动一个分辨率为 1080p 的 vnc 服务窗口。

其他如银河麒麟系统可通过桌面共享配置vnc连接配置,再通过windows的vnc viewer连接

tigervnc客户端也可以连接,要填写端口号,ps -ef | grep vnc查看端口

注意:vnc-server端要关闭防火墙,否则vnc viewer连接会失败

如果要永久配置远程连接开机自启动,请参考文献地址:(38条消息) CentOS 7 配置 VNC 远程桌面连接_方先森有点懒的博客-CSDN博客_centos7远程桌面

ubuntu为例:

1.安装桌面环境

Ubuntu 20.04服务器是通过命令行管理的,默认情况下未安装桌面环境。如果您运行桌面版本的Ubuntu,请跳过此步骤。

当前Ubuntu 20.04存储库中提供了各种桌面环境,一种选择是安装Gnome,它是Ubuntu 20.04中的默认桌面环境。另一个选择是安装Xfce。它是一种快速、稳定且轻巧的桌面环境,非常适合在远程服务器上使用。

建议安装Xfce,以具有sudo特权的用户身份输入以下命令:

sudo apt update

sudo apt install xfce4 xfce4-goodies

注:下载和安装Xfce软件包可能需要一些时间,请耐心等待安装完成。

2.安装TigerVNC服务器

Ubuntu 20.04存储库中有几种不同的VNC服务器,例如TightVNC、TigerVNC和x11vnc。每个VNC服务器在速度和安全性方面都有各自的优缺点。

TigerVNC-server,这是一个主动维护的高性能VNC服务器,输入以下命令以安装软件包::

apt install tigervnc-standalone-server

再使用apt install tigervnc*安装tigervnc相关配置后才能设置密码

3.配置VNC访问

安装VNC服务器后,下一步是创建初始用户配置并设置密码。

使用vncpasswd命令设置用户密码,运行以下命令时请勿使用sudo:

vncpasswd

系统将提示您输入并确认密码,以及是否将其设置为只读密码。如果选择设置仅查看密码,则用户将无法使用鼠标和键盘与VNC实例进行交互:

Password:

Verify:

Would you like to enter a view-only password (y/n)? n

密码文件存储在~/.vnc目录中,如果不存在则创建该目录。

接下来,我们需要配置TigerVNC以使用Xfce。为此,使用普通用户,请创建~/.vnc/xstartup文件,运行:

vi ~/.vnc/xstartup

增加以下内容:

#!/bin/sh

unset SESSION_MANAGER

unset DBUS_SESSION_BUS_ADDRESS

exec startxfce4

对于gnome桌面环境,如中科方德桌面版,在~/.vnc/xstartup添加一下内容:

#!/bin/sh

unset SESSION_MANAGER

unset DBUS_SESSION_BUS_ADDRESS

exec /etc/X11/xinit/xinitrc

对于ukui桌面,在新建~/.vnc/xtartup,添加下列内容:

#!/bin/bash
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

# Enable Fcitx Input Environment
export GTK_IM_MODULE="fcitx"
export QT_IM_MODULE="fcitx"
export XMODIFIERS="@im=fcitx"
fcitx-autostart &

# Launch the UKUI Desktop
lightdm &

ukui-session &

保存并关闭文件。每当您启动或重新启动TigerVNC服务器时,以上命令都会自动执行。

~/.vnc/xstartup文件也需要具有执行权限,使用chmod命令设置文件权限:

chmod u+x ~/.vnc/xstartup

如果需要将其他选项传递给VNC服务器,请创建一个名为config的文件,可以不用配,即~/.vnc/config,并在每行添加一个选项。这是一个例子:

geometry=1920x1080

dpi=96

现在,您可以使用vncserver命令启动VNC服务器:

vncserver

返回如下信息,供参考:

New 'server2.linuxize.com:1 (linuxize)' desktop at :1 on machine server2.linuxize.com

Starting applications specified in /home/linuxize/.vnc/xstartup

Log file is /home/linuxize/.vnc/server2.linuxize.com:1.log

Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/linuxize/.vnc/passwd :1 to connect to the VNC server.

在上面的输出中,请注意主机名后面的:1。这表示正在运行vnc服务器的显示端口号。在此示例中,服务器在TCP端口5901(5900+1)上运行。如果使用vncserver创建第二个实例,它将在下一个可用端口(即:2)上运行,这意味着服务器在端口5902(5900+2)上运行。

要记住的重要一点是,在使用VNC服务器时,:X是表示5900+X的显示端口。

所以vncserver的端口号=5900+display号,display号就是:1,:2等后面的数字

您可以通过输入以下命令获取所有当前正在运行的VNC会话的列表:

vncserver -list

返回如下图信息:

在继续下一步之前,请使用带有-kill选项和服务器编号作为参数的vncserver命令停止VNC实例。在此示例中,服务器在端口5901(:1)上运行,因此我们将使用以下命令将其停止:

vncserver -kill :1

返回信息如下:

Killing Xtigervnc process ID 5710... success!

步骤四:启动vncserver可以从任何地方访问

vncserver :1 -geometry 1920x1000 -depth 24 -localhost no

或vncserver :1 -localhost no

注意:

  • 一定要加上 -localhost no, 否则只能本地连接,不能实现远程连接,那么vnc就毫无意义
  • 关闭防火墙,否则可能无法连接
  • 一定要使用当前用户开启开启服务vncserver,不能切换到root用户

步骤五:使用工具连接远程桌面

下载安装vnc-viewer进行连接

最新文章

  1. 面向对象编程(OOP)
  2. SQL谜题(加减符号替代)
  3. NLog配置文件写入数据库中
  4. SQL内联多个表
  5. C++ set使用
  6. HTML5语义元素
  7. socket,TCP/IP的理解
  8. Android开发之R文件丢失
  9. uva 10891 Game of Sum(区间dp)
  10. poj3928 Ping pong 树状数组
  11. ubuntu12.10下OpenFoam的编译
  12. Rsync数据远程同步备份
  13. Sublime console installation instructions install Package Control
  14. Python中高阶函数sorted()用法
  15. 五子棋棋盘布局 table和ul哪个好
  16. [leetcode]170. Two Sum III - Data structure design两数之和III - 数据结构设计
  17. Debug时含有的子元素,在代码里获取不到的问题
  18. buildroot构建项目(七)--- u-boot 2017.11 适配开发板修改 4 ---- 系统启动初始化之四
  19. JAVA 操作mysql 存储 调用
  20. windows10中远程登录ubuntu16.04的桌面

热门文章

  1. ubuntu18 build opencv4 from source
  2. CTreeCtrl中通过单击获取当前选项文本
  3. K8s高可用集群部署(四)
  4. windows2020 更换sid
  5. 记录:安装nginx
  6. kubernetes强制删除namespace
  7. CF850F 题解
  8. 2022-3-15内部群每日三题-清辉PMP
  9. Docker 环境下如何配置你的镜像(基础)
  10. Docker部署网心云-挣点电费