虚拟网络计算 ( VNC )是一种广泛使用的图形桌面共享系统 ,允许用户帐户远程连接和控制来自另一台计算机或移动设备的一台计算机的桌面界面。
在本文中,我们将介绍如何通过tigervnc-server程序在Ubuntu 18.04桌面版上安装和配置VNC服务器 。
测试环境
VNC Server: 192.168.56.108VNC 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/shexec /etc/vnc/xstartupxrdb $HOME/.Xresourcesvncconfig -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 howtoing 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下管理VNC服务器,即根据需要启动,停止和重启VNC服务,我们需要在/ etc / systemd / system /目录下为其创建一个具有root权限的单元文件。
$ sudo vim /etc/systemd/system/[email protected]
然后在文件中添加以下行:
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=simple User=howtoing 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 manager配置以读取新创建的单元文件,如下所示。
$ sudo systemctl daemon-reload
然后启动VNC服务,使其在系统引导时自动启动并检查其状态,如图所示。
$ sudo systemctl stop [email protected]$ sudo systemctl stop [email protected]$ sudo systemctl stop [email protected]
就这样! 在本文中,我们已经解释了如何在Ubuntu Linux发行版上安装和配置VNC服务器。 通过下面的反馈表与我们分享您的疑问或想法。