在Ubuntu 18.04上安装TigerVNC

时间:2020-02-23 14:44:53  来源:igfitidea点击:

VNC(虚拟网络计算)是一个软件包,用作用户客户端和远程计算机之间的连接介质。
它创建了与远程服务器的会话,这使我们可以将远程服务器当作是我们的机器一样,访问远程服务器的GUI,并以普通用户的身份使用鼠标和键盘与之交互。

对于不习惯使用终端的用户来说,这是一个非常方便的工具,并且具有易于使用的优点,并且几乎不需要设置即可在几乎所有客户端操作系统上使用。

让我们弄清楚如何从客户端连接到远程Ubuntu 18.04服务器,该服务器可以是Windows,MacOS或者Linux。

注意:我们不会设置TightVNC客户端,因为它是在TightVNC上非常简单的设置。
因此,本教程旨在在Ubuntu 18.04上设置VNC服务器并从远程客户端连接到该服务器。

在Ubuntu服务器上安装桌面环境

默认情况下,Ubuntu 18.04服务器没有图形桌面环境或者VNC服务器,因此我们必须先安装。

桌面管理器有多种类型,例如KDE,Gnome等。
但是,我们将坚持使用最小的Xfce桌面环境。

首先,在Ubuntu服务器上,首先更新系统关键软件包。

sudo apt update

现在,使用以下命令安装Xfce DE:

sudo apt install xfce4 xfce4-goodies

我们准备安装TigerVNC服务器及其依赖项。

sudo apt install tigervnc-standalone-server tigervnc-common

现在,我们已经准备好了基本要求,现在让我们对其进行配置以使其正常工作。

创建配置文件

要在安装后完成VNC服务器的初始配置,请使用" vncserver"命令设置安全密码并创建初始配置文件。

vncserver

这将提示我们创建新密码以安全地远程访问服务器。

注意:密码必须介于6-8个字符之间。
超过此限制的内容将被截断并自动减少到8个字符,因此在8个字符内选择正确的密码非常重要。

Ubuntu Vncserver设置密码

设置密码后,现在将为我们的Ubuntu TigerVNC服务器创建一些默认配置文件。

配置VNCServer

VNCServer启动时,可能需要执行某些命令,例如连接到图形环境。
由于不会自动提供,因此我们必须修改适当的配置文件。

但是在此之前,由于我们现在已经创建了密码,因此首先要终止现有的VNC会话。

首次设置VNC时,它将在端口" 5901"上启动默认服务器实例。
这是VNC用于向连接的客户端显示服务器屏幕的端口。
根据连接号,一个合适的参考后缀与其关联。
例如,":1",":2"表示端口" 5901"上的第一个和第二个VNC服务器连接实例。
因此,我们可以使用此引用计数直接连接到或者关闭VNC Server实例。

例如,在我们的系统中,因为我们运行了vncserver,所以实例现在正在以:1的引用计数运行。
如果我们想终止该过程,只需键入:

vncserver -kill :1

为了杀死所有这样的实例,我们使用通配符" *":

vncserver -kill :*

您将获得如下输出:

root@ubuntu:~# vncserver -kill :1
Killing Xtigervnc process ID 6268... success!

我们需要创建一个启动脚本来自动运行Xfce4桌面环境,以便即使在服务器重启后也可以从客户端远程连接到服务器,所以现在就开始做吧。

创建启动脚本

对于任何用户,启动命令位于$HOME/.vnc目录中名为xstartup的配置文件中(其中$HOME是主目录环境变量)

如果该文件不存在,那不是问题。
我们将创建一个新文件。

touch $HOME/.vnc/xstartup

现在,使用文本编辑器编辑该文件,并向其中添加以下脚本:

vi $HOME/.vnc/xstartup

#!/bin/sh 
xrdb $HOME/.Xresources
startxfce4 &

它会查看用户的" Xresources"文件,并启动Xfce4桌面环境作为后台进程。

保存更改后退出编辑器。

我们还必须使该脚本可执行,以便我们的服务器可以执行它。
让我们使用chmod做到这一点。

sudo chmod +x ~/.vnc/xstartup

现在,让我们再次启动VNC服务器:

vncserver

Ubuntu Vncserver启动脚本

您将获得类似的输出,表明我们已经从启动脚本中加载了DE。

现在,从本地客户端计算机连接到服务器。

连接到VNC服务器

由于VNC不使用任何安全协议来建立连接,因此我们需要手动设置一个,例如ssh。

我们创建一个SSH隧道以安全地连接到服务器,然后告诉VNC客户端也使用SSH隧道进行连接,而不是不安全的直接连接。

创建SSH隧道

我们将在本地客户端计算机上建立SSH连接,并将其转发到VNC的" localhost"连接。

我们将为此使用终端(如果您使用的是Windows,请确保使用PuTTY)

ssh -L 5901:127.0.0.1:5901 SERVER_USER_NAME@SERVER_IP

我们使用" ssh"将远程连接的端口5901绑定到客户端计算机上的端口5901。
-L选项使用端口转发到localhost(127.0.0.1)来执行此操作

因此,我们可以通过从localhost:5901建立连接来连接到服务器。

连接到ssh隧道后,让我们继续运行,让此终端会话保持独立。

现在,使用我们的VNC客户端连接到VNC服务器。

Vnc客户端连接

对我来说,我在Linux上使用vncviewer来建立到安全SSH隧道的连接,并最终控制我们的远程服务器!

输入您用来设置的VNCServer密码,一切顺利!

建立连接后,您将看到默认的Xfce桌面。
它看起来应该像这样:

Vnc连接已建立

要停止会话,请按Ctrl + C或者关闭窗口。

注意:关闭SSH隧道会话也将关闭您的VNC连接。