在Ubuntu 18.04上安装和配置VNC的方法

简介: 在Ubuntu 18.04上安装和配置VNC的方法

简介

虚拟网络计算,或者 VNC,是一种连接系统,允许您使用键盘和鼠标与远程服务器上的图形桌面环境进行交互。对于尚未熟悉命令行的用户来说,它使得在远程服务器上管理文件、软件和设置变得更加容易。

在本指南中,您将在 Ubuntu 18.04 服务器上设置一个 VNC 服务器,并通过 SSH 隧道安全地连接到它。您将使用 TightVNC,一个快速且轻量级的远程控制软件包。这个选择将确保我们的 VNC 连接即使在较慢的互联网连接下也能保持流畅和稳定。

先决条件

要完成本教程,您需要:

  • 一个按照 Ubuntu 18.04 初始服务器设置指南设置的 Ubuntu 18.04 服务器,包括一个 sudo 非根用户和一个防火墙。
  • 一个安装了支持通过 SSH 隧道进行 VNC 连接的 VNC 客户端的本地计算机。
  • 在 Windows 上,您可以使用 TightVNC、RealVNC 或 UltraVNC。
  • 在 macOS 上,您可以使用内置的屏幕共享程序,或者使用 RealVNC 这样的跨平台应用程序。
  • 在 Linux 上,您可以选择多种选项,包括 vinagrekrdc、RealVNC 或 TightVNC。

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

默认情况下,Ubuntu 18.04 服务器不会安装图形桌面环境或 VNC 服务器,因此我们将从安装这些开始。具体来说,我们将安装最新的 Xfce 桌面环境和官方 Ubuntu 仓库中提供的 TightVNC 软件包。

在您的服务器上,更新软件包列表:

sudo apt update

现在在您的服务器上安装 Xfce 桌面环境:

sudo apt install xfce4 xfce4-goodies

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

sudo apt install tightvncserver

安装完成后,使用 vncserver 命令完成 VNC 服务器的初始配置,设置一个安全密码并创建初始配置文件:

vncserver

您将被提示输入和验证远程访问您的机器的密码:

您需要密码来访问您的桌面。
密码:
验证:

密码必须在六到八个字符之间。超过 8 个字符的密码将被自动截断。

验证密码后,您将有选项创建一个只读密码。使用只读密码登录的用户将无法使用鼠标或键盘控制 VNC 实例。如果您想要向其他人演示使用您的 VNC 服务器,这是一个有用的选项,但不是必需的。

然后,该过程将创建必要的默认配置文件和服务器的连接信息:

您想输入只读密码吗(y/n)? n
xauth:  文件 /home/sammy/.Xauthority 不存在
新的 'X' 桌面是 your_hostname:1
正在创建默认启动脚本 /home/sammy/.vnc/xstartup
正在启动 /home/sammy/.vnc/xstartup 中指定的应用程序
日志文件是 /home/sammy/.vnc/your_hostname:1.log

现在让我们配置 VNC 服务器。

步骤 2 — 配置 VNC 服务器

VNC 服务器需要知道在启动时要执行哪些命令。具体来说,VNC 需要知道它应该连接到哪个图形桌面。

这些命令位于名为 xstartup 的配置文件中,该文件位于您的主目录下的 .vnc 文件夹中。当您在上一步中运行 vncserver 时,启动脚本已经创建好了,但我们将创建自己的启动脚本来启动 Xfce 桌面。

当 VNC 首次设置时,它会在端口 5901 上启动一个默认服务器实例。这个端口被称为 显示端口,VNC 以 :1 来引用它。VNC 可以在其他显示端口上启动多个实例,比如 :2:3 等等。

因为我们将要更改 VNC 服务器的配置方式,首先使用以下命令停止在端口 5901 上运行的 VNC 服务器实例:

vncserver -kill :1

输出应该如下所示,尽管您将看到不同的 PID:

正在终止 Xtightvnc 进程 ID 17648

在修改 xstartup 文件之前,先备份原始文件:

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

现在创建一个新的 xstartup 文件并在文本编辑器中打开它:

nano ~/.vnc/xstartup

该文件中的命令在启动或重新启动 VNC 服务器时会自动执行。我们需要让 VNC 在启动时启动我们的桌面环境。将以下命令添加到文件中:

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

文件中的第一个命令 xrdb $HOME/.Xresources 告诉 VNC 的 GUI 框架读取服务器用户的 .Xresources 文件。.Xresources 是用户可以更改图形桌面的某些设置的地方,比如终端颜色、光标主题和字体渲染。第二个命令告诉服务器启动 Xfce,这是您可以舒适地管理服务器所需的所有图形软件的地方。

保存并关闭文件。

为了确保 VNC 服务器能够正确使用这个新的启动文件,我们需要将其设置为可执行。

sudo chmod +x ~/.vnc/xstartup

现在,重新启动 VNC 服务器。

vncserver

您将看到类似于以下内容的输出:

New 'X' desktop is your_hostname:1
Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

配置完成后,让我们从本地机器连接到服务器。

步骤 3 —— 安全连接 VNC 桌面

VNC 本身在连接时不使用安全协议。我们将使用 SSH 隧道来安全连接到我们的服务器,然后告诉我们的 VNC 客户端使用该隧道,而不是直接建立连接。

在本地计算机上创建一个安全地转发到 VNC 的 localhost 连接的 SSH 连接。您可以在 Linux 或 macOS 上通过终端使用以下命令来完成:

ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

-L 开关指定端口绑定。在这种情况下,我们将远程连接的端口 5901 绑定到本地机器上的端口 5901-C 开关启用压缩,而 -N 开关告诉 ssh 我们不想执行远程命令。-l 开关指定远程登录名。

记得用您服务器的 sudo 非 root 用户名和 IP 地址替换 sammyyour_server_ip

如果您使用图形化 SSH 客户端,比如 PuTTY,将 your_server_ip 作为连接 IP,并在程序的 SSH 隧道设置中将 localhost:5901 设置为新的转发端口。

一旦隧道运行起来,使用 VNC 客户端连接到 localhost:5901。您将被提示使用您在步骤 1 中设置的密码进行身份验证。

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

!VNC connection to Ubuntu 18.04 server

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

!Files via VNC connection to Ubuntu 18.04

在终端中按 CTRL+C 停止 SSH 隧道并返回到提示符。这也会断开您的 VNC 会话。

接下来让我们将我们的 VNC 服务器设置为服务。

步骤 4 —— 将 VNC 作为系统服务运行

接下来,我们将设置 VNC 服务器作为 systemd 服务,这样我们就可以像任何其他服务一样启动、停止和重新启动它。这也将确保 VNC 在服务器重新启动时启动。

首先,使用您喜欢的文本编辑器创建一个名为 /etc/systemd/system/vncserver@.service 的新单元文件:

sudo nano /etc/systemd/system/vncserver@.service

名称末尾的 @ 符号将允许我们传递一个参数,我们可以在服务配置中使用这个参数。我们将使用这个参数来指定我们在管理服务时要使用的 VNC 显示端口。

向文件中添加以下行。确保更改 UserGroupWorkingDirectory 的值,以及 PIDFILE 值中的用户名,以匹配您的用户名:

[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=sammy
Group=sammy
WorkingDirectory=/home/sammy
PIDFile=/home/sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target

ExecStartPre 命令会在 VNC 已经运行时停止它。ExecStart 命令会启动 VNC 并将颜色深度设置为 24 位色,分辨率为 1280x800。您也可以修改这些启动选项以满足您的需求。

保存并关闭文件。

接下来,让系统知道新的单元文件。

sudo systemctl daemon-reload

启用单元文件。

sudo systemctl enable vncserver@1.service

@ 符号后面的 1 表示服务应该出现在哪个显示编号上,这里是默认的 :1,就像在步骤 2 中讨论的那样。

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

vncserver -kill :1

然后像启动任何其他 systemd 服务一样启动它。

sudo systemctl start vncserver@1

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

sudo systemctl status vncserver@1

如果它正确启动,输出应该如下所示:

● vncserver@1.service - Start TightVNC server at startup
   Loaded: loaded (/etc/systemd/system/vncserver@.service; indirect; vendor preset: enabled)
   Active: active (running) since Mon 2018-07-09 18:13:53 UTC; 2min 14s ago
  Process: 22322 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS)
  Process: 22316 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS)
 Main PID: 22330 (Xtightvnc)
...

在重新启动机器时,您的 VNC 服务器现在将可用。

再次启动您的 SSH 隧道:

ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

然后使用您的 VNC 客户端软件连接到 localhost:5901 来连接到您的机器。

结论

您现在已经在您的 Ubuntu 18.04 服务器上成功搭建了一个安全的 VNC 服务器。现在您可以通过一个易于使用和熟悉的图形界面来管理您的文件、软件和设置,并且可以远程运行诸如网页浏览器之类的图形软件。


目录
相关文章
|
6天前
|
Ubuntu Linux Docker
Ubuntu22.04上Docker的安装
通过以上详细的安装步骤和命令,您可以在Ubuntu 22.04系统上顺利安装
73 11
|
29天前
|
Ubuntu
ubuntu和debian 的安装包dpkg管理命令对安装包进行安装,查询,卸载
Ubuntu dpkg 软件包管理命令概览:安装、卸载、查看和配置软件包。包括解决依赖、强制卸载、列出及过滤已安装包、查看包详情等操作。
55 10
|
1月前
|
Ubuntu API 开发工具
PSOPT在Ubuntu22.04下的安装
通过上述步骤,可以在Ubuntu 22.04下成功安装并配置PSOPT。PSOPT是一个功能强大的工具,适用于解决各种最优控制问题。确保在安装前满足系统要求,并仔细按照步骤操作,可以避免大多数常见问题。通过MATLAB与PSOPT的结合,您可以更高效地处理复杂的控制问题,并获得准确的解决方案。
31 5
|
1月前
|
Ubuntu 网络协议 关系型数据库
超聚变服务器2288H V6使用 iBMC 安装 Ubuntu Server 24.04 LTS及后续系统配置
【11月更文挑战第15天】本文档详细介绍了如何使用iBMC在超聚变服务器2288H V6上安装Ubuntu Server 24.04 LTS,包括连接iBMC管理口、登录iBMC管理界面、配置RAID、安装系统以及后续系统配置等步骤。
107 4
|
Web App开发 Ubuntu Linux
|
2月前
|
并行计算 Ubuntu Linux
Ubuntu学习笔记(五):18.04安装多版本CUDA
这篇博客文章介绍了在Ubuntu 18.04系统上如何安装和切换不同版本的CUDA,以及如何安装不同版本的cuDNN。
239 2
|
2月前
|
并行计算 PyTorch TensorFlow
Ubuntu安装笔记(一):安装显卡驱动、cuda/cudnn、Anaconda、Pytorch、Tensorflow、Opencv、Visdom、FFMPEG、卸载一些不必要的预装软件
这篇文章是关于如何在Ubuntu操作系统上安装显卡驱动、CUDA、CUDNN、Anaconda、PyTorch、TensorFlow、OpenCV、FFMPEG以及卸载不必要的预装软件的详细指南。
4999 3
|
1月前
|
Ubuntu 开发工具 git
Ubuntu安装homebrew的完整教程
本文介绍了如何在没有公网的情况下安装 Homebrew。首先访问 Homebrew 官网,然后通过阿里云的镜像克隆安装脚本,并创建普通用户进行安装。接着修改 `install.sh` 文件指向国内镜像,执行安装命令。最后配置环境变量并更换 Homebrew 源为国内镜像,确保安装顺利。
256 50
|
2月前
|
Ubuntu Linux 测试技术
Linux系统之Ubuntu安装cockpit管理工具
【10月更文挑战第13天】Linux系统之Ubuntu安装cockpit管理工具
220 4
Linux系统之Ubuntu安装cockpit管理工具
|
2月前
|
Ubuntu 应用服务中间件 nginx
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)
本文是关于Ubuntu系统中使用ffmpeg 3.2.16源码编译OpenCV 3.4.0的安装笔记,包括安装ffmpeg、编译OpenCV、卸载OpenCV以及常见报错处理。
213 2
Ubuntu安装笔记(三):ffmpeg(3.2.16)源码编译opencv(3.4.0)