0. 前言
- 基本概念 from vbrid
-
簡略概述
-
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)
-
1. 問題描述
- CentOS7中的GNOME啓用了本地硬件加速功能,所以通過XDMCP協議遠程連接CentOS時會有問題。這個在X Manager官網博客中已提及,並建議使用其他的display manager(
如lightdm等
)和desktop environment(Xfce或KDE等
)來規避該問題 - 在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
之類的錯誤,如圖
2. 安裝使用步驟(以lightdm和xfce爲例)
2.1 安裝&啓動
# 安裝epel源
[root@gf03 ~]# yum install -y epel-release
# 安裝lightdm和Xfce
[root@gf03 ~]# yum install -y lightdm && yum groupinstall -y xfce
# 修改lightdm.conf文件(配置文件中有詳細的參數說明)
[root@gf03 ~]# vim /etc/lightdm/lightdm.conf
...
[XDMCPServer]
enabled=true
port=177
...
# 將Display Manager切換爲lightdm
[root@gf03 ~]# systemctl disable gdm && systemctl enable lightdm
# 啓動lightdm
[root@gf03 ~]# systemctl start lightdm
# 關閉或者取消防火牆(若已關閉則忽略)
[root@gf03 ~]# systemctl stop firewalld.service
2.3 使用&問題排除
windows下通過xmanager連接centos7後,若出現問題可參考如下進行排除
systemctl status lightdm
查看lightdm的啓動狀態, 若有狀態問題,請先重啓圖形界面init 3 && init 5
再查看- 通過'pstree'命令查看lightdm的詳細調用情況(如下圖,lightdm後面還是調用
gnome-session
而不是xfce
),1節中的2問題就是通過如下方式排除並解決的 ...
├─lightdm─┬─X───32*[{X}]
│ ├─lightdm─┬─lightdm-gtk-gre───2*[{lightdm-gtk-gre}]
│ │ └─{lightdm}
│ ├─lightdm
│ ├─2*[lightdm─┬─gnome-session───ssh-agent]
│ │ └─{lightdm}]
│ └─2*[{lightdm}]
...
出現上述問題2是因爲系統默認的將最先安裝的Environment Desktop作爲啓動桌面,而最開始安裝的是GNOME,故lightdm也調用gnome-seesion了,進而出現錯誤,所以最根本的解決方法是告訴系統默認啓動xfce.desktop
(可參考change the default session)
最簡單的解決方法如下:
# 只保留/usr/share/xsessions/下xfce.desktop文件
[root@gf03 ~]# cd /usr/share/xsessions/ && ls
gnome-classic.desktop gnome-custom-session.desktop gnome.desktop xfce.desktop
[root@gf03 xsessions]# mkdir back && mv gnome* back && ls
back xfce.desktop
# 重新啓動圖形桌面(也可通過systemctl重新啓動)
[root@gf03 xsessions]# init 3 && init 5
- pstree #如果
lightdm沒有使用xfce session 就reboot重啓一下
reboot
啓動成功的界面如下
3. 若還出現其他問題,可查看Xmanager 日誌進行分析,不過最保險的辦法是——先更新Xmanager,本人的版本是Xbrowser for Xmanager Enterprise 4 (Build 0243)
4. 出現權限類的問題,可先關閉SELinux
- 查看selinux狀態
sestatus
- 臨時關閉
setenforce 0
- 永久關閉 --> 修改配置文件/etc/selinux/config,將SELINU置爲
disabled
3. 其他
-
CentOS6下可直接使用gdm通過XDMCP來遠程連接,一般步驟如下
- 通過
yum groupinstall
安裝系列軟件,如yum groupinstall "Desktop" "X Window System"
-
修改gdm配置文件,/etc/gdm/custom.conf,在這個文件中,以節的形式組織各類配置參數,節名用中括號[]包圍起來,如[security]、[xdmcp]等,要支持遠程連接,需要在配置文件中增加以下內容:
[security] #允許用root用戶進行遠程連接 AllowRemoteRoot=true [xdmcp] #啓動遠程連接服務支持 Enable=true #服務端口 Port=177
-
啓動服務(
init 3 && init 5
)
- 通過