共计 3397 个字符,预计需要花费 9 分钟才能阅读完成。
VNC(虚拟网络计算)是一种流行的图形桌面共享平台,允许您通过网络(如 Internet)远程访问,查看和控制其他计算机。
VNC 使用远程帧缓冲协议(RFB)并根据客户端 – 服务器原则工作:服务器共享其输出(vncserver),客户端(vncviewer)连接到服务器。请注意,远程计算机必须安装了桌面环境。
在本文中,我们将介绍如何通过 tigervnc-server 程序在最新版本的 RHEL 8 Desktop Edition 中安装和配置 VNC Remote Access。
要求:
- RHEL8,安装最少
- RHEL8,启用了 RedHat 订阅
- RHEL8 带有静态 IP 地址
一旦您的 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
在 Gnome 中禁用 Wayland
保存文件并关闭它。
步骤 2:在 RHEL 8 中安装 VNC 服务器
2. TigerVNC(Tiger Virtual Network Computing)是一个开源的,广泛使用的图形桌面共享系统,允许您远程控制其他计算机。
# dnf install tigervnc-server tigervnc-server-module
3. 接下来,切换到要运行的用户,并通过设置用户的 VNC 服务器密码(应至少为六个字符)来使用 VNC 程序,如图所示。
# su – linuxidc
$ vncpasswd
设置用户 VNC 密码
现在,通过运行 exit 命令切换回 root 帐户。
$ exit
步骤 3 在 RHEL 8 中配置 VNC 服务器
4. 在此步骤中,您必须配置 TigerVNC 服务器以在系统上为上述用户启动显示。首先创建一个名为 /etc/systemd/system/vncserver@.service 的配置文件,如下所示。
# vi /etc/systemd/system/vncserver@.service
在其中添加以下配置(请记住将 linuxidc 替换为您的实际用户名)。
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
WorkingDirectory=/home/linuxidc
User=tecmint
Group=linuxidc
PIDFile=/home/linuxidc/.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 manager 配置以应用最近的更改,然后启动 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
检查 VNC 侦听端口
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
或者
$ vncviewer 127.0.0.1:5901
或者,从系统菜单中搜索并打开 VNC 客户端程序,然后输入上面的地址,然后单击“连接 Connect”,如以下屏幕截图所示。
打开 VNC 客户端
如果连接成功,系统将提示您输入先前在步骤 2,第 3 点中创建的 VNC 登录密码。提供该密码并单击“确定”继续。
输入 VNC 登录密码
成功进行 VNC 服务器身份验证后,您将看到远程 RHEL 8 系统桌面界面。单击 Enter 访问登录界面并提供密码以访问桌面。
通过 VNC 客户端访问 RHEL 8 桌面
在本文中,我们展示了如何在 RHEL 8 上安装和配置 VNC 服务器。像往常一样,您可以通过下面的反馈表单提问。
CentOS 7.2 搭建 VNC 远程桌面服务 https://www.linuxidc.com/Linux/2018-02/151091.htm
CentOS Linux 7.4 下 VNC 安装配置 https://www.linuxidc.com/Linux/2018-06/152771.htm
CentOS7.1 安装 VNC,让 Win7 远程桌面 Linux http://www.linuxidc.com/Linux/2017-05/143346.htm
CentOS 7 安装配置 VNC 详解 http://www.linuxidc.com/Linux/2017-05/143324.htm
Ubuntu 下安装配置 VNC 远程工具 http://www.linuxidc.com/Linux/2017-03/141936.htm
Ubuntu 18.04 安装 Xfce 桌面和 VNC 的方法 https://www.linuxidc.com/Linux/2018-08/153435.htm
: