VNC (Virtual Network Computing) 允许您像使用自己的计算机一样使用服务器 - 带有图形用户界面 (GUI)、桌面以及您的鼠标和键盘。它让刚接触服务器的用户更容易进行操作。
Cloudsigma 允许您在创建服务器后直接访问 VNC。除此之外,在本教程中,您将在 Ubuntu 18.04 上设置一个 VNC 服务器,并使用安全隧道连接到它。在本教程中,您将使用 TigerVNC,这是一个轻量且快速的 VNC 服务器软件包。即使在慢速网络中,它也能提供流畅的体验。
前提条件
首先,您需要创建一台机器。您可以在 CloudSigma WebApp 的计算部分轻松完成此操作:

对于本教程,您可以使用以下资源:
CPU: 8 GHz
RAM: 8 GB
SSD: 50 GB
您可以使用 CloudSigma 库中提供的 Ubuntu 18.04 LTS 镜像来挂载磁盘:
Ubuntu 18.04:预装 64 位,带 VirtIO 驱动程序、超级用户、Python 2.7.17、Pip 20.0.2、OpenSSL 1.1.1d、Cloud-init 以及截至 2019-03-03 的最新更新。
启动机器后,您可以通过运行以下命令来更新机器上所有现有的软件源和软件包:
|
1 2 |
sudo apt update sudo apt upgrade |
CloudSigma VNC 功能
CloudSigma 为您提供了一种通过 VNC 访问机器的简便方法。

您可以点击 VNC Tunnel’s 的切换按钮来启用它。启用后,您将看到此屏幕。

如果您已绑定 SSH 密钥,则必须访问服务器并使用以下命令更改密码:
|
1 2 3 |
ssh -i key.pem cloudsigma@IP sudo passwd cloudsigma |
如果您没有绑定 SSH 密钥,可以跳过上述步骤。您可以在“安装说明”(Install Notes)中找到密码。
您可以点击 ‘Display VNC’ 在浏览器中打开 VNC 窗口,或者点击 ‘Display VNC URL’ 查看连接到 VNC 客户端所需的详细信息。当您点击 ‘Display VNC’ 时,会打开一个新标签页并要求您输入凭据。您可以像在 VNC 客户端中使用虚拟机一样使用它。

现在我们将介绍在服务器上安装 VNC 的另一种方法。
安装 VNC 服务器
Ubuntu 镜像默认不带 GUI 软件包。我们将安装最新的 XFCE 桌面环境软件包以及 Ubuntu 软件源中提供的 TigerVNC 软件包。
您可以使用以下命令安装 XFCE 软件包:
sudo apt install xfce4 xfce4-goodies
安装 XFCE 软件包后,您可以使用以下命令安装 TigerVNC 服务器:
|
1 |
sudo apt install tightvncserver |
要完成配置,请运行以下命令并为 VNC 连接设置密码:
|
1 |
vncserver |
在运行上述命令时,它会提示您是否要使用“仅查看”(view-only)密码登录。使用仅查看密码,您只能看到屏幕而无法操作系统。如果您希望其他人能够看到屏幕但无法操作,此选项会很有用。
接下来,该命令将创建所有必需的配置。在此阶段,您可以从远程系统或您的计算机使用 VNC 服务器。作为本教程的一部分,我们将在使用服务器之前对其进行进一步配置。
配置 VNC 服务器
在本节中,我们将向您展示如何配置要使用的首选桌面。
您需要在主目录的 .vnc 文件夹中名为 ‘xstartup’ 的文件中配置这些命令。当您第一次运行 vncserver 命令时,启动脚本就已创建。您将创建另一个脚本来启动 XFCE 桌面。
此外,当您第一次运行 vncserver 命令时,它会启动一个端口为 5901 的默认服务器实例。该端口被称为显示端口,被 VNC 称为 “:1”。如果您重新运行该命令,VNC 将在其他端口上创建另一个实例 “:2”,依此类推。
由于您将配置 VNC 服务器,请停止已经运行的实例:
|
1 |
vncserver -kill :1 |
在修改启动文件之前,请备份原始文件:
|
1 |
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak |
现在,您可以使用 vim 编辑器编辑原始文件,并将其内容替换为以下内容:
|
1 2 3 4 5 6 7 |
vim ~/.vnc/xstartup 内容: #!/bin/bash xrdb $HOME/.Xresources startxfce4 & |
每当您启动或重启 vncserver 时,该进程都会运行此文件中的命令。如果桌面环境尚未启动,这些命令将启动它。
第一个命令,“xrdb $HOME/.Xresources” 告诉 GUI 框架从该位置读取配置。您可以配置桌面的各种设置,例如终端颜色、光标主题等。第二个命令启动 XFCE。
为了确保 VNC 服务器可以执行该文件,您需要更改其权限:
|
1 |
sudo chmod +x ~/.vnc/xstartup |
更改权限后。现在您可以运行 VNC 服务器:
|
1 |
vncserver |

现在服务器已准备就绪,我们可以从我们的计算机连接到它。
为 VNC 连接创建安全隧道
由于 VNC 在连接时不使用安全协议,我们将使用 SSH 来创建安全连接。我们可以使用 SSH 安全隧道连接到我们的虚拟桌面。
要创建一个将连接安全转发到本地主机的 SSH 隧道,您可以在终端或 PowerShell(适用于 Windows)上使用以下命令:
|
1 |
ssh -L 5901:127.0.0.1:5901 -C -N -l <UserName> <ServerIP> -i <pemKey> |
在上述命令中,
-L:用于指定端口绑定。在这种情况下,我们将服务器的 5901 端口转发到我们系统的 5901 端口
-C:用于启用压缩
-N:用于指定不需要远程执行命令
-l:指定远程登录名
-i:指定密钥的位置

隧道运行后,使用 VNC 客户端连接到 localhost:5901。它会要求您输入之前设置的密码。
连接后,您将看到类似于此的屏幕。

您可以通过按 Ctrl + C 来停止 SSH 隧道。
将 VNC 作为系统服务运行
您现在可以将 VNC 设置为系统服务,以便使用 systemd 命令启动、重启或检查其状态。它还将确保在服务器重启时启动 VNC 服务器。
为此,请创建一个新的单元文件 – /etc/systemd/system/vncserver@.service。
|
1 |
touch /etc/systemd/system/vncserver@.service |
您会注意到在上面的文件名中,有一个 ‘@’ 符号。它允许您传递一个可在服务器配置中使用的参数。
在文件中添加以下内容:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[Unit] Description=启动 TightVNC 服务器 在 启动时 After=syslog.target network.target [Service] Type=forking User=<User> Group=<UserGroup> WorkingDirectory=/home/<User> PIDFile=/home/<User>/.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 位颜色,分辨率为 1280×800。您可以根据需要修改此文件。
现在,您可以使用以下命令重新加载 systemd 的单元:
|
1 |
sudo systemctl daemon-reload |
现在 systemctl 已经识别了新的单元,您可以使用以下命令启用它:
|
1 |
sudo systemctl enable vncserver@1.service |
@ 后面的数字 1 表示该服务应该显示在哪个显示器编号上。例如:1,:2 等。
要停止当前实例,请运行以下命令:
|
1 |
vncserver -kill :1 |

现在您可以像启动其他任何服务一样启动 VNC server。
|
1 |
sudo systemctl start vncserver@1 |
要检查服务是否已启动,请运行以下命令:
|
1 |
sudo systemctl status vncserver@1 |
现在,当您重启服务器时,VNC server 将可用。
既然您已经知道如何设置 VNC server,您就可以轻松管理您的服务器,就像管理您的计算机一样。
评论
暂无评论。发表第一条评论吧。