【Linux】CentOS安装GNOME桌面并实现Windows远程连接

标签: Windows&Linux

基于 CentOS 搭建 VNC 远程桌面服务

必备知识:本教程假设已学习以下 Linux 基本操作:

  • 连接 SSH
  • 执行命令
  • 编辑文件

安装、启动 VNC

VNC 远程桌面原理

注:以下内容旨在更好地了解 Xorg、X11、VNC 等概念和原理。
名词解释

  • Xorg:在 Linux 用户中非常流行,已经成为图形用户程序的必备条件,所以大部分发行版都提供了它。
  • X11:X Window 系统(X Window System,也常称为 X11 或 X )是一种以位图方式显示的软件窗口系统。
  • VNC:VNC(Virtual Network Computing),为一种使用RFB协议的显示屏画面分享及远程操作软件。此软件借由网络,可发送键盘与鼠标的动作及即时的显示屏画面。
  • x11vnc:轻量级 VNC 服务程序。
  • Xvfb:轻量级 Xorg 服务程序。

在 Linux 中显示窗口,首先要创建一个 display 服务。而 Xvfb 就是一个轻量级的,不产生实际屏幕输出的虚拟 display 服务程序。 Xvfb 创建 display 后, x11vnc 连上去并转换成 VNC 协议。
优点是整个系统按需开启,非常轻量,不会影响服务器性能。

安装 VNC 远程桌面

首先,通过以下命令安装比较的系统库

yum install -y xorg-x11-xauth xterm libXi libXp libXtst libXtst-devel libXext libXext-devel

然后,通过以下命令安装 Xvfb

yum install -y Xvfb

最后,通过以下命令安装 x11vnc

yum install -y x11vnc

启动 VNC 远程桌面

启动 VNC 远程桌面命令如下,其中 12345 为端口号(如果已占用需要换另外的端口号,另外需要记得在腾讯云管理页面添加端口放行规则),CrekeNet 为 VNC 远程桌面连接密码:

x11vnc -rfbport 12345 -passwd CrekeNet -create -forever

出现以下输出则启动成功 VNC 远程桌面
成功VNC远程桌面启动

连接VNC远程桌面

下载 VNC Viewer

点击这里 下载 VNC Viewer ,软件支持多平台。
注意选择电脑的操作系统对应链接进行下载,本教程以 Windows 为例

使用 VNC Viewer

下载安装后,首次运行 VNC Viewer ,会出现用户协议确认,如图勾选同意协议
用户协议确认
接着是介绍 VNC Viewer 的新功能,如图点击 “GOT IT” 确认
确认
选择 “File” —— “New Connection” ,新建 VNC 远程桌面连接
新建VNC远程桌面连接
“VNC Server” 填写腾讯云服务器IP和端口号,格式如 <您的 CVM IP 地址>:12345 ; “Name” 是连接的名字,可随意填,如 Tencent Cloud
VNC远程桌面配置
点击 “OK” ,完成连接的新建,这时面板上多了我们刚刚新建的名叫 Tencent Cloud 的连接
连接建立
右击这个连接,选择 “Connect”
开始连接
开始连接 VNC 远程桌面,此时会出现安全提示,点击 “Continue” 即可继续
确认继续
出现密码输入框,如果您是按照前文的默认密码启动 x11vnc ,则填入 CrekeNet 即可;如果您用了自己的密码,则需要输入您设置的正确密码
输入密码
成功连接后,出现 Linux 远程桌面
连接成功

安装GNOME桌面并实现VNC远程连接

首先更改图形界面模式

[root@localhost ~]# systemctl get-default

如果返回值为:multi-user.target 命令行输入下面指令切入到图形界面:

systemctl set-default graphical.target

如果需要改回命令行模式,输入如下指令

systemctl set-default multi-user.target

关闭防火墙

[root@localhost ~]# systemctl stop firewalld

安装vnc server

yum install tigervnc-server -y

复制配置模板并进行配置

[root@VM_54_14_centos ~]# cp /lib/systemd/system/[email protected] /etc/systemd/system/vncserver@:1.service
[root@VM_54_14_centos ~]# vim /etc/systemd/system/vncserver@\:1.service

将配置文件中的改成对应的用户,我这里用root

# 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=/home/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

将修改为root
对于其他普通用户,操作步骤类似,即首先复制模板,然后修改用户。

通知systemd重载此配置文件

[root@VM_54_14_centos ~]# systemctl daemon-reload

为用户配置密码

vnc的密码跟系统的用户密码不一样,是使用vnc viewer登陆时需要使用的密码。

[root@VM_54_14_centos ~]# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used

设置开机服务自启

[root@VM_54_14_centos ~]# systemctl enable vncserver@:1.service
Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver@:1.service to /etc/systemd/system/vncserver@:1.service.

启动服务

[root@VM_54_14_centos ~]# vncserver :1
New 'VM_54_14_centos:1 (root)' desktop is VM_54_14_centos:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/VM_54_14_centos:1.log

VNC远程连接

查看VNC的端口号:

[root@VM_54_14_centos ~]# netstat -lnpt|grep Xvnc
tcp        0      0 0.0.0.0:5901            0.0.0.0:*               LISTEN      23968/Xvnc          
tcp        0      0 0.0.0.0:6001            0.0.0.0:*               LISTEN      23968/Xvnc          
tcp6       0      0 :::5901                 :::*                    LISTEN      23968/Xvnc          
tcp6       0      0 :::6001                 :::*                    LISTEN      23968/Xvnc

默认情况下使用5901端口.
VNC连接效果

常见问题:

连接不上提示timeout
解决方法:如果Linux开启了防火墙功能,就需要手工开启相应的端口,以开启桌面号为“1”相应的端口为例,命令如下 :

[root@VM_54_14_centos ~]# systemctl stop firewalld
[root@VM_54_14_centos ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT    #

** 端口冲突**

[root@VM_54_14_centos ~]# systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC)
   Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)
   Active: failed (Result: resources) since Thu 2020-01-02 22:56:30 CST; 45s ago
  Process: 22381 ExecStart=/usr/sbin/runuser -l root -c /usr/bin/vncserver %i (code=exited, status=0/SUCCESS)
  Process: 22379 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
  Jan 02 22:56:26 VM_54_14_centos systemd[1]: Starting Remote desktop service (VNC)...
Jan 02 22:56:30 VM_54_14_centos systemd[1]: Can't open PID file /home/root/.vnc/VM_54_14_centos:1.pid (yet?) after start: No such file or directory
Jan 02 22:56:30 VM_54_14_centos systemd[1]: Failed to start Remote desktop service (VNC).
Jan 02 22:56:30 VM_54_14_centos systemd[1]: Unit vncserver@:1.service entered failed state.
Jan 02 22:56:30 VM_54_14_centos systemd[1]: vncserver@:1.service failed.

解决办法:关闭vncserver进程,重新启动,命令如下:

[root@VM_54_14_centos ~]# vncserver -kill :1
Killing Xvnc process ID 22403
[root@VM_54_14_centos ~]# vncserver :1

Reference

版权声明:本文为ARPOSPF原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ARPOSPF/article/details/103812794

智能推荐

centos7安装GNOME桌面环境

当你安装完centos7,系统默认是命令行界面,如果像我一样有特殊需求,这时就需要我们手动来安装用户图形界面了。 1.查看一下当前的运行级别和可以安装的group。 2.用命令行安装GNOME包,这需要等待一段时间。 3.在centos7里面的默认运行级别可以查看到有两种:multi-user.target和graphical.target。 4.更新系统的运行级别为graphical.targe...

Centos 7 安装GNOME桌面环境

安装GNOME Desktop 和Graphical Administration Tools 桌面服务 命令: 如果有以下错误:   该问题是由于文件fwupdate-efi 同grub2-common冲突所致,这里需要将该包通过yum update grub2-common命令进行更新。 执行:yum update grub2-common   更新升级完毕。。 继续执行命...

linux安装vnc远程桌面连接

linux安装vnc远程桌面连接 设置远程连接的密码,可操作 view-only即只能看不能操作的连接,可以创建也可以不创建 720P启动桌面,端口1代表5901 可以开启多个,如再开启一个1080P桌面 关闭桌面...

centos7.4安装图形界面并远程桌面连接

1 系统版本 CentOS release 6.2 (Final) 以下安装需要用root权限操作。 2 安装x windows yum groupinstall -y “X Window System”  //注意有引号 3 安装图形界面软件 GNOME yum groupinstall -y “GNOME Desktop” “Grap...

图形化CentOS7.5安装Xrdp服务使通过Windows远程桌面连接

文章目录 安装 启动 远程连接 安装 离线的操作系统iso中没有这个包,这里使用阿里的yum原下载安装 如果阿里域名无法解析,配置以下文件 开始安装,先安装扩展包epel-release 启动 启动服务,并加入开机启动 如果需要修改配置文件,配置文件为/etc/xrdp/xrdp.ini 远程连接需要关闭防火墙(或者只把端口放行) 远程连接 打开windows自带的远程桌面 输入IP和用户名,点击...

猜你喜欢

centos7部署配置迁移SVN

部署 安装 查看版本 创建版本库 配置svn信息 进入版本库中的配置目录conf,此目录有三个文件: svn服务综合配置文件(svnserve.conf)、 用户名口令文件(passwd)、权限配置文件(authz) svnserve.conf authz passwd 启用 连接路径 http配置 安装apache 修改apache默认端口 启动apache 测试,访问下面连接,出现apache...

maven启动web工程

1.在pom.xml中新增了 打包install时会将xml相关文件打到war包中。 2.配置tomcat或者jetty容器 3.选择web项目右键,run as -->run configurations  双击maven build进入下面页面 4.一般先install在run,下面以tomcat启动为例。 5.如下图:...

Hadoop 之Mapreduce wordcount词频统计案例(详解)

阅读目录 一、创建项目 :example-hdfs 二、项目目录 三、WordCountMapper.class 四、WordCountReducer.class 五、WordCounfDriver.class 六、pom.xml 七、打包jar包 八、在SecureCRT软件上传刚刚生成的jar包 九、运行 十、错误及解决 MapReduce是什么? Map Reduce是Google公司开源的...

分享 webpack3.0 的安装与使用

准备开始 webpack3.0 的安装 之前在很多网站上寻找webpack3.0的知识,但是结果都不理想。经过很多努力,终于学到了一些知识,现在把这些知识分享出来吧。(希望能对小伙伴有所帮助) 全局安装   1.jpg   2.jpg     3.jpg     4.jpg 局部安装   5.jpg 更新webpack &nbs...

快速实现上滑加载更多

实现方式 在智能小程序的开发过程中,经常会遇到页面列表数量较多的情况,此时可以通过【分页】加载数据,并监听页面滑动到底部时触发【上滑加载更多】,从而增加页面首屏渲染速度。 想要实现这种分页展示数据,上滑加载更多的效果,主要有以下几种方式: 1. 使用 view自定义信息流组件 + onReachBottom 2. 使用 scroll-view + bindscrolltolower 3. 使用 s...