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

2023-11-18

本指南介绍了在 Ubuntu 18.04 上安装和配置 VNC 服务器所需的步骤。我们还将向您展示如何通过 SSH 隧道安全地连接到 VNC 服务器。

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

先决条件#

在继续本教程之前,请确保您以以下身份登录具有 sudo 权限的用户 .

安装桌面环境#

大多数服务器没有安装桌面环境,因此我们将从安装一个轻量级桌面环境开始。

Ubuntu 存储库中提供了多种桌面环境 (DE)。我们将安装Xfce。它是快速、稳定且轻量级的桌面环境,非常适合在远程服务器上使用。

输入以下命令在服务器上安装 Xfce:

sudo apt updatesudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

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

安装VNC服务器#

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

我们将安装 TigerVNC。它是一个积极维护的高性能 VNC 服务器。

键入以下命令在 Ubuntu 服务器上安装 TigerVNC:

sudo apt install tigervnc-standalone-server tigervnc-common

现在 VNC 服务器已安装,下一步是创建初始配置并设置密码。运行时不要使用 sudovncserver命令:

vncserver

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

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
/usr/bin/xauth:  file /home/linuxize/.Xauthority does not exist

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

Starting applications specified in /etc/X11/Xvnc-session
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.

第一次vncserver命令运行时,它会创建密码文件并将其存储在~/.vnc。如果该目录不存在,则会创建该目录。

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

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

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

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

配置VNC服务器#

现在服务器上已经安装了Xfce和TigerVNC,我们需要配置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

创建 Systemd 单元文件#

创建一个 systemd 单元文件,以便您根据需要启动、停止和重新启动 VNC 服务,就像任何其他 systemd 服务一样。

打开文本编辑器并将以下配置复制并粘贴到其中。确保更改第 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; indirect; vendor preset: enabled)
   Active: active (running) since Thu 2018-08-16 19:05:54 UTC; 4s ago
  Process: 9893 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
 Main PID: 9900 (vncserver)
    Tasks: 0 (limit: 507)
   CGroup: /system.slice/system-vncserver.slice/vncserver@1.service
           ‣ 9900 /usr/bin/perl /usr/bin/vncserver :1 -geometry 1440x900 -alwaysshared -fg

连接到 VNC 服务器#

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

在 Linux 和 macOS 上设置 SSH 隧道#

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

ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

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

不要忘记更换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 桌面交互。

结论#

到目前为止,您应该已经启动并运行了 VNC 服务器,并且您可以使用易于使用的图形界面从本地桌面计算机轻松管理您的 Ubuntu 18.04 服务器。

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

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

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

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

随机推荐

  • 如何在 Linux 中使用 Chage 命令

    Linux 系统管理员经常需要管理用户帐户及其密码 chage 命令是一个强大的工具 有助于管理 Linux 中的用户密码过期和老化信息 在本文中 我们将指导您在 Linux 中使用 chage 命令 其各种选项以及如何有效使用它们的示例
  • 如何在 CentOS 8 上安装 Roundcube Webmail

    Roundcube 是一种用 PHP 编程语言编写的流行 Webmail 界面 您可以通过 Roundcube Web 界面上的 POP IMAP 访问在 Linux 服务器上创建的邮箱 本教程将帮助您在 CentOS 8 上安装 Roun
  • 如何在 Ubuntu 18.04 Bionic 上重置 Gnome 桌面

    本教程帮助您在 Ubuntu 18 04 LTS Linux 系统上将 Gnome 桌面设置重置为其原始状态 登录到您的 Ubuntu 18 04 Bionic Desktop 系统并按照下面给出的说明进行操作 之后重新启动系统以完成这些步
  • Linux 用户管理:系统管理员的实用方法

    用户管理是 Linux 系统管理的一个重要方面 因为它允许管理员创建 修改和删除用户帐户 管理权限以及控制对系统资源的访问 本文为系统管理员介绍了一种实用的 Linux 用户管理方法 通过了解用户管理的基础知识 您可以确保更安全且组织良好的
  • 了解 Linux 中的僵尸进程

    在操作系统领域 僵尸 一词通常会让人想起不死生物 即被困在生与死之间的生物 令人惊讶的是 Linux 操作系统中也存在类似的现象 僵尸进程潜伏在其中 困扰着系统管理员和开发人员 尽管它们可能并不渴望大脑 但如果不加以控制 这些僵尸进程可能会
  • 如何在 Ubuntu 22.04|20.04|18.04 上安装 Oracle Java 17

    Java 17 是 Java SE 平台的最新长期支持版本 由于这是 LTS 版本 因此将支持到 2024 年 9 月 Java 17 进行了多项改进和错误修复 工作站用户应考虑升级到此版本 此外 生产用户可以在检查所有应用程序兼容性检查后
  • 如何在 Ubuntu 20.04 上使用 PHP-FPM 安装 Apache

    PHP FPM FastCGI 进程管理器 是 PHP FastCGI 的替代实现 它提供了一些附加功能 例如对站点有用的自适应进程生成 本教程将帮助您在 Ubuntu 20 04 系统上使用 PHP FPM FastCGI 安装 Apac
  • phpMyAdmin 的 4 个最佳替代品

    phpMyAdmin is the most popular web interface for managing MySQL databases But there are many other tools available which
  • 如何在 RHEL 和 CentOS Stream 9 上安装 MySQL 8.0

    MySQL 是一种开源关系数据库管理系统 广泛用于存储和组织数据 Red Hat Enterprise Linux RHEL 和 CentOS Stream 是许多开发人员和系统管理员使用的两种流行的 Linux 发行版 在本文中 我们将讨
  • 设置 Git 提交用户名和电子邮件:初学者指南

    Git 是一个强大的分布式版本控制系统 被开发人员广泛用来管理他们的代码 Git 的重要方面之一是配置您的提交用户名和电子邮件 因为它有助于在与其他开发人员协作时建立您的身份 在本文中 我们将介绍设置 Git 提交用户名和电子邮件的不同方法
  • 如何从 Git 存储库中删除最后 5 次提交

    从 Git 存储库中删除最后几次提交是一个相对简单的过程 只需几个简单的命令即可完成 在本指南中 我们将解释如何从 git 存储库中删除最后几次提交 并讨论为什么这可能是必要的 我们还将提供从存储库中删除最后几次提交的分步说明 以及此过程中
  • 使用 Ubuntu 20.04 LTS (Focal Fossa) 进行初始服务器设置

    在本教程中 我们假设您已经全新安装了 Ubuntu Ubuntu 20 04 LTS Focal Fossa 服务器 我们建议您的服务器使用 Ubuntu 的 LTS 版本 例如 Ubuntu 20 04 LTS Focal Fossa 现
  • 如何在 Debian 10 上安装 Yarn

    Yarn 是一个与 npm 兼容的 JavaScript 包管理器 允许您安装 更新 配置和删除 npm 包 它的创建是为了解决 npm 的一系列问题 例如通过并行操作加快软件包安装过程并减少与网络连接相关的错误 本教程介绍了如何安装Yar
  • 如何在 Debian 10 Linux 上安装 Tomcat 9

    Apache Tomcat 是一个基于 JAVA 的开源应用服务器 它实现了 Java Servlet JavaServer Pages Java 表达式语言和 Java WebSocket 技术 它是当今世界上使用最广泛的应用程序和 We
  • 如何在 Debian 9 上添加交换空间

    交换空间是磁盘上的空间 当物理 RAM 内存已满时使用 当 Linux 系统耗尽 RAM 时 非活动页面将从 RAM 移至交换空间 交换空间可以采用专用交换分区或交换文件的形式 通常 运行 Debian 虚拟机时不存在交换分区 因此唯一的选
  • Linux 中的 Tcpdump 命令

    tcpdump是一个命令行实用程序 可用于捕获和检查进出系统的网络流量 它是网络管理员最常用的工具 用于解决网络问题和安全测试 尽管它的名字 与tcpdump 您还可以捕获非 TCP 流量 例如 UDP ARP 或 ICMP 捕获的数据包可
  • 如何在 CentOS 8 上安装 Jenkins

    Jenkins是最流行的基于 Java 的开源自动化服务器 可让您轻松设置持续集成和持续交付 CI CD 管道 持续集成 CI 是一种 DevOps 实践 团队成员定期将代码更改提交到版本控制存储库 然后运行自动化构建和测试 持续交付 CD
  • 在 CentOS 7 上安装 MariaDB

    MariaDB 是一个开源关系数据库管理系统 向后兼容 是 MySQL 的二进制直接替代品 它是由 MySQL 的一些原始开发人员和社区中的许多人开发的 随着 CentOS 7 的发布 MySQL 被 MariaDB 取代作为默认数据库系统
  • 如何在 CentOS 7 上安装 Sublime Text 3

    崇高的文字是一个专有的跨平台多功能文本和源代码编辑器 用于网络和软件开发 它速度非常快 并且具有许多开箱即用的强大功能 您可以通过安装新插件和创建自定义设置来增强其功能 本教程概述了在 CentOS 7 Linux 系统上安装 Sublim
  • 如何在 Ubuntu 18.04 上安装和配置 VNC

    本指南介绍了在 Ubuntu 18 04 上安装和配置 VNC 服务器所需的步骤 我们还将向您展示如何通过 SSH 隧道安全地连接到 VNC 服务器 虚拟网络计算 VNC 是一种图形桌面共享系统 允许您使用键盘和鼠标远程控制另一台计算机 它