在Ubuntu 20.04上安装和配置VNC
VNC代表虚拟网络计算。
它有助于我们远程控制Ubuntu机器。
VNC Server使用远程帧缓冲区协议(RFB)来远程控制另一台计算机。
当技术支持人员使用键盘或者鼠标时,VNC将从键盘和鼠标传输到远程服务器的信号。
它使管理工作更加简单,方便,具有图形用户界面。
此外,VNC比图形SSH和RDP连接更可靠。
本教程将使用COILDVNC在Ubuntu 20.04上设置和配置VNC的步骤。
如果我们在以前版本的Ubuntu 16.04上运行VNC,则有一个教程。
安装桌面环境和VNC服务器
首先,让我们在Ubuntu服务器上安装桌面环境,因为它默认未安装它。
有很多选择:GNOME,MATE,XFCE等。
在本教程中,我们将选择XFCE。
它是一个轻量级的桌面环境,它帮助VNC连接将稳定和光滑。
在Ubuntu服务器上,运行以下命令以更新包列表:
$sudo apt update
然后,让我们安装XFCE桌面环境:
$sudo apt install xfce4 xfce4-goodies gnome-icon-theme
其中我正在使用RickVNC服务器,其他流行的VNC服务器是Tigervnc和x11vnc。
安装RuceVNC:
$sudo apt install tightvncserver
接下来,让我们运行VNC服务器实例,并且必须为已安装的服务器设置密码:
$vncserver
正如我们在安装后第一次启动服务器,它会要求我们设置客户端用于连接的密码。
它还将要求设置仅查看的密码,这将允许用户看到屏幕但不与它交互。
启动vncserver
注意到密码长度在6到8个字符之间。
如果输入更长的密码,它将自动修剪。
如果要更改VNC服务器的密码,请让我们运行:
$vncpasswd
配置VNC服务器
当我们第一次启动VNC服务器实例时,将创建初始配置文件:'~/.vnc/xstartup'和vnc服务器在端口5901上侦听。
我们将此端口称为显示端口。
我们可以推出许多VNC服务器的实例,每个实例都有自己的显示端口:第一个显示器在端口5901上侦听,第二个显示器在端口5902上侦听。
必须配置VNC服务器以与Ubuntu Server启动一起运行。
此外,我们必须明确指出VNC服务器将连接到的桌面环境。
首先,让我们停止在TCP端口5901上运行的当前VNC服务器实例:
$vncserver -kill :1
然后备份当前配置文件:
$cp ~/.vnc/xstartup ~/.vnc/xstartup.bak
现在,使用我们喜欢的编辑器修改"Xstartup"文件,如下所示:
#!/bin/sh xrdb $HOME/.Xresources startxfce4 &
重新启动VNC服务器:
$vncserver -localhost
vncserver -localhost.
连接到VNC服务器
默认情况下,VNC服务器不使用安全协议。
为了确保与远程Ubuntu服务器的连接,我们必须创建一个SSH隧道,并指示VNC客户端通过该隧道连接到VNC服务器。
让我们在本地计算机上建立一个SSH连接,将流量转发给VNC的"localhost"。
在本地计算机(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地址
在Windows上设置SSH隧道
如果运行Windows操作系统,我们可以使用Putty SSH客户端设置SSH隧道。
让我们打开Putty然后输入Ubuntu Server的IP地址:
在putty 上输入Ubuntu Server的IP地址
接下来,展开子菜单连接> SSH>隧道,在"源端口"和"目标"中的"源端口"和"<server_ip_address>:5901"中输入'5901'。
然后,单击以下"添加"按钮:
SSH隧道在putty 上
通过使用SSH隧道,与Ubuntu 20.04服务器的VNC连接仅允许将可以SSH的计算机发送到服务器。
它不允许每台计算机连接到端口5901.
现在,我们可以使用VNC客户端连接到远程Ubuntu服务器。
在本教程中,我们使用VNC查看器。
打开VNC客户端,然后输入服务器IP地址和端口5901:
输入Ubuntu Server IP地址和端口5901
我们已成功连接到Ubuntu Server的XFCE桌面:
VNC查看器
我们可以控制服务器,就像我们正在使用Office中的物理服务器一样。
例如,我们可以访问文件管理器,启动程序或者打开终端:
控制Ubuntu服务器
将VNC服务器设置为SystemD服务
通过将VNC服务器运行为系统服务,我们可以随时轻松启动,停止或者重新启动它。
让我们在Ubuntu Server上的目录'/etc/systemd/system /'中创建一个名为'vncserver @service'的新文件:
$sudo vim /etc/systemd/system/[email protected]
将以下内容添加到文件'vncserver @ .service'中,并确保编辑第7行,8,9和13中的值匹配环境。
vncserver @ .service.
[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 [email protected]
其中:
@ 1.Service:第一个显示器与端口5901关联。
输出:
Created symlink /etc/systemd/system/multi-user.target.wants/[email protected] → /etc/systemd/system/[email protected].
杀死实例运行:
$vncserver -kill :1 Killing Xtightvnc process ID 3159
然后再次启动系统服务:
$sudo systemctl start vncserver@1
现在,我们可以验证服务是否正确运行:
$sudo systemctl status vncserver@1
输出:
● [email protected] - Start TightVNC server at startup Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled) Active: active (running) since Sun 2017-08-16 17:37:51 UTC; 2min 2s ago Process: 4611 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) Process: 4615 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :1 (code=exited, status> Main PID: 4623 (Xtightvnc) Tasks: 129 (limit: 7125) Memory: 187.5M ...