网站搜索

如何在 Ubuntu 上安装和配置 VNC 服务器


虚拟网络计算 (VNC) 是一种广泛使用的图形桌面共享系统,允许用户帐户从另一台计算机或移动设备远程连接和控制一台计算机的桌面界面。

在本文中,我们将解释如何通过 tigervnc-server 程序在 Ubuntu 18.04 桌面版上安装和配置 VNC 服务器

测试环境

VNC Server: 192.168.56.108
VNC Client: 192.168.56.2

在Ubuntu中安装桌面环境

正如我所说,VNC 是一个桌面共享系统,因此您需要在 Ubuntu 服务器上安装桌面环境。您可以通过运行下面相应的命令来安装您选择的 DE。出于本文的目的,我们将安装 Ubuntu Gnome(官方版本)。

sudo apt-get install ubuntu-desktop		#Default Ubuntu desktop
sudo apt install ubuntu-gnome-desktop	        #Ubuntu Gnome (Official flavor)
sudo apt-get install xfce4			#LXDE
sudo apt-get install lxde			#LXDE
sudo apt-get install kubuntu-desktop		#KDE

在 Ubuntu 中安装和配置 VNC

Tigervnc-server 是一个高速、多平台 VNC 程序,它运行 Xvnc 服务器并在 VNC 桌面上启动 Gnome 或其他桌面环境的并行会话。

要在 Ubuntu 中安装 TigerVNC 服务器和其他相关软件包,请运行以下命令。

sudo apt install tigervnc-standalone-server tigervnc-common tigervnc-xorg-extension tigervnc-viewer

现在,以普通用户身份运行 vncserver 命令来启动 VNC 服务器。此操作将创建存储在 $HOME/.vnc 目录中的初始配置,并且还会提示您设置登录密码。

输入密码(长度必须至少为六个字符)并确认/验证。然后根据需要设置一个仅供查看的密码,如下所示。

vncserver
ls -l ~/.vnc 

接下来,我们需要配置 DE 以与 VNC 服务器配合使用。因此,请使用以下命令停止VNC服务器,以便执行一些配置。

vncserver -kill :1

要配置 GNOME 或您安装的任何桌面,请使用您喜欢的文本编辑器在配置目录下创建一个名为 xstartup 的文件。

vi ~/.vnc/xstartup

在文件中添加以下行。每当您启动或重新启动 TigerVNC 服务器时,这些命令都会自动执行。请注意,命令可能会根据您安装的 DE 的不同而有所不同。

#!/bin/sh
exec /etc/vnc/xstartup
xrdb $HOME/.Xresources
vncconfig -iconic &
dbus-launch --exit-with-session gnome-session &

保存文件并为文件设置适当的权限,以便可以执行该文件。

chmod 700 ~/.vnc/xstartup

接下来,以普通用户身份运行以下命令来启动 VNC 服务器。为显示几何形状设置您自己的值。此外,使用 -localhost 标志仅允许来自 localhost 的连接,以此类推,仅允许来自在服务器上经过身份验证的用户的连接。

此外,VNC 默认情况下使用 TCP 端口 5900+N,其中 N 是显示编号。在本例中,:1 表示 VNC 服务器将在显示端口号 5901 上运行。

vncserver :1 -localhost -geometry 1024x768 -depth 32

要列出系统上的 VNC 服务器会话,请运行以下命令。

vncserver -list

VNC 服务器启动后,使用 netstat 命令检查其运行的端口。

netstat -tlnp

通过VNC客户端连接到VNC服务器

在本节中,我们将展示如何连接到 VNC 服务器,但在开始之前,您需要知道默认情况下 VNC 并不安全(它不是加密协议,可能会受到数据包嗅探) 。可以通过 SSH 创建从客户端到服务器连接的隧道来解决此问题。

使用 SSH 隧道,您可以安全地将流量从端口 5901 上的本地计算机转发到同一端口上的 VNC 服务器。

在 Linux 客户端计算机上,打开一个新的终端窗口并运行以下命令来创建到 VNC 服务器的 SSH 隧道。

ssh -i ~/.ssh/ubuntu18.04 -L 5901:127.0.0.1:5901 -N -f -l tecmint 192.168.56.108

接下来安装 vncviewer 客户端,例如 TigerVNC Viewer,如下所示(您可以安装您选择的任何其他客户端)。

sudo apt install tigervnc-viewer		#Ubuntu/Debian
sudo yum install tigervnc-viewer		#CnetOS/RHEL
sudo yum install tigervnc-viewer		#Fedora 22+
sudo zypper install tigervnc-viewer	        #OpenSUSE
sudo pacman -S tigervnc			#Arch Linux

安装完成后,运行 VNC 客户端,指定地址 localhost:5901 来连接显示 1,如下所示。

vncviewer localhost:5901

或者,从系统菜单中打开它,输入上面的地址,然后单击连接

系统将提示您输入之前创建的 VNC 登录密码,输入后单击确定继续。

如果密码正确,您将登陆桌面的登录界面。输入您的密码以访问桌面。

注意:如果您有安全意识,您可能已经注意到,VNC 查看器显示“连接未加密”,即使我们已启用SSH 隧道。

这是因为它被设计为在尝试向服务器进行身份验证时使用除 SSH 隧道之外的特定安全方案。但是,一旦启用 SSH 隧道,连接就是安全的。

为 TigerVNC 服务器创建 Systemd 单元文件

为了在 systemd 下管理 VNC 服务器,即根据需要启动、停止和重新启动 VNC 服务,我们需要在 下为其创建一个单元文件/etc/systemd/system/ 目录,具有root权限。

sudo vim /etc/systemd/system/[email 

然后在文件中添加以下行:

[Unit] 
Description=Remote desktop service (VNC) 
After=syslog.target network.target 

[Service] 
Type=simple 
User=tecmint 
PAMName=login 
PIDFile=/home/%u/.vnc/%H%i.pid 
ExecStartPre=/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :
ExecStart=/usr/bin/vncserver :%i -localhost no -geometry 1024x768 
ExecStop=/usr/bin/vncserver -kill :%i 

[Install] 
WantedBy=multi-user.target

保存文件并关闭它。

接下来,重新加载 systemd 管理器配置以读取新创建的单元文件,如下所示。

sudo systemctl daemon-reload

然后启动VNC服务,使其在系统启动时自动启动并检查其状态,如图所示。


sudo systemctl start vncserver@1
sudo systemctl enable vncserver@1
sudo systemctl status vncserver@1

就这样!在本文中,我们解释了如何在 Ubuntu Linux 发行版上安装和配置 VNC 服务器。通过下面的反馈表与我们分享您的疑问或想法。