VNC是虚拟网络计算的缩写。它可以帮助您远程控制Ubuntu机器。VNC服务器使用远程帧缓冲协议(RFB)来远程控制另一台计算机。
当技术支持人员使用键盘或鼠标时,VNC会将信号从键盘和鼠标传输到远程服务器。它通过图形用户界面使管理工作更加轻松便捷。此外,VNC比图形SSH和RDP连接更可靠。
本教程将介绍使用TightVNC在Ubuntu 20.04上设置和配置VNC的步骤。
1、安装桌面环境和VNC服务器
首先,让我们在Ubuntu服务器上安装桌面环境,因为默认情况下未安装它。有很多选择:GNOME,MATE,XFCE等。
在本教程中,我们将选择XFCE。这是一个轻量级的桌面环境,它有助于VNC连接稳定和流畅。
在您的Ubuntu服务器上,运行以下命令以更新软件包列表:
$ sudo apt update
然后,让我们安装XFCE桌面环境:
$ sudo apt install xfce4 xfce4-goodies gnome-icon-theme
在这里,我使用的是TightVNC服务器,其他流行的VNC服务器是TigerVNC和x11vnc。
安装tightvnc:
$ sudo apt install tightvncserver
接下来,让我们运行VNC服务器实例,您必须为已安装的服务器设置密码:
$ vncserver
由于我们是在安装后第一次启动服务器,它将要求我们设置客户端用来连接的密码。它还将要求设置仅查看密码,该密码将允许用户查看屏幕但不能与其交互。
请注意,密码长度在6到8个字符之间。如果输入较长的密码,它将被自动删节。
如果要更改VNC服务器的密码,请运行:
$ vncpasswd
2、配置VNC服务器
首次启动VNC服务器实例时,将创建初始配置文件:“〜/ .vnc / xstartup”,并且VNC服务器侦听端口5901。我们将此端口称为显示端口。我们可以启动VNC服务器的许多实例,每个实例都有自己的显示端口:第一个显示器侦听端口5901,第二个显示器侦听端口5902,依此类推。
必须将VNC服务器配置为与Ubuntu服务器启动一起运行。此外,您必须明确指出VNC服务器将连接到哪个桌面环境。
首先,让我们停止当前在TCP端口5901上运行的VNC服务器实例:
$ vncserver -kill :1
然后备份当前配置文件:
$ cp ~/.vnc/xstartup ~/.vnc/xstartup.bak
现在,使用您喜欢的编辑器修改“xstartup”文件,如下所示:
#!/bin/sh
xrdb $HOME/.Xresources
startxfce4 &
重新启动VNC服务器:
$ vncserver -localhost
连接到VNC服务器
默认情况下,VNC服务器不使用安全协议。为了保护与远程Ubuntu服务器的连接,您必须创建SSH隧道,并指示VNC客户端通过该隧道连接到VNC服务器。
让我们在本地计算机上建立SSH连接,以将流量转发到VNC的“本地主机”。在本地计算机(macOS或Linux)上启动终端,运行以下命令:
$ ssh -L 59000:localhost:5901 -C -l <user> <server_ip_address>
其中:
-L 59000:localhost:5901:本地计算机上的端口为59000将转发到目标服务器:localhost:5901
-C:压缩数据以加快连接速度
-l <user> <server_ip_address>:指示您要登录的用户以及Ubuntu 20.04服务器的IP地址。
3、在Windows上设置SSH隧道
如果运行Windows操作系统,则可以使用PuTTY SSH客户端设置SSH隧道。
让我们打开PuTTY,然后输入Ubuntu服务器的IP地址:
接下来,展开子菜单“Connection > SSH > Tunnels”,在“Source port”源端口中输入“ 5901”,在“Destination”目标中输入“<server_ip_address>:5901”。然后,单击“Add”添加按钮,如下所示:
通过使用SSH隧道,与Ubuntu 20.04服务器的VNC连接仅允许可以SSH到该服务器的计算机。不允许每台机器仅连接到端口5901。
现在,您可以使用VNC客户端连接到远程Ubuntu服务器。在本教程中,我们使用VNC查看器。打开VNC客户端,然后输入服务器IP地址和端口5901:
您已成功连接到Ubuntu服务器的XFCE桌面:
您可以像在办公室中使用物理服务器一样控制服务器。例如,您可以访问文件管理器,启动程序或打开终端:
4、将VNC服务器设置为systemd服务
通过将VNC服务器作为系统服务运行,您可以随时方便地启动,停止或重新启动它。
让我们在Ubuntu服务器上的目录“/etc/systemd/system/”中创建一个名为“ vncserver @ .service” 的新文件:
$ sudo vim /etc/systemd/system/vncserver@.service
将以下内容添加到文件“ vncserver @ .service”,并确保编辑第7、8、9和13行中的值以匹配您的环境。
[Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
[Service]
Type=forking
User=ubuntu
Group=ubuntu
WorkingDirectory=/home/ubuntu
PIDFile=/home/ubuntu/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy = multi-user.target
然后,重新加载系统守护程序:
$ sudo systemctl daemon-reload
启用服务:
$ sudo systemctl enable vncserver@1.service
其中:
@ 1.service:第一个显示器与端口5901关联。
输出:
Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@1.service → /etc/systemd/system/vncserver@.service.
kill正在运行的实例:
$ vncserver -kill :1
Killing Xtightvnc process ID 3159
然后再次启动该systemd服务:
$ sudo systemctl start vncserver@1
现在,您可以验证服务是否正常运行:
$ sudo systemctl status vncserver@1
在本教程中,我们学习了如何在Ubuntu 20.04上安装和配置VNC服务器。现在,您可以使用图形用户界面来远程管理Ubuntu服务器。