本指南介绍了在 Ubuntu 18.04 系统上安装和配置 VNC 服务器所需的步骤。我们还将向您展示如何通过 SSH 隧道安全地连接到 VNC 服务器。
虚拟网络计算(VNC)是一种图形桌面共享系统,允许您使用键盘和鼠标远程控制另一台计算机。
先决条件在继续学习本教程之前,请确保以具有 sudo 权限的用户身份登录。
安装桌面环境大多数服务器没有安装桌面环境,因此我们首先要安装轻量级桌面环境。
Ubuntu 存储库中有几个桌面环境(DE)。在本教程中,我们将安装 Xfce 。它是快速,稳定和轻量级的桌面环境,非常适合在远程服务器上使用。
首先使用以下命令更新系统
sudo apt update sudo apt upgrade
然后,键入以下命令以在服务器上安装 Xfce :
sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils
根据您的系统,下载和安装 Xfce 软件包可能需要一些时间。
安装 VNC 服务器Ubuntu 存储库中还有几种不同的 VNC 服务器,如 TightVNC , TigerVNC 和 x11vnc 。每个 VNC 服务器在速度和安全性方面都有不同的优点和缺点。
我们将安装 TigerVNC ,它是高性能 VNC 服务器,并被积积极维护。
键入以下命令以在 Ubuntu 服务器上安装 TigerVNC :
sudo apt install tigervnc-standalone-server tigervnc-common
现在安装了 VNC 服务器,下一步是运行 vncserver 命令,该命令将创建初始配置并设置密码。运行以下命令时不要使用 sudo :
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/buzheng/.Xauthority does not exist New 'server2.buzheng.org:1 (buzheng)' desktop at :1 on machine server2.buzheng.org Starting applications specified in /etc/X11/Xvnc-session Log file is /home/buzheng/.vnc/server2.buzheng.org:1.log Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/buzheng/.vnc/passwd :1 to connect to the VNC server.
第一次 vncserver 运行命令时,它将创建密码文件并将其存储在 ~/.vnc 目录中,如果不存在,将创建该目录。
注意上面输出中主机名之后的 :1 。这表示运行 vnc 服务器的显示端口号。在我们的例子中,服务器在 TCP 端口 5901 (5900 + 1)上运行。如果您创建第二个实例, vncserver 它将在下一个空闲端口上运行,即 :2 这意味着服务器正在端口 5902 (5900 + 2)上运行。
重要的是要记住,当使用 VNC 服务器时, :X 是一个引用的显示端口 5900+X 。
在继续下一步之前,首先使用带有 -kill 选项和服务器编号作为参数的 vncserver 命令停止 VNC 实例。在我们的例子中,服务器在端口 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 服务器,都将自动执行上述命令。
~/.vnc/xstartup 文件还需要具有执行权限。运行以下命令以确保权限正确:
chmod u+x ~/.vnc/xstartup
如果需要将附加选项传递给 VNC 服务器,则可以创建一个名为 config 的文件,并为每行添加一个选项。这是一个例子:
文件 ~/.vnc/config
geometry=1920x1084 dpi=96
创建 Systemd 单元文件我们将创建一个 systemd 单元文件,使我们能够根据需要轻松启动,停止和重新启动 VNC 服务,与任何其他 systemd 服务相同。
打开文本编辑器,将以下配置复制并粘贴到其中。请务必更改第 7 行中的用户名以匹配您的用户名。
sudo nano /etc/systemd/system/vncserver@.service
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=simple User=buzheng 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