【转】CentOS7安装GUI界面及远程连接的实现

news2024/9/25 11:17:05

用基于浏览器(webdriver)的selenium技术爬取数据,所以程序需运行在GUI环境下。本文分三个部分简要介绍安装GUI界面及远程连接的步骤。

安装GUI界面

大多数云服务器厂商提供的镜像都无GUI界面,所以要先安装图形环境。本文使用GNOME桌面环境:

yum -y groups install "GNOME Desktop"

这条命令将安装GNOME桌面的必要软件包,执行完后配置X系统使用GNOME:

echo "exec gnome-session" >> ~/.xinitrc

安装KDE或者MATE桌面环境的两个命令稍微不一样:

# kde
yum -y groups install "KDE Plasma Workspaces"
echo "exec startkde" >> ~/.xinitrc

# mate
yum --enablerepo=epel -y groups install "MATE Desktop"
​echo "exec /usr/bin/mate-session" >> ~/.xinitrc

以上便安装好了GUI桌面环境。

启动桌面环境有两种方式:

  1. 一次性的:在终端里输入startx;
  2. 系统启动时默认进入桌面环境: systemctl set-default graphical.target,然后重启;

安装vnc-server

有了桌面环境,一般可以通过云服务器厂商提供的web终端远程连接进入桌面。用web终端每次都需要打开浏览器,然后登陆云管理后台再连接,比较麻烦。我们采取直接从桌面客户端远程连接的方式,省去打开浏览器和登录云管理后台的操作。

远程桌面技术有多种,例如VNC, TeamViewer, RDP等,本文使用免费且广泛使用的VNC。

在服务器上先安装服务端(tigervnc是tightvnc的分支):

yum install -y tigervnc-server

接着复制一份VNC配置:

cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

注意上述命令参数重的“@:1”,可以将数字1换成30000内的任意数字,“5900+数字”即为程序的显示(监听)端口,如”@:1″表示监听5901端口。

编辑该配置文件,将文件内的<USER>替换成远程连接时的登录用户名(如果是root,注意将第二个<USER>所在行的”/home”移除掉)。以root身份的配置示例:

# The vncserver service unit file
#
# Quick HowTo:
# 1. Copy this file to /etc/systemd/system/vncserver@.service
# 2. Replace <USER> with the actual user name and edit vncserver
# parameters appropriately
# (ExecStart=/usr/sbin/runuser -l <USER> -c “/usr/bin/vncserver %i”
# PIDFile=/home/<USER>/.vnc/%H%i.pid)
# 3. Run `systemctl daemon-reload`
# 4. Run `systemctl enable vncserver@:<display>.service`
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, you should
# limit connections to the local host and then tunnel from
# the machine you want to view VNC on (host A) to the machine
# whose VNC output you want to view (host B)
#
# [user@hostA ~]$ ssh -v -C -L 590N:localhost:590M hostB
#
# this will open a connection on port 590N of your hostA to hostB’s port 590M
# (in fact, it ssh-connects to hostB and then connects to localhost (on hostB).
# See the ssh man page for details on port forwarding)
#
# You can then point a VNC client on hostA at vncdisplay N of localhost and with
# the help of ssh, you end up seeing what hostB makes available on port 590M
#
# Use “-nolisten tcp” to prevent X connections to your VNC server via TCP.
#
# Use “-localhost” to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the “-via” option in the
# `man vncviewer’ manual page.

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

[Service]
Type=forking

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’
ExecStart=/usr/sbin/runuser -l root -c “/usr/bin/vncserver %i”
PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c ‘/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :’

[Install]
WantedBy=multi-user.target

接下来设置vnc连接密码:

vncpasswd

注意连接密码与登录密码不同:连接密码用于显示远程桌面,登录密码用于用户登录系统。

设置好后,启动vnc服务:

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

如果开启了防火墙,注意放行相应端口。

客户端连接

服务端配置完毕,接下来用客户端连接。

vnc是免费技术,许多客户端都支持该协议。本文采用App Store上免费的“Remote Desktop – VNC”软件进行连接,打开后软件界面如下:

在输入框填写服务器地址:vnc://ip:port,其中ip是服务器的ip或域名,port是监听的端口,例如5901。输入后按回车,弹出密码输入框,输入vncpasswd设置的密码。密码正确的话就可以看到服务器的图形桌面,例如: 

按回车键进入登录界面,输入登录用户名和密码进入系统:

 接下来就可以做各种图形操作了。

参考

How to install a GUI on top of CentOS 7
How to Install and Configure VNC Server in CentOS 7

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/907741.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

小程序 - 人脸核验遇到的问题 startFacialRecognitionVerifyAndUploadVideo:fail:access denied

目录 报错 - 没有权限代码解决 【补充】接口调用正常页面展示 报错 - 没有权限 {"errno": 102, "errMsg": "startFacialRecognitionVerifyAndUploadVideo:fail:access denied"} 代码 import Taro, { Component } from tarojs/taroclass Home e…

DeepHow首席执行官兼联合创始人郑三博士谈运用人工智能加速视频创作,实现视频界的“降本增效”

原创 |文 BFT机器人 DeepHow的首席执行官兼联合创始人Sam Zheng领导着一家快速发展的初创公司&#xff0c;并得到了受人尊敬的投资者的支持。DeepHow通过创新的、人工智能驱动的、以视频为中心的知识捕获和传输平台&#xff0c;彻底改变了熟练的劳动力培训。 在加入DeepHow之前…

YOLO目标检测——猫狗识别数据集下载分享

猫狗识别数据集是一个常用的用于猫和狗图像分类任务的数据集&#xff0c;包含了大量的猫和狗的图像样本 数据集点击下载&#xff1a;YOLO猫狗识别数据集5000图片.rar

了解AI智能问答的流程之后!使用起来更简单了

AI智能问答流程主要是按照自然语言理解、对话管理、自然语言生成这3个步骤&#xff0c;通过这些步骤之后&#xff0c;就可以将语言进行转换&#xff0c;转换成计算机能够理解的意思&#xff0c;再根据当前对话管理判断应该采取的策略。接下来looklook会详细来讲讲具体是如何实现…

<数据结构与算法>堆的应用二叉树的链式实现

目录 前言 一、堆的应用 1. 堆排序 1.1 排升序&#xff0c;建大堆 1.2 时间复杂度计算 2. Top k问题 二、 二叉树的链式实现 1. 二叉树的遍历 2. 二叉树基础OJ 3.DFS && BFS 总结 前言 学习完堆的数据结构&#xff0c;我们要清楚&#xff0c;它虽然实现了排序功能&am…

Wlan——STA上线流程与802.11MAC帧讲解

目录 802.11MAC帧基本概念 802.11帧结构 802.11MAC帧的分类 管理帧 控制帧 数据帧 STA接入无线网络流程 信号扫描—管理帧 链路认证—管理帧 用户关联—管理帧 用户上线 802.11MAC帧基本概念 802.11协议在802家族中的角色位置 其中802.3标准属于以太网的一种帧格式…

Redis 分布式锁存在什么问题 ?如何解决 ?

目录 1. 如何实现分布式锁 2. Redis 分布式锁存在什么问题 2.1 解决死锁问题 2.2 解决锁误删问题 1. 如何实现分布式锁 Redis 天生就可以作为一个分布式系统来使用&#xff0c;所以它实现的锁都是分布式锁。 Redis 可以通过 setnx&#xff08;set if not exists&#xff09…

vant4 自定义垂直步骤条时间线组件几行css代码改造完成(附效果图)

直接上效果图片 <template><!-- 审批流程 --><div><van-steps direction="vertical" active="-1"><van-step><template #inactive-icon><div class="relative"><img :src="girlIcon" /&…

JavaScript-console:JavaScript控制台(Console)常用方法

一、理解 console JavaScript 控制台&#xff08;console&#xff09;是一个开发人员在编写 JavaScript 代码时常用的工具。它是浏览器提供的一种界面&#xff0c;让开发人员能够追踪代码执行的状态和结果。JavaScript 控制台可以记录代码输出的信息、警告和错误&#xff0c;并…

opencv 进阶13-Fisherfaces 人脸识别-函数cv2.face.FisherFaceRecognizer_create()

Fisherfaces 人脸识别 PCA 方法是 EigenFaces 方法的核心&#xff0c;它找到了最大化数据总方差特征的线性组合。不可否认&#xff0c;EigenFaces 是一种非常有效的方法&#xff0c;但是它的缺点在于在操作过程中会损失许多特征信息。 因此&#xff0c;在一些情况下&#xff0c…

外贸网站怎么做推广优化

外贸网站的推广和优化是关键&#xff0c;因为它可以帮助您扩展国际市场并吸引更多的客户。以下是e6zz seo多年经验总结出一些有效的方法&#xff0c;可以帮助您推广和优化外贸网站&#xff1a; 优化网站内容&#xff1a; 确保您的网站内容对国际客户有吸引力&#xff0c;包括产…

lab4 traps

在开始做lab之前务必弄清楚 所谓的系统调用&#xff0c;本质上就是内核态和用户态之间的切换内核态和用户态的区别本质上就是一些关键属性的区别&#xff0c;比如页表 而他们的运行方式都一样&#xff0c;就是取指执行&#xff0c;没有魔法 只不过内核态和用户态的执行不在一个…

自动化客户服务必备神器——salesmartly

自动化客户服务必备神器——salesmartly 您是否正在寻找节省时间和简化客户服务流程的方法&#xff1f;客户服务自动化就是答案&#xff01;自动化使企业能够提供更快、更高效的客户服务&#xff0c;尤其是在电子商务领域。在本文中&#xff0c;我们将讨论自动化客户服务流程的…

没有高学历就没有高薪工作?

大家好&#xff0c;我是郑州软件测试4期的小路同学&#xff0c;是一个只有普通高中学历的河南人。由于自己上学的时候对学习不感兴趣&#xff0c;于是很早就辍学了。干过服务员&#xff0c;也卖过房子&#xff0c;但是干啥工作都没有挺过半年的&#xff0c;因为薪资很低&#x…

go_并发编程

go并发编程 一、 并发介绍1&#xff0c;进程和线程2&#xff0c;并发和并行3&#xff0c;协程和线程4&#xff0c;goroutine 二、 Goroutine1&#xff0c;使用goroutine1&#xff09;启动单个goroutine2&#xff09;启动多个goroutine 2&#xff0c;goroutine与线程3&#xff0…

docker compose的用法

目录 一、Docker-Compose介绍 1.1 Docker-Compose的概述 1.2 Docker-Compose 用来实现Docker容器快速编排 1.3 Docker-compose模板文件简介 二、YAML简介 2.1 YAML的概述 2.2 YAML的基本语法规则 2.3 YAML支持的数据架构 三、配置内部常用字段 四、Docker-compose 常…

常见的软件测试用例设计方法有哪些?

常见的软件测试用例设计方法&#xff0c;个人认为主要是下面这6种&#xff1a; 1)流程图法&#xff08;也叫场景法&#xff09; 2)等价类划分法 3)边界值分析 4)判定表 5)正交法 6)错误推测法 这6种常见方法中&#xff0c;我分别按照定义、应用场景、使用步骤、案例讲解这4个部…

Vue-13.创建完整的Vue项目(vue+vue-cli+js)-1

前言 之前写了命令创建Vue项目&#xff0c;但是事实上我们可以直接用编译器直接创建项目&#xff0c;这里我使用webstorm&#xff08;因为我是前后端兼修的所以我习惯使用Idea家族的编译器&#xff09; 只写前端的推荐用VsCode前后端都写的推荐用webstorm 新建项目 项目初始…

记录node 版本对应的 node-sass 版本号

当我们在项目中使用 node-sass 时&#xff0c;电脑的 node版本号一定要与 node-sass 版本号对应&#xff0c;不对应时下载就会报错 一、官方文档地址 https://www.npmjs.com/package/node-sass 二、对应版本表格