网站搜索

如何在 RHEL 8 上安装 VNC 服务器


VNC虚拟网络计算)是一种流行的图形桌面共享平台,它允许您通过 Internet 等网络远程访问、查看和控制其他计算机。

VNC 使用远程帧缓冲区协议 (RFB) 并按照客户端-服务器原则工作:服务器共享其输出 (vncserver )和客户端(vncviewer)连接到服务器。请注意,远程计算机必须安装桌面环境。

在本文中,我们将介绍如何通过 tigervnc-server 在最新版本的 RHEL 8 桌面版中安装和配置 VNC 远程访问程序。

要求:

  1. RHEL 8 最小化安装
  2. 启用 RedHat 订阅的 RHEL 8
  3. 具有静态 IP 地址的 RHEL 8

一旦您的 RHEL 8 系统满足上述要求,您就可以将其设置为 VNC 服务器

第 1 步:禁用 Wayland Display Manager 并启用 X.org

1. RHEL 8 上的默认桌面环境 (DE) 是 GNOME,默认情况下配置为使用 Wayland 显示管理器。但是,Wayland 并不是像 X.org 那样的远程渲染 API。因此,您需要配置系统以使用 X.org 显示管理器。

使用您喜欢的命令行编辑器打开 GNOME Display Manager (GDM) 配置文件。

vi /etc/gdm/custom.conf

然后取消注释此行以强制登录屏幕使用 Xorg

WaylandEnable=false

保存文件并关闭它。

步骤2:在RHEL 8中安装VNC服务器

2. TigerVNC (Tiger Virtual NetworkComputing) 是一个开源、广泛使用的图形桌面共享系统,可让您远程控制其他计算机。

dnf install tigervnc-server tigervnc-server-module

3.接下来,切换到要运行的用户,通过设置用户的VNC服务器密码(至少应为六个字符)来使用VNC程序,如图。

su - tecmint
vncpasswd

现在,通过运行退出命令切换回 root 帐户。

exit

步骤 3 在 RHEL 8 中配置 VNC 服务器

4. 在此步骤中,您必须配置 TigerVNC 服务器以在系统上为上述用户启动显示。首先创建一个名为 /etc/systemd/system/[email  的配置文件,如下所示。

vi /etc/systemd/system/[email 

在其中添加以下配置(记住将 howtoing 替换为您的实际用户名)。

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

[Service] 
Type=forking 
WorkingDirectory=/home/tecmint 
User=tecmint 
Group=tecmint 

PIDFile=/home/tecmint/.vnc/%H%i.pid 

ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' 
ExecStart=/usr/bin/vncserver -autokill %i 
ExecStop=/usr/bin/vncserver -kill %i 

[Install] 
WantedBy=multi-user.target

保存文件并关闭它。

在继续之前,我们先简单了解一下 VNC 服务器如何监听请求。默认情况下,VNC 使用 TCP 端口 5900+N,其中 N 是显示编号。如果显示端口号为 1,则 VNC 服务器将在显示端口号 5901 上运行。这是从客户端连接到服务器时必须使用的端口。

步骤 4:在 RHEL 8 中启用 VNC 服务

5.要启动VNC服务,您需要禁用RHEL 8上默认为强制模式的SELinux。

setenforce 0
sed -i 's/enforcing/disabled/g' /etc/selinux/config

6. 现在重新加载 systemd 管理器配置以应用最近的更改,然后启动 VNC 服务,使其能够在系统启动时自动启动,并使用以下 systemctl 命令检查它是否已启动并运行。

systemctl daemon-reload
systemctl start vncserver@:1
systemctl status vncserver@:1
systemctl enable vncserver@:1

7. 此时,VNC 服务已启动并正在运行,使用 netstat 命令验证 VNC 服务器是否正在侦听 TCP 端口 5901

netstat -tlnp

8.接下来,在默认运行的系统防火墙服务中打开端口5901,如图所示。这允许客户端访问 VNC 服务。

firewall-cmd --permanent --add-port=5901/tcp
firewall-cmd --reload

步骤5:通过VNC客户端连接到VNC服务器

9. 现在是时候看看如何从客户端访问 VNC 服务器了。默认情况下,VNC 不是一个安全系统,这意味着您的连接根本没有加密。但是您可以使用称为 SSH 隧道的技术来保护从客户端到服务器的连接,如下所述。

请记住,您需要在服务器和客户端计算机之间配置无密码 SSH 身份验证,以增加两个 Linux 系统之间的信任。

然后在 Linux 客户端计算机上,打开终端窗口并运行以下命令来创建到 VNC 服务器的 SSH 隧道(不要忘记更改身份文件的路径 (~/.ssh/rhel8 )和服务器的 IP 地址(192.168.56.110):

ssh -i ~/.ssh/rhel8 -L 5901:127.0.0.1:5901 -N -f -l tecmint 192.168.56.110

10.创建SSH隧道后,您可以在客户端计算机上安装vncviewer客户端,例如TigerVNC Viewer

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

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

vncviewer localhost:5901
OR
vncviewer 127.0.0.1:5901

或者,从系统菜单中搜索并打开VNC客户端程序,然后输入上面的地址,然后单击连接,如下图所示。

如果连接成功,系统将提示您输入之前在步骤 2 第 3 点中创建的 VNC 登录密码。提供该密码并单击“确定”继续。

成功完成 VNC 服务器身份验证后,您将看到远程 RHEL 8 系统桌面界面。单击“Enter”进入登录界面,输入密码即可访问桌面。

在本文中,我们展示了如何在 RHEL 8 上安装和配置 VNC 服务器。像往常一样,您可以通过下面的反馈表提出问题。