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

介绍

VNC,或虚拟网络计算,是一个连接系统,允许您使用键盘和鼠标在远程服务器上与图形桌面环境进行交互。

在本指南中,我们将设置VNC在Ubuntu 16.04服务器上,并通过SSH隧道安全连接到它。我们将使用的VNC服务器是TightVNC,一个快速而轻量的远程控制包。

前提条件

要完成本教程,您将需要:

  • 通过 Ubuntu 16.04 初始服务器设置教程设置的 Ubuntu 16.04 Droplet,其中包括拥有一个 sudo 非根用户。 请注意,本教程可以使用任何尺寸的 Droplet 完成,但在较小的 dropplet 上建造的 VNC 可能有更多的功能限制,而不是较大的 1。
  • 安装了 VNC 客户端的本地计算机,支持 SSH 隧道上的 VNC 连接。 如果您正在使用 Windows,您可以使用 TightVNC, RealVNC 或 UltraVNC。 Mac OS X 用户可以使用内置的屏幕共享程序,或者可以使用像 RealVNC 这样的跨平台应用程序。 Linux 用户可以从许多选项中选择: vinagre, dkrc, RealVNC

第1步:安装桌面环境和VNC服务器

默认情况下,Ubuntu 16.04 Droplet 不会配备图形桌面环境或安装 VNC 服务器,所以我们将开始安装这些软件,具体来说,我们将为最新 Xfce 桌面环境和 TightVNC 包安装软件包,可在官方 Ubuntu 存储库中使用。

在您的服务器上,安装 Xfce 和 TightVNC 包。

1sudo apt-get update
2sudo apt install xfce4 xfce4-goodies tightvncserver

要在安装后完成 VNC 服务器的初始配置,请使用vncserver命令设置安全密码。

1vncserver

您将被要求输入并验证密码,以及仅查看密码. 使用仅查看密码登录的用户将无法使用鼠标或键盘控制VNC实例。

运行vncserver完成了VNC的安装,通过创建默认配置文件和连接信息,我们的服务器可以使用。

步骤 2 — 配置 VNC 服务器

首先,我们需要告诉我们的VNC服务器在启动时要执行哪些命令. 这些命令位于名为xstartup的配置文件中,位于您的主目录下的.vnc文件夹中。

当 VNC 首次设置时,它会在端口 5901 上启动默认服务器实例。该端口被称为显示端口,并且由 VNC 称为 :1. VNC 可以在其他显示端口上启动多个实例,如 :2:3 等。

由于我们将更改VNC服务器的配置方式,所以我们需要先停止在端口5901上运行的VNC服务器实例。

1vncserver -kill :1

输出应该是这样的,具有不同的PID:

1[secondary_label Output]
2Killing Xtightvnc process ID 17648

在我们开始配置新的xstartup文件之前,让我们备份原始文件。

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

现在,使用nano或您最喜欢的文本编辑器创建一个新的xstartup文件。

1nano ~/.vnc/xstartup

将这些命令粘贴到文件中,以便每次启动或重新启动 VNC 服务器时自动执行,然后保存和关闭文件。

1[secondary_label ~/.vnc/xstartup]
2#!/bin/bash
3xrdb $HOME/.Xresources
4startxfce4 &

文件中的第一个命令,xrdb $HOME/.Xresources,告诉VNC的GUI框架读取服务器用户的.Xresources文件。 `.Xresources’是用户可以对图形桌面的某些设置进行更改的地方,如终端颜色,方程式主题和字体渲染。

为了确保VNC服务器能够正确使用这个新的启动文件,我们需要向它授予可执行的权限。

1sudo chmod +x ~/.vnc/xstartup

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

1vncserver

服务器应该以类似于此的输出开始:

1[secondary_label Output]
2New 'X' desktop is your_server_name.com:1
3
4Starting applications specified in /home/sammy/.vnc/xstartup
5Log file is /home/sammy/.vnc/liniverse.com:1.log

第3步:测试VNC桌面

在此步骤中,我们将测试您的VNC服务器的连接性。

首先,我们需要在本地计算机上创建一个SSH连接,可以安全地向VNC的本地最强连接。您可以通过Linux或OS X上的终端使用以下命令做到这一点。

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

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

接下来,您现在可以使用 VNC 客户端尝试连接到 VNC 服务器在localhost:5901。您将被提示进行身份验证。

一旦连接,你应该看到默认的 Xfce 桌面. 它应该看起来像这样的东西:

VNC connection to Ubuntu 16.04 server

您可以通过文件管理器或从命令行访问您的主目录中的文件,如下所示:

Files via VNC connection to Ubuntu 16.04

步骤 4 — 创建 VNC 服务文件

接下来,我们将将 VNC 服务器设置为 systemd 服务,这将使它可以按需要启动、停止和重新启动,就像任何其他 systemd 服务一样。

首先,使用您最喜欢的文本编辑器创建一个名为 /etc/systemd/system/[email protected] 的新单元文件:

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

将以下内容复制并粘贴到其中. 请确保将 用户 的值和用户名更改为 PIDFILE 的值,以匹配您的用户名。

 1[secondary_label /etc/systemd/system/[email protected] ]
 2[Unit]
 3Description=Start TightVNC server at startup
 4After=syslog.target network.target
 5
 6[Service]
 7Type=forking
 8User=sammy
 9PAMName=login
10PIDFile=/home/sammy/.vnc/%H:%i.pid
11ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
12ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
13ExecStop=/usr/bin/vncserver -kill :%i
14
15[Install]
16WantedBy=multi-user.target

保存并关闭文件。

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

1sudo systemctl daemon-reload

启用单元文件。

1sudo systemctl enable [email protected]

@符号之后的1表示该服务应该显示哪个显示号码,在这种情况下,如上文所述的:1默认值。

1vncserver -kill :1

然后开始它,就像你开始任何其他系统d 服务一样。

1sudo systemctl start vncserver@1

你可以验证它是从这个命令开始的:

1sudo systemctl status vncserver@1

如果它开始正确,输出应该是这样的:

 1[label Output]
 2vncserver@1.service - TightVNC server on Ubuntu 16.04
 3   Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
 4   Active: active (running) since Mon 2016-04-25 03:21:34 EDT; 6s ago
 5  Process: 2924 ExecStop=/usr/bin/vncserver -kill :%i (code=exited, status=0/SUCCESS)
 6
 7...
 8
 9 systemd[1]: Starting TightVNC server on Ubuntu 16.04...
10 systemd[2938]: pam_unix(login:session): session opened for user finid by (uid=0)
11 systemd[2949]: pam_unix(login:session): session opened for user finid by (uid=0)
12 systemd[1]: Started TightVNC server on Ubuntu 16.04.

结论

您现在应该在 Ubuntu 16.04 服务器上运行一个安全的 VNC 服务器,现在您可以使用易于使用和熟悉的图形界面来管理您的文件,软件和设置。

Published At
Categories with 技术
comments powered by Disqus