前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何在RHEL 8上安装VNC服务器

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

作者头像
星哥玩云
发布于 2022-07-28 06:01:41
发布于 2022-07-28 06:01:41
7.8K0
举报
文章被收录于专栏:开源部署开源部署

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桌面

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
Shell编程
Shell 是一个用 C 语言编写的程序,通过 Shell 用户可以访问操作系统内核服务。
用户4870038
2021/02/05
5.1K0
Shell编程
【Linux】Shell 变量:你不知道的那些事
在 Linux 系统中,Shell 是用户与内核之间交互的接口程序,为用户提供使用操作系统的接口,也被称为命令解释器。Shell 接收用户输入的命令,并将其转换为 Linux 系统可以理解的操作,最终通过调用相应的程序来完成这些操作。
行者Sun
2024/09/14
1840
【Linux】Shell 变量:你不知道的那些事
Shell 编程核心技术《一》
在我们的日常工作中经常需要编写一些 Shell 逻辑脚本来批量处理一些任务,比如读取输入数据进行相关处理,将任务放入一个脚本进行自动化运行等场景,这些都涉及 Shell 编程,其实 Shell 编程也非常简单,就像 Java、Python 这些大众化的编程语言一样,也具备编程语言的特性,我们来看下 Shell 编程主要涉及的几个方面的内容。
Wu_Candy
2022/07/04
7080
Shell 编程核心技术《一》
Shell三大利器之awk
awk是什么 awk是一种处理文本文件的语言,是一个强大的文本分析工具;awk是以列为划分计数的,$0表示所有列,$1表示第一列,$2表示第二列。 awk参数 -F 指定分隔符,如-F: -v 赋值一个用户定义变量,如-va=1 -f 从脚本文件中读取awk命令 > vim rumenz.log 123 入门,小站 456 456 你好,世界 789 awk打印第1列和第3列 > awk '{print $1,$3}' rumenz.log //或者 > cat rumenz.log | awk '{pr
入门笔记
2021/01/11
5580
Shell变量
变量是任何一种编程语言都必不可少的组成部分,变量用来存放各种数据。脚本语言在定义变量时通常不需要指明类型,直接赋值就可以,Shell变量也遵循这个规则。
恋喵大鲤鱼
2019/03/04
1.2K0
Shell自定义变量和引用
定义一个变量 用户自定义变量也叫本地变量,用户可以自定义变量的名称,也可以给变量赋值,还可修改变量的值,甚至删除变量。 声明变量不用声明类型 可以存储不同类型的内容 大小写区分 变量声明及赋值格式(变量=值,注意:等号两侧不能有空格) > RUMENZ=123 # 输出变量 > echo ${RUMENZ} Shell中所有变量引用使用$符,后跟变量名。 有时个特殊字符会影响正常引用,那么需要使用${RUMENZ} > RUMENZ="入门小站" > echo $RUMENZ 入门小站 > echo $RU
入门笔记
2020/12/30
9480
【Linux】之shell入门
个人主页:天寒雨落的博客_CSDN博客-C,CSDN竞赛,python领域博主
天寒雨落
2022/11/20
4980
【Linux】之shell入门
说说Python 单引号、双引号、三引号的区别?
小猿会从最基础的面试题开始,每天一题。如果参考答案不够好,或者有错误的话,麻烦大家可以在留言区给出自己的意见和讨论,大家是要一起学习的 。
程序员小猿
2021/01/19
4.3K0
Shell 变量
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界,比如下面这种情况:
小小工匠
2021/08/16
2.1K0
Shell编程中出现 `ambiguous redirect` 和 `binary operator expected` 错误的解决方法以及相关知识点
最近在学习《Linux命令行和shell脚本编程大全》(第四版)这本书,对于自己遇到的问题以及通过搜索引擎和书籍中的解决方案进行一个案例的剖析,希望对于像我这样的初学者,有一个帮助。
哎呀_编号89757
2024/08/08
1K0
Shell编程中出现 `ambiguous redirect` 和 `binary operator expected` 错误的解决方法以及相关知识点
linux之read命令
原文链接:https://rumenz.com/rumenbiji/linux-read.html
入门笔记
2021/09/15
2.2K0
Shell双引号和单引号的区别
Shell在使用的过程中,经常会使双引号或者单引号将字符串括起来,也可以不使用引号来定义字符串变量。示例如下:
恋喵大鲤鱼
2019/03/05
3.2K0
JVM常量池
class文件是以字节为单位的二进制数据流,java编译器将java源码文件编译成.class字节码文件存放在磁盘上,.class中就包含文件常量池(非运行时常量池),在编译期间就确定了,.class文件遵循jvm虚拟机规范.
开源日记
2020/11/27
2720
Shell 语法
1. 运行sh脚本的2种方法: ./AAA。sh 或者 sh AAA.sh 。(其实后辍名不重要。是txt也是可以运行的。)
微风-- 轻许--
2022/04/13
6670
写好Shell脚本那些不得不知道的细节
想写好Shell脚本,有很多细节不得不知道,细节的不注意会给脚本调试带来很多麻烦,甚至导致运行的结果天差地别,下面总结了我实际工作中遇到的18大细节,分享给大家。
Lu说
2022/06/07
1.9K0
写好Shell脚本那些不得不知道的细节
shell编程知识点集锦
shell脚本是按行分隔每一条shell语句。如果每一条shell语句写在单独一行,此时可以加分号,也可以不加,没有什么区别。如果多条shell写在同一行,那么此时需一定要用分号将不用语句分隔开来。
恋喵大鲤鱼
2018/08/03
1.7K0
Shell基础
Linux系统下常见的四种变量 1.自定义变量 自定义变量是由系统用户自己定义的变量吗,只在用户自己的Shell环境中有效,因此,也有人称为本地变量。在编写Shell脚本程序是,用户通常会设定一些特定的自定义变量,以适应程序执行过程中各种变化,以满足不同的需求。
剧终
2020/08/26
8960
shell语法
其实脚本解释的时候#! /bin/bash解释的时候也是注释,只是系统识别为脚本解释器
h3110_w0r1d
2024/02/19
2430
shell 编程记录
1 文件比较运算符 -e filename 如果 filename存在,则为真 [ -e /var/log/syslog ] -d filename 如果 filename为目录,则为真 [ -d /tmp/mydir ] -f filename 如果 filename为常规文件,则为真 [ -f /usr/bin/grep ] -L filename 如果 filename为符号链接,则为真 [ -L /usr/bin/grep ] -r filename 如果 filename可读,则为真 [ -r /var/log/syslog ] -w filename 如果 filename可写,则为真 [ -w /var/mytmp.txt ] -x filename 如果 filename可执行,则为真 [ -L /usr/bin/grep ] filename1-nt filename2 如果 filename1比 filename2新,则为真 [ /tmp/install/etc/services -nt /etc/services ] filename1-ot filename2 如果 filename1比 filename2旧,则为真 [ /boot/bzImage -ot arch/i386/boot/bzImage ]
2019/05/25
6150
JS 单引号、双引号与反引号的区别
每一个编程语言都有引号,但作用和用法略有区别。JS 也存在单引号、双引号与反引号。
恋喵大鲤鱼
2021/01/21
9.4K0
相关推荐
Shell编程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档