Linux笔记之XDMCP配置
恰好遇到了服务器远程桌面的需求,记一篇笔记详细介绍一下XDMCP配置。
XDMCP配置主要是XDMCP Server配置、端口打开这两个部分。至于服务器上公网,我会再开一篇写一下。
友情提醒:配置生产用的服务器是务必小心,不熟悉、不自信的同学可以先用虚拟机练练手。
1 概述
首先简单地介绍一下目前的问题。
- 需要在局域网内访问服务器,并实现远程桌面。
- CentOS 7默认桌面为Gnome。虽说没什么问题,但是7开始的Gnome据说开始使用硬件加速,如果使用XDMCP协议来远程与gdm会有冲突,会出现奇奇怪怪的问题,Xmanager官方提到了这个问题,建议更换显示管理(display manager)和桌面环境(desktop environment)。
这里顺嘴说一下CentOS的版本。下面我是用的是CentOS 7的虚拟机,没有使用CentOS 8。原因嘛,大家可以看一下CentOS官网下载页面看一下这两个版本的支持时间。CentOS之前明明说好了对CentOS 8有10年支持的,结果RedHat为了推CentOS Stream就把CentOS 8在今年(2021年)年底提前结束了。这个博客还跑在CentOS 8上面,就挺难受的。
2 更换镜像源
众所周知啊,CentOS的服务器经常因为一些问题访问非常缓慢,下载速度堪忧。所以,更换镜像源是非常直接的解决方案。目前推荐使用清华TUNA或者北外BFSU(广度优先搜索大学)的镜像。当然用阿里或者华为的也不是不行。
更换镜像源指令很简单,共两个,依次执行就可以。当然,你的账号需要有或者通过sudo可以拿到root的权限,直接使用root账号的可以忽略sudo,下同
1 | sudo sed -e 's|^mirrorlist=|#mirrorlist=|g' \ |
如果之前对于镜像源进行过更改,还需要检查一下修改过的镜像源文件是否启用,再执行makecache。
这部分内容参考了TUNA的CentOS镜像使用帮助。
3 更换display manager和desktop environment
display manager更换为lightdm,不再使用gdm;desktop environment可以使用MATE desktop、Xfce、KDE等等。MATE desktop是基于Gnome 2.x的桌面环境,资源占用极小。
- 安装EPEL(Extra Package for Enterprise Linux),这是Fedora Special Interest Group维护的Enterprise Linux(RHEL、CentOS)中常用的包。
1 | sudo yum install epel-release |
- 安装lightdm。
1 | sudo yum install lightdm |
- 安装X Windows System。
1 | sudo yum groups mark convert "X Window system" |
接下来展示的桌面环境安装只需要选择一个,反正我就用META了。当然都选了我也不知道,你开心就好
- META desktop安装。
1 | sudo yum groups mark convert "MATE Desktop" |
- Xfce安装。
1 | sudo yum groupinstall xfce |
3.1使用lightdm配置XDMCP Server
通过vim打开lightdm配置文件。
1 | sudo vim /etc/lightdm/lightdm.conf |
在文件中找到[XDMCPServer]
,修改其下方被注释的代码。
1 | ··· |
3.2 配置lightdm为默认桌面环境
切换display
manager为lightdm。init 3
是将系统的运行切换为命令行,同时,如果是图形界面执行该命令,需要重新登录一下系统再继续下一步;init 5
是将系统的运行再次切换到UI桌面。
1 | sudo systemctl disable gdm && systemctl enable lightdm |
这时我们第二次重新登录后,就进入了META desktop了。
接着,还需要讲META设置为默认桌面环境。
1 | cd /usr/share/xsessions/ && ls |
4 打开177端口
XDMCP默认的端口是177端口,可以在lightdm配置文件根据需求中更改。系统默认是不会放开177端口的,需要进一步配置。
另外,为了测试端口是否可用,需要实现准备可以ping端口的程序。Linux环境可以安装telnet;Windows环境建议使用tcping,使用时务必在程序所在文件夹中打开终端执行命令。
1 | telnet Ping 192.168.58.130的177端口 |
好,接下来解决端口开放问题。
防火墙设置部分。
1 | 配置防火墙,将177端口永久开放给所有用户 |
端口监听部分。
1 | 配置177端口tcp协议永久监听 |
CentOS部分的端口配置基本结束,接下来就用telnet或者tcping来ping服务器的177端口。
你以为这么简单就结束了? :&(蛆音娘_摊手)
一旦SSH连接断开或系统重启当然生产用的服务器没有特殊情况是不会重启的,监听就自动结束了。这时候有两个解决方案了。
4.1 方案一:使用tmux,针对不重启的系统
tmux可以实现终端复用,即使表面上终端结束了,但是跑在tmux中的指令不会就此结束,非常适合目前的需求。
1 | 安装tmux |
下图是我关闭终端后进行的测试(测试端口178),可以满足目标需求。
4.2 方案二:配置自启动
这是我最开始想到的方案,只适用于个人使用的、没有重启限制的服务器。
1 | 新建需要自启动的文件 |
在文件中编写以下内容,用:wq
保存并关闭。
1 | !/bin/sh |
然后进行自启动配置。
1 | cp listen177.sh /etc/rc.d/init.d/ |
到此,端口监听才全部结束。上面两种方案就看自己的需求选取吧。
5 XDMCP客户端
这里就是各显神通的地方了。
Windows端当然是推荐Xmanager,macOS可以使用XQuartz。我就放一下我自己的Xmanager效果图。
总结
XDMCP配置到此结束,希望有需求的各位同学能有点收获吧。
最后,预告一下服务器挂上公网的笔记。只要我的宽带不是传说的虚拟IP
最后的最后,日常求一键三连收藏分享。 :@(击掌)