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

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

本文介绍了如何在Ubuntu 20.04上安装和配置VNC服务器。 我们还将向您展示如何通过SSH隧道安全地连接到VNC服务器。

安装桌面环境

Ubuntu服务器是通过命令行管理的,默认情况下未安装桌面环境。 如果您运行桌面版本的Ubuntu,请跳过此步骤。

Ubuntu存储库中提供了各种桌面环境。 一种选择是安装Gnome,它是Ubuntu 20.04中的默认桌面环境。 另一个选择是安装Xfce。 它是一种快速,稳定且轻巧的桌面环境,非常适合在远程服务器上使用。

在本指南中,我们将安装Xfce。 以具有sudo特权的用户身份输入以下命令:

sudo apt updatesudo apt install xfce4 xfce4-goodies

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

安装VNC服务器

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

我们将安装TigerVNC。 这是一个主动维护的高性能VNC服务器。 键入以下命令以安装软件包:

sudo apt install tigervnc-standalone-server

配置VNC访问#

安装VNC服务器后,下一步是创建初始用户配置并设置密码。

使用 vncpasswd 命令。 运行以下命令时请勿使用sudo:

vncpasswd

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

Password:
Verify:
Would you like to enter a view-only password (y/n)? n

密码文件存储在 ~/.vnc 目录,如果不存在则创建。

接下来,我们需要配置TigerVNC以使用Xfce。 为此,请创建以下文件:

〜/ .vnc / xstartup

nano ~/.vnc/xstartup
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
exec startxfce4 

保存并关闭文件。 每当您启动或重新启动TigerVNC服务器时,以上命令都会自动执行。

~/.vnc/xstartup 文件还需要具有执行权限。 使用 chmod
用于设置文件权限的命令:

chmod u+x ~/.vnc/xstartup

如果您需要将其他选项传递给VNC服务器,请创建一个名为 config 并在每行添加一个选项。 这是一个例子:

〜/ .vnc /配置

geometry=1920x1080
dpi=96

现在,您可以使用 vncserver 命令:

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

Starting applications specified in /home/linuxize/.vnc/xstartup
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.

注意 :1 在上面输出中的主机名之后。 这表示正在运行vnc服务器的显示端口号。 在此示例中,服务器在TCP端口上运行 5901 (5900 + 1)。 如果您使用创建第二个实例 vncserver 它会在下一个空闲端口上运行,即 :2,这表示服务器正在端口上运行 5902 (5900 + 2)。

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

您可以通过键入以下命令获取所有当前正在运行的VNC会话的列表:

vncserver -list
TigerVNC server sessions:

X DISPLAY #	RFB PORT #	PROCESS ID
:1		      5901		    5710

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

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

创建一个Systemd单位文件

让我们创建一个systemd单元文件,而不是手动启动VNC会话,以便您根据需要启动,停止和重新启动VNC服务。

打开您的文本编辑器,然后将以下配置复制并粘贴到其中。 确保在第7行更改用户名以匹配您的用户名。

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

/etc/systemd/system/[email protected]

[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 [email protected]

数字 1 之后 @ 符号定义将在其上运行VNC服务的显示端口。 这意味着VNC服务器将在端口上侦听 5901,正如我们在上一节中讨论的那样。

通过执行以下命令来启动VNC服务:

sudo systemctl start [email protected]

验证服务是否成功启动:

sudo systemctl status [email protected]
[email protected] - Remote desktop service (VNC)
     Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2021-03-26 20:00:59 UTC; 3s ago
...

连接到VNC服务器

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

在Linux和macOS上设置SSH隧道#

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

ssh -L 5901:127.0.0.1:5901 -N -f -l vagrant 192.168.33.10

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

确保更换 usernameserver_ip_address 以及您的用户名和服务器的IP地址。

在Windows上设置SSH隧道#

如果您运行Windows,则可以使用PuTTY SSH客户端设置SSH隧道。

打开Putty,然后在 Host name or IP address 场地。

在下面 Connection 菜单,盒子,展开 SSH,然后选择 Tunnels。 输入VNC服务器端口(5901) 在里面 Source Port 字段并输入 server_ip_address:5901 在里面 Destination 字段,然后单击 Add 按钮,如下图所示:

VNC SSH隧道腻子

回到 Session 页以保存设置,因此您无需每次都输入它们。 对于远程服务器,选择保存的会话,然后单击 Open 按钮。

使用Vncviewer连接

现在已经创建了SSH隧道,现在该打开Vncviewer并在以下位置连接到VNC服务器了: localhost:5901

您可以将任何VNC查看器(例如TigerVNC,TightVNC,RealVNC,UltraVNC,Vinagre和VNC查看器)用于Google Chrome浏览器。

我们将使用TigerVNC。 打开查看器,输入 localhost:5901,然后点击 Connect 按钮。

VNC查看器

在出现提示时输入您的用户密码,您应该会看到默认的Xfce桌面。 它看起来像这样:

VNC SSH XFCE桌面

您可以使用键盘和鼠标从本地计算机开始与远程XFCE桌面进行交互。

结论 #

我们已经向您展示了如何在Ubuntu 20.04上安装和配置VNC服务器,并使其启动并运行。

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

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

ubuntu vnc

Sidebar