如何在 Ubuntu 20.04 上安装和配置 VNC

0 股票
0
0
0
0

如何在 Ubuntu 20.04 上安装和配置 VNC

介绍

虚拟网络计算(VNC)是一种连接系统,它允许您使用键盘和鼠标与远程服务器上的图形桌面环境进行交互。对于还不熟悉命令行操作的用户来说,VNC 使他们能够更轻松地管理远程服务器上的文件、软件和设置。.

本指南将指导您在 Ubuntu 20.04 服务器上使用 TightVNC 设置 VNC 服务器,并通过 SSH 隧道连接到该服务器。然后,您将在本地计算机上使用 VNC 客户端程序,通过图形桌面环境与服务器进行交互。.

先决条件

要完成本教程,您需要:

  1. 一台运行 Ubuntu 20.04 的服务器,具有非 root 管理员用户,并配置了 UFW 防火墙。.
  2. 一台安装了 VNC 客户端的本地计算机。您使用的 VNC 客户端必须支持通过 SSH 隧道进行连接:
  • 在 Windows 系统上,您可以使用 TightVNC、RealVNC 或 UltraVNC。.
  • 在 macOS 上,您可以使用内置的屏幕共享应用程序,也可以使用 RealVNC 等跨平台应用程序。.
  • 在Linux系统中,您可以选择多种选项,包括: , 韩国农村发展公司选择 RealVNC 或 TightVNC。.

步骤 1 – 安装桌面环境和 VNC 服务器

默认情况下,Ubuntu 20.04 Server 没有预装图形桌面环境或 VNC 服务器,因此您需要先安装它们。.

在选择 VNC 服务器和桌面环境时,您有很多选择。本教程将指导您安装最新版 Xfce 桌面环境和 Ubuntu 官方软件仓库中提供的 TightVNC 软件包。Xfce 和 TightVNC 都以轻量级和快速著称,即使在网速较慢的情况下,也能确保您的 VNC 连接流畅稳定。.

使用 SSH 连接到服务器后,更新您的软件包列表:

    $ sudo apt update

现在将 Xfce 打包在一起 xfce4-goodies 本次安装包含对桌面环境的多项改进:

    $ sudo apt install xfce4 xfce4-goodies

安装过程中,系统可能会提示您为 Xfce 选择默认显示管理器。显示管理器是一种程序,它允许您通过图形界面选择并登录桌面环境。您只会在使用 VNC 客户端连接时才会使用 Xfce,并且在这些 Xfce 会话中,您已经以非 root 用户身份登录。因此,就本教程而言,选择显示管理器并不重要。选择一个即可。 进入 按 。.

安装完成后,安装 TightVNC 服务器:

    $ sudo apt install tightvncserver

接下来是命令vnc服务器 运行以下命令设置 VNC 密码、创建初始配置文件并启动 VNC 服务器实例:

    $ vncserver

您将被要求输入并确认密码才能远程访问您的设备:

   输出

您需要密码才能访问您的桌面电脑。.

 

密码:

核实:

密码长度必须为六到八个字符。超过八个字符的密码将被自动截断。.

确认密码后,您可以选择创建只读密码。使用只读密码登录的用户将无法通过鼠标或键盘控制 VNC 实例。如果您想向使用 VNC 服务器的其他人展示某些内容,这是一个很有用的选项,但并非必需。.

此过程随后会创建服务器所需的默认配置文件和连接信息。此外,它还会在端口上创建一个默认服务器实例。 5901 这个端口叫做显示端口,VNC 使用它作为……:1 VNC 可以在其他显示端口上运行多个实例, :2 到港口5902,3: 指向 5903 ETC。:

   输出

您是否要输入只读密码(y/n)?n

xauth:文件 /home/萨米/.Xauthority 不存在

 

新的‘X’桌面是 你的主机名:1

 

创建默认启动脚本 /home/萨米/.vnc/xstartup

启动 /home/ 中指定的应用程序萨米/.vnc/xstartup

日志文件位于 /home/萨米/.vnc/你的主机名:1.log

请注意,如果您以后想要更改密码或添加只读密码,可以使用以下命令进行操作。 vncpasswd 做:

    $ vncpasswd

至此,VNC 服务器已安装并运行。现在我们来配置它,使其启动 Xfce 桌面环境,并允许我们通过图形界面访问服务器。.

步骤 2 – 配置 VNC 服务器

VNC 服务器需要知道启动时要运行哪些命令。具体来说,VNC 需要知道要连接到哪个图形桌面环境。.

VNC 服务器启动时运行的命令位于一个名为 `<filename>` 的配置文件中。 x启动 在文件夹中
.vnc 以下是您的主目录。启动脚本是在您运行上一步命令时创建的。 vnc服务器 你已经运行了它,但你需要创建自己的脚本来启动 Xfce 桌面。.

由于您要更改 VNC 服务器的配置,请先删除在端口上运行的 VNC 服务器实例。 5901 它正在运行。请使用以下命令停止它:

    $   vncserver -kill :1 

输出结果将如下所示,但您会看到不同的PID:

   输出

终止 Xtightvnc 进程 ID 17648

文件之前 x启动 更改,恢复原状:

    $ mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

现在是一个文件 x启动 新建一个文件,然后用文本编辑器打开它,例如 纳米 打开:

    $  nano ~/.vnc/xstartup

然后将以下几行添加到文件中:

~/.vnc/xstartup

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

第一行是 shebang。在 *nix 平台上可执行的纯文本文件中, 谢邦 它告诉系统将该文件发送给哪个解释器执行。在本例中,您将文件发送给了 Bash 解释器。这样,文件中的每一行就可以按顺序作为命令执行。.

文件中的第一条命令是: xrdb $HOME/.XresourcesVNC GUI 框架调用该文件。 .X资源 用户读取服务器。 .X资源 用户可在此处更改图形桌面的一些设置,例如终端颜色、光标主题和字体渲染。第二个命令指示服务器启动 Xfce。每次启动或重启 VNC 服务器时,这些命令都会自动执行。.

添加这些代码后,保存并关闭文件。如果 纳米 使用方法很简单,只需按下即可。 CTRL + X, Y 进而 进入 去做。.

为确保 VNC 服务器能够正确使用这个新的安装文件,您需要使其可执行:

    $ chmod +x ~/.vnc/xstartup

然后重启VNC服务器:

    $ vncserver -localhost

请注意,这次的命令包含了该选项。 -localhost 这会将 VNC 服务器连接到服务器的回环接口。这样一来,VNC 将只允许来自其安装所在服务器的连接。.

接下来,您需要在本地计算机和服务器之间创建一个 SSH 隧道,这实际上是欺骗 VNC,让它误以为来自本地计算机的连接源自服务器。这种策略为 VNC 增加了一层额外的安全保障,因为只有那些已经拥有服务器 SSH 访问权限的用户才能访问它。.

你会看到类似这样的输出:

输出
新的‘X’桌面是  你的主机名:1

启动 /home/ 中指定的应用程序萨米/.vnc/xstartup
日志文件位于 /home/萨米/.vnc/你的主机名:1.log

配置完成后,您就可以从本地计算机连接到 VNC 服务器了。.

步骤 3 – 安全连接到 VNC 桌面

VNC 本身在连接时不使用安全协议。要安全地连接到您的服务器,您需要创建一个 SSH 隧道,然后指示 VNC 客户端使用该隧道进行连接,而不是直接通信。.

在本地计算机上创建一个安全的 SSH 连接,连接到 主机本地连接 VNC传输。您可以通过Linux或macOS上的终端使用以下命令进行此操作。SSH 请执行以下操作:

$ ssh -L 59000 :localhost: 5901 -C -N -l  萨米 你的服务器IP

以下是该命令选项的含义 SSH 文中指出:

  • -L 59000:localhost:5901: 转变 -L 指定给定端口位于本地计算机上(59,000(必须发送到目标服务器上的指定主机和端口)localhost:5901意思是港口 5901 在目标服务器上,作为 你的服务器IP (已定义)。请注意,您指定的本地端口在某种程度上是任意的。只要该端口尚未连接到其他服务,您就可以将其用作隧道转发端口。.
  • -C此标志启用压缩功能,有助于减少资源消耗并加快任务速度。.
  • -N:此选项是SSH 它提示您不想运行任何远程命令。如果您只想转发端口,此设置非常有用。.
  • l sammy 你的服务器 IP 地址-: 转变 -l 允许您指定连接服务器时要登录的用户。请确保 萨米 和 你的服务器IP 请将此处替换为您的非root用户名和服务器IP地址。.

笔记: 此命令创建一个 SSH 隧道,该隧道从端口发送数据。 5901 在您的 VNC 服务器上,转到端口 59,000 通过本地计算机端口 22 在每台设备上,默认的 SSH 端口都已转发。假设您已按照 Ubuntu 20.04 的基本服务器设置指南进行操作,则您应该已添加了一条 UFW 规则,允许通过 OpenSSH 连接到您的服务器。.

这比打开服务器防火墙连接端口更安全。 5901 这是因为VNC允许任何人通过VNC访问你的服务器。而通过SSH隧道连接,则可以将VNC访问限制在已经拥有服务器SSH访问权限的机器上。.

如果您使用 PuTTY 连接到服务器,可以通过右键单击终端窗口顶部栏,然后单击相应的选项来创建 SSH 隧道。 …更改设置 点击:


分支 联系 在 PuTTY 重新配置窗口左侧的树状菜单中找到该分支。 SSH 打开并轻敲 隧道 点击。 端口转发页面控制器选项</59000 strong> SSH,作为源端口和 localhost:5901 输入目的地,像这样:


然后点击按钮。 添加 点击,然后点击按钮 申请 点击即可建立隧道。.

隧道运行后,使用 VNC 客户端连接到 localhost:59000 系统会要求您使用在步骤 1 中设置的密码进行身份验证。.

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


如您所见,您可以使用文件管理器或命令行访问主目录中的文件:


CTRL+C 在本地终端中按下停止键,即可停止 SSH 隧道并返回到您的应用程序。此操作也会断开您的 VNC 会话。.

现在您可以将 VNC 服务器配置为作为 systemd 服务运行。.

步骤 4 – 将 VNC 作为系统服务运行
通过将 VNC 服务器配置为 systemd 服务,您可以像管理其他服务一样,根据需要启动、停止和重启它。您还可以使用 systemd 管理命令来确保 VNC 在服务器启动时自动启动。.

首先,创建一个名为的新单元文件 /etc/systemd/system/[email protected] 创造:

    $ sudo nano /etc/systemd/system/[email protected]

象征 @ 名称末尾允许我们传递一个参数,您可以在服务配置中使用该参数。您可以使用此参数指定管理服务时要使用的 VNC 显示端口。.

将以下几行添加到文件中。务必包含该值。 用户、组、工作目录 以及值中的用户名 PID 文件 请修改为与您的用户名一致:

/etc/systemd/system/[email protected]

[单元] 描述=启动时启动 TightVNC 服务器
After=syslog.target network.target

[服务] 类型=分叉
用户= 萨米
组= 萨米
工作目录=/home/萨米

PIDFile=/home/萨米/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -深度 24 -几何尺寸 1280×800 -localhost:%i
ExecStop=/usr/bin/vncserver -kill :%i

[安装] WantedBy=多用户.target

命令 ExecStartPre 如果 VNC 已经在运行,它将停止。命令 执行启动 启动 VNC 并将颜色深度设置为 24 位颜色,分辨率为 1280×800。您也可以根据需要更改这些启动选项。另请注意该命令执行启动 再次
包含选项 -localhost 这是。.

保存并关闭文件。.

接下来,通知系统新的单元文件:

    $ sudo systemctl daemon-reload

    $ sudo systemctl daemon-reload

启用单元文件:

    $ sudo systemctl enable [email protected]

1 在标志下方@ 指示服务应显示在哪个显示屏上,在本例中为默认显示屏。 :1 如步骤 2 中所述。.

如果 VNC 服务器仍在运行,请停止当前实例:

    $ vncserver -kill :1

然后像启动其他 systemd 服务一样启动它:

    $ sudo systemctl start vncserver@1

您可以使用以下命令验证它是否已启动:

    $ sudo systemctl status vncserver@1

如果启动正常,输出结果应如下所示:

输出

[email protected] – 启动时启动 Tight VNC 服务器
已加载:已加载(/etc/systemd/system/[email protected];已启用;供应商预设:已启用)
活动状态:自 2020 年 5 月 7 日星期四 17:23:50 UTC 起处于活动(运行中);6 秒前
进程:39768 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2)
进程:39772 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280×800 :1 (code=exited, status=0/SUCCESS)
主进程 ID:39795 (Xtightvnc)

您的 VNC 服务器现在已准备就绪,服务器启动时即可使用。您可以使用以下命令像启动其他 systemd 服务一样启动它。系统控制 管理。.

但是,客户端不会有任何区别。要重新连接,请重启 SSH 隧道:

$ ssh -L 59000 :localhost: 5901 -C -N -l  萨米 你的服务器IP

然后使用您的 VNC 客户端软件建立新的连接 localhost:59000 创建与服务器的连接。.

结果

现在,您的 Ubuntu 20.04 服务器上运行着一个安全的 VNC 服务器。您可以通过用户友好的图形界面管理文件、软件和设置,还可以远程运行 Web 浏览器等图形软件。.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

您可能也喜欢