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

2023-10-23

虚拟网络计算(VNC)是一种图形桌面共享系统,允许您使用键盘和鼠标远程控制另一台计算机。它是 Microsoft 的开源替代品远程桌面协议(RDP)。

本文介绍如何在 Ubuntu 20.04 上安装和配置 VNC 服务器。我们还将向您展示如何通过 SSH 隧道安全地连接到 VNC 服务器。

安装桌面环境#

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

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

在本指南中,我们将安装 Xfce。输入以下命令作为具有 sudo 权限的用户 :

sudo apt updatesudo apt install xfce4 xfce4-goodies

根据您的系统,下载和安装 Xfce 软件包可能需要一些时间。

安装VNC服务器#

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

我们将安装 TigerVNC。它是一个积极维护的高性能 VNC 服务器。键入以下命令来安装该软件包:

sudo apt install tigervnc-standalone-server

配置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
nano ~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 

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

The ~/.vnc/xstartup文件还需要有执行权限。使用chmod设置文件权限的命令:

chmod u+x ~/.vnc/xstartup

如果您需要通过其他选项到 VNC 服务器,创建一个名为config并每行添加一个选项。这是一个例子:

〜/.vnc/config
geometry=1920x1080
dpi=96

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

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之后hostname在上面的输出中。这表示 vnc 服务器运行的显示端口号。在此示例中,服务器在 TCP 端口上运行5901(5900+1)。如果您使用以下命令创建第二个实例vncserver它将在下一个自由端口上运行,即:2,这意味着服务器正在端口上运行5902(5900+2)。

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

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

vncserver -list
TigerVNC server sessions:

X DISPLAY #	RFB PORT #	PROCESS ID
:1		      5901		    5710

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

vncserver -kill :1
Killing Xtigervnc process ID 5710... success!

创建 Systemd 单元文件#

让我们创建一个 systemd 单元文件,以便您根据需要启动、停止和重新启动 VNC 服务,而不是手动启动 VNC 会话。

打开文本编辑器并将以下配置复制并粘贴到其中。确保更改第 7 行的用户名以匹配您的用户名。

sudo nano /etc/systemd/system/vncserver@.service
/etc/systemd/system/vncserver@.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=linuxize
PAMName=login
PIDFile=/home/%u/.vnc/%H%i.pid
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

保存并关闭文件。

通知 systemd 创建了一个新的单元文件:

sudo systemctl daemon-reload

启用该服务在启动时启动:

sudo systemctl enable vncserver@1.service

号码1之后@符号定义 VNC 服务将在其上运行的显示端口。这意味着VNC服务器将监听端口5901,正如我们在上一节中讨论的那样。

通过执行以下命令启动 VNC 服务:

sudo systemctl start vncserver@1.service

验证服务是否已成功启动:

sudo systemctl status vncserver@1.service
● vncserver@1.service - Remote desktop service (VNC)
     Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-03-26 20:00:59 UTC; 3s ago
...

连接到 VNC 服务器#

VNC 不是加密协议,可能会受到数据包嗅探的影响。推荐的方法是创建一个SSH隧道并将流量从本地计算机的端口 5901 安全地转发到同一端口上的服务器。

在 Linux 和 macOS 上设置 SSH 隧道#

如果您的计算机上运行 Linux、macOS 或任何其他基于 Unix 的操作系统,则可以使用以下命令轻松创建 SSH 隧道:

ssh -L 5901:127.0.0.1:5901 -N -f -l vagrant 192.168.33.10

系统将提示您输入用户密码。

确保更换username and server_ip_address使用您的用户名和服务器的 IP 地址。

在 Windows 上设置 SSH 隧道#

如果您运行 Windows,则可以使用以下命令设置 SSH 隧道PuTTY SSH 客户端 .

打开 Putty 并在地址栏中输入您的服务器 IP 地址Host name or IP address field.

在下面Connection菜单、框、展开SSH,然后选择Tunnels。输入 VNC 服务器端口(5901) 在里面Source Port字段并输入server_ip_address:5901 in the Destination字段并单击Add按钮如下图所示:

返回到Session页面保存设置,这样您就不需要每次都输入它们。对于远程服务器,选择保存的会话并单击Open button.

使用 Vncviewer 连接#

现在 SSH 隧道已创建,是时候打开 Vncviewer 并连接到 VNC 服务器了localhost:5901.

您可以使用任何 VNC 查看器,例如 TigerVNC、TightVNC、RealVNC、UltraVNC、Vinagre 和 VNC Viewer谷歌浏览器 .

我们将使用 TigerVNC。打开查看器,输入localhost:5901,然后单击Connect button.

Enter 你的用户出现提示时输入密码,您应该会看到默认的 Xfce 桌面。它看起来像这样:

您可以使用键盘和鼠标从本地计算机开始与远程 XFCE 桌面交互。

结论#

我们向您展示了如何在 Ubuntu 20.04 上安装和配置 VNC 服务器并运行。

要将 VNC 服务器配置为为多个用户启动显示,请使用以下命令创建初始配置并设置密码:vncpasswd命令。您还需要使用不同的端口创建新的服务文件。

如果您有任何疑问,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu 20.04 上安装和配置 VNC 的相关文章

随机推荐

  • 网页设计趋势将持续存在

    第一个网站是纯文本网站 今天很难想象会有这样一个网站 第一个同时提供图片和文字的网站于 1993 年上线 blog hubspot com Lindsay Kolowich 2015 年 3 月 这些年来 网页设计取得了很大的发展和进步 为
  • 如何从 CentOS 7.7-7.0 升级 CentOS 7.8

    最新版本 CentOS 7 8 可供升级 所有 CentOS 7 7 7 6 7 5 7 4 7 3 7 2 7 1 和 7 0 用户都可以将系统升级到最新版本 所有使用 WHM cPanel 运行的用户都不需要执行任何操作 WHM cPa
  • 如何在 CentOS/RHEL 8/7/6 上安装 Angular CLI

    Angular是一个框架 库 资产和实用程序 它跟踪所有组件并定期检查其更新 本教程将帮助您在 CentOS 8 7 6 和 RHEL 8 7 6 Linux 操作系统上安装 Angular CLI 工具 第 1 步 安装 Node js
  • 在 Bash 中检查文件是否为空的 5 种方法

    在 Linux 中 空文件是大小为零字节的文件 这意味着该文件不包含任何数据 并且在文本编辑器中打开时没有任何内容 可以使用 touch 命令创建一个空文件 touch myfile txt 这将在当前目录中创建一个名为 myfile tx
  • 如何在 MySQL 中创建管理员用户

    在 MySQL 中管理数据库通常需要使用特权用户或超级管理员用户 他们拥有读取 写入 更新和管理数据库的所有权限 在 MySQL 中 这通常是 root 用户 但建议创建单独的超级管理员用户以实现更好的安全管理 本文将指导您如何在 MySQ
  • 如何在 Fedora 36/35/34 上安装 TeamViewer

    团队查看器是一款功能强大的远程桌面和文件共享应用程序 适用于大多数操作系统和移动设备 为了将 TeamViewer 的使用商业化 您必须购买许可证 您可以免费使用它 仅供个人使用 Teamviewer 的 RPM 包由官方团队构建 可以安装
  • 如何更改 PHP 会话超时

    作为 Web 开发人员 了解 PHP 会话超时对于构建安全可靠的 Web 应用程序至关重要 PHP 会话是一种跨多个页面存储用户信息的方式 会话超时是指会话在过期之前保持活动状态的持续时间 在本分步指南中 我们将引导您完成更改 PHP 会话
  • 如何在 Ubuntu、Debian 和 LinuxMint 上安装 Python 3.7

    在撰写本文时 Python 3 7 系列的最新稳定版本已可供安装 本文将帮助您在 Ubuntu 和 LinuxMint 操作系统上安装 Python 3 7 9 你可以拜访here阅读有关 Python 版本的更多信息 先决条件 保持软件包
  • 如何在 Ubuntu 16.04、14.04 上安装 Nginx、PHP 7 和 MySQL

    PHP 7 2 的最新主要版本已经发布 在速度和安全性方面进行了大量优化 所以你应该尝试这个版本来进行开发 本教程将帮助您在 Ubuntu 17 10 16 04 和 14 04 LTS 版本上安装 Nginx PHP 7 2 和 MySQ
  • 了解 Terraform 语法和配置文件

    Terraform 由 HashiCorp 开发 是一款因其在基础设施即代码 IaC 方面的强大功能而广为人知的工具 本综合指南旨在让您深入了解 Terraform 语法 特别关注配置文件 了解 Terraform 语法 Terraform
  • Fedora 26 发布,新功能及升级步骤

    Fedora 26 发布 最终的 Fedora 26 已发布于2017 年 7 月 11 日 Fedora 26有各种软件升级 安全补丁 该版本将与 GENOME 3 24 一起发布 您可以从以下位置下载 Fedora 26 预发行版 Be
  • 如何重命名 SQL Server 数据库

    Microsoft SQL Server 为您提供了多种重命名数据库的方法 您可以使用 SQL Server Management Studio 或运行 SQL 查询来重命名数据库 在重命名数据库之前 请记住 它可能会中断使用当前数据库名称
  • 如何使用SCP命令安全传输文件

    SCP 安全复制 是一个命令行实用程序 允许您在两个位置之间安全地复制文件和目录 With scp 您可以复制文件或目录 从本地系统到远程系统 从远程系统到本地系统 在本地系统的两个远程系统之间 当传输数据时scp 文件和密码都经过加密 因
  • 如何在 CentOS 7 上安装 VMware Workstation Player

    VMware是一个成熟稳定的虚拟化解决方案 允许您在一台机器上运行多个独立的操作系统 您可以创建自己的虚拟机并评估许多软件供应商作为虚拟设备分发的软件 这些软件可从VMware 解决方案交流 本教程将指导您完成在 CentOS 7 上安装
  • 如何在 Ubuntu 18.04 上安装 Java

    Java 是世界上最流行的编程语言之一 用于构建不同类型的跨平台应用程序 本教程介绍如何在 Ubuntu 18 04 上安装各种版本的 OpenJDK 以及 Oracle Java 相同的说明适用于 Ubuntu 16 04 和任何基于 U
  • 如何在 Ubuntu 18.04 上安装 Apache Cassandra

    Apache Cassandra 是一个免费的开源 NoSQL 数据库 不存在单点故障 它提供线性可扩展性和高可用性 而不会影响性能 Apache Cassandra 被许多组织使用 包括 Apple NetFlix eBay 和 Easo
  • Linux 中的超时命令

    timeout是一个命令行实用程序 它运行指定的命令 并在给定时间段后终止该命令 如果该命令仍在运行 换句话说 timeout允许您运行有时间限制的命令 这timeout命令是 GNU 核心实用程序包的一部分 几乎所有 Linux 发行版上
  • 如何在 CentOS 7 上添加交换空间

    交换空间是磁盘上的空间 当物理 RAM 内存已满时使用 当 Linux 系统耗尽 RAM 时 非活动页面将从 RAM 移至交换空间 交换空间可以采用专用交换分区或交换文件的形式 在大多数情况下 当在虚拟机上运行 CentOS 时 不存在交换
  • 如何在 Ubuntu 18.04 上设置 Apache 虚拟主机

    在本教程中 我们将提供有关如何在 Ubuntu 18 04 上设置 Apache 虚拟主机的分步说明 Apache 虚拟主机允许您在一台计算机上运行多个网站 使用虚拟主机 您可以指定站点文档根目录 包含网站文件的目录 为每个站点创建单独的安
  • 如何在 Ubuntu 20.04 上安装和配置 VNC

    虚拟网络计算 VNC 是一种图形桌面共享系统 允许您使用键盘和鼠标远程控制另一台计算机 它是 Microsoft 的开源替代品远程桌面协议 RDP 本文介绍如何在 Ubuntu 20 04 上安装和配置 VNC 服务器 我们还将向您展示如何