一、前言
基本概念简略概述
Display Manager 提供登录需求,在文字界面下可以通过startx来启动Xwindows
在runlevel 5下,在tty7处有可以使用的图形登录界面(方便输入账号密码),这个就是Display Manager–>最大的任务就是登录
在CentOS上,利用GDM (GNOME Display Manager) 程序来提供tty7的图形接口登录–>但作用不仅仅如此
gdm配置文件–>/etc/gdm/custom.conf
XDMCP (X Display Manager Contorl Protocol)
二、问题描述
服务器如果安装了桌面环境的话,默认是GNOME,管理工具是GDM。
CentOS7中的GNOME启用了本地硬件加速功能,所以通过XDMCP协议远程连接CentOS时会有问题,这个在X Manager官网博客中已提及,并建议使用其他的display manager(如lightdm等)和desktop environment(Xfce或KDE等)来规避该问题:
“Gnome in CentOS 7 tries to use local hardware acceleration and this becomes a problem when trying to connect remotely using XDMCP. To avoid this problem, you have to use an alternative display manager (other than ‘gdm’) and desktop environment.”
“This guide explains how you can change the display manager to lightdm from gdm and desktop environment from Gnome to Xfce.”
在CentOS7中安装好lightdm和Xfce后,由于系统前期已安装了GNOME desktop,在windows下通过xmanager在输入用户名和密码后,仍会报an error:oh no! something has gone wrong, A problem has occurred and the system can't recover之类的错误。
三、解决方案
1.安装epel源
# yum -y install epel-release
2.安装lightdm和xfce
光盘里镜像没有,从epel源里下
# yum -y groupinstall xfce
# yum -y install lightdm
3.修改lightdm 配置文件
vim /etc/lightdm/lightdm.conf
########################
...
[XDMCPServer]
enabled=true
port=177
...
#########################
将Display Manager切换为lightdm
# systemctl disable gdm
# systemctl enable lightdm
5.启动lightdm
# systemctl stop gdm.service
# systemctlstartlightdm
6.关闭防火墙
# systemctl stop firewalld.service
# setenforce 0
7.登录
打开Xmanger客户端,选择XDMCP并输入服务器的ip,回车运行
输入账号密码
然后就出现下图:(如果正常跳过这步)
这是因为刚开始安装的是Gnome,所以系统默认使用它,现在要改成Xfce
最简单的方法就是把gnome的desktop文件备份移除
# cd /usr/share/xsessions
# mkdir bakmv gnome* ./bak
# systemctl restart lightdm
[root@localhost ~]# systemctl status lightdm.service
8.重新连接登录
一切正常操作之后就成功连接了,然后就可以快速便捷的工作了!
四、参考
http://blog.netsarang.com/89/connecting-to-centos-7/
http://blog.csdn.net/lic95/article/details/48948099
http://blog.csdn.net/wuzhimang/article/details/51523867