Linux服务器禁止图形化界面,最直接的方法是使用systemd命令将默认启动目标设置为multi-user.target,无需卸载任何组件,一条命令即可永久生效。
很多朋友第一次拿到带桌面的Linux服务器,第一反应是“真好看”,但用久了才发现,图形界面不仅吃内存,还时不时弹出更新提醒、崩溃弹窗,完全不像一台服务器该有的样子,行业共识认为,服务器追求的是稳定、高效、省资源,图形界面属于典型的华而不实,本文从实际操作出发,告诉你如何干净利落地关闭Linux服务器的图形化界面,并附上验证方法和恢复手段,适合正要优化生产环境的运维新手,也适合给公司服务器做日常瘦身的系统管理员。
linux服务器关闭图形化界面命令:两行代码搞定核心操作
既然要禁图形界面,就得先搞清楚Linux是怎么决定开机进什么的,现代主流发行版普遍使用systemd初始化系统,图形界面和命令行界面,本质上是两个不同的启动目标,你可以把“target”理解为启动模式,multi-user.target对应纯命令行多用户模式,graphical.target对应带图形界面的模式,开机默认进哪个模式,由一个软链接决定。
禁用图形化界面的标准操作如下:
systemctl set-default multi-user.target
这条命令的作用,是把默认启动目标从graphical.target切换成multi-user.target,执行完以后,下次重启服务器会直接进入命令行登录界面,不再加载桌面环境。
如果你想立即生效,不用等重启,再输入一条:
systemctl isolate multi-user.target
第二条命令是“现在就切换”,执行后桌面环境会立刻关闭,回到命令行登录页,需要注意的是,这条命令会终止当前图形会话,如果上面跑着未保存的GUI程序,数据可能会丢失,操作前自己掂量一下。
很多老教程还在教改/etc/inittab文件,那是SysVinit时代的老黄历了。 现在的CentOS 7以上、Ubuntu 15.04以上版本,统一使用systemd管理,改inittab基本不起作用,如果你手头正好有一台老旧的CentOS 6服务器,那才需要去编辑/etc/inittab,把“id:5:initdefault:”改成“id:3:initdefault:”,但这种情况现在已经很少见了。
重新强调一遍,核心就一句话:systemctl set-default multi-user.target,然后重启,图形界面就再也不会自动出现了。
ubuntu服务器如何关闭图形界面:不同发行版按细节调整
查看当前默认启动目标
在动手改之前,建议先看一眼当前状态,执行:
systemctl get-default
如果输出的是graphical.target,说明你现在的服务器确实默认进图形界面,如果输出的是multi-user.target,那它本来就是命令行模式,不用折腾。
Ubuntu的图形界面组件结构
Ubuntu服务器上常见的图形界面,要么是安装系统时选了带桌面的选项,要么是后续通过tasksel装了ubuntu-desktop,禁用思路是一样的,但卸载时组件的复杂性更高,如果你只是不想让它自动启动,执行上述systemctl命令就够了。
Ubuntu的判断逻辑和CentOS略有不同,Ubuntu在安装时默认不装桌面,但很多云服务商的镜像会预装,如果你用的是Ubuntu Server版,通常会看到一个低配的桌面环境,资源占用并不大。
按需关闭图形登录管理器
图形界面的大门,由显示管理器(Display Manager)把守,Ubuntu默认的显示管理器是lightdm或gdm3,如果你想在保留桌面环境的前提下,让服务器暂时不启动图形登录界面,也可以直接停掉显示管理器服务:
systemctl stop lightdm systemctl disable lightdm
这和切换target的效果略有差别,前一招是“从根上不进入图形模式”,后一招只是“让图形登录界面不启动”,但如果你手动startx,桌面仍然能起来,对于多数生产环境来说,用set-default更彻底。
恢复图形界面的方法
哪天你需要图形界面做演示或调试了,恢复也很简单:
systemctl set-default graphical.target systemctl start gdm3
如果是CentOS系列,第二条命令换成systemctl start gdm或systemctl start sddm,取决于你装的什么桌面。
彻底卸载图形界面:linux禁止图形界面启动影响性能吗?这看你怎么做
大部分情况下,你只需要禁用,不需要卸载。 但有些朋友喜欢追求极致干净,觉得桌面环境占了不少磁盘空间,想一卸了之,这里要泼一盆冷水:卸载图形界面时,依赖关系可能牵连到一些系统库,没搞清楚之前别乱删。
卸载CentOS/RHEL的GNOME桌面:
yum groupremove "GNOME Desktop"
如果你是用dnf的新系统,写法是:
dnf groupremove "GNOME Desktop"
Ubuntu/Debian系的卸载命令:
apt remove ubuntu-desktop apt autoremove
专业建议是:不推荐在生产服务器上彻底卸载桌面组件。 原因很简单,卸载并不总能显著降低资源占用,但升级系统或安装某些依赖GUI库的软件时,容易平白多出许多麻烦,保留着GNOME/KDE的组件,并不影响你把它禁用成纯命令行模式,何必为了爽一下把自己逼进死胡同。
Linux禁止图形界面启动影响性能吗?答案是:会,而且影响相当可观。 图形界面在后台会常驻至少1到2GB的内存占用(老式轻量桌面如XFCE会小一些),同时还会唤起dbus、polkit、账户服务等一堆进程,禁用后,内存占用会明显下降,CPU空载率也基本归零,输入free -h看到的可用内存会有非常大的变化,如果你用的是小内存VPS,效果尤其明显。
来看一个简单的对比表格:
| 状态 | 内存占用 | 启动耗时 | 维护成本 | 适用场景 |
|---|---|---|---|---|
| 带图形界面 | 较高 | 明显变长 | 高,常有弹窗和更新通知 | 桌面工作站 |
| 纯命令行 | 低 | 大幅缩短 | 极低,纯日志输出 | 生产服务器 |
| 禁用但保留组件 | 低 | 缩短 | 低,方便日后恢复 | 多数服务器 |
从源头阻止图形界面服务启动:display manager级控制
有一些特殊场景,你必须把图形界面服务楼下的看门狗也按住。什么是display manager?简单说,它负责显示登录窗口的守护进程。 常见的有gdm(GNOME桌面)、sddm(KDE桌面)、lightdm(轻量桌面),即使你设置了multi-user.target,某些应用或服务仍可能通过socket激活的方式,把图形组件拉起来,如果你想从服务层面彻底掐断:
systemctl mask gdm systemctl mask lightdm systemctl mask sddm
mask比disable更彻底。 disable只是阻止开机自启动,但别的进程仍可以手动启动它;mask相当于给它打了个封条,任何情况下都无法启动,连手动都不行,这一招适合对安全要求比较高、担心图形登录界面被恶意启用的环境。
不过也要留个心眼,mask之后想要恢复,得用unmask:
systemctl unmask gdm
否则你以后想临时开个图形界面,会发现怎么都拉不起来,还会莫名奇妙报错“Unit is masked”。
日常运维场景下基于SSH和VNC的图形远程访问替代方案
总有人问:我不想要图形界面,但偶尔想远程看看服务器的浏览器页面,或者做数据库图形管理,怎么办? 答案是X11转发或VNC。
无图形界面的远程工具配置,已经在业内沉淀出了一套标准用法:
- 用
ssh -X做X11转发,轻量又安全 - 用
xrdp配合Windows远程桌面连过去 - 在服务器上装一个VNC服务端,需要时手动启动
有个常见误区需要澄清:VNC不是图形界面,它只是一个远程显示协议。 服务器上如果没有桌面环境,VNC连上去也没有画面可看,很多部署了VNC的服务器,仍然默认运行在multi-user.target模式下,只是在需要时启动VNC服务并拉起对应的窗口管理器。Linux服务器无图形界面安装vnc,完全可行且性能很好,你自己装一个openbox或fluxbox这类轻量窗口管理器搭配使用就行。
对于长沙、武汉、成都这些城市的中小企业运维来说,日常处理服务器问题时,几乎没有直接操作图形界面的需求,绝大多数时间都是通过SSH远程终端处理,是否真的花时间把图形界面关了,主要看你买的是云服务器还是物理机,云服务器在购买时可以指定使用minimal镜像,直接省掉了后处理步骤。
禁用图形界面后必须做的验证检查
改完配置,别急着关机下班,你需要验证一下,图形界面是否真的被挡住了,按以下顺序检查:
- 查看当前默认target:
systemctl get-default
- 查看图形相关服务状态:
systemctl status gdm systemctl status lightdm
- 重启一次,确认系统能正常进命令行登录界面:
reboot
如果重启后卡在一个黑屏且只有一个光标闪烁,别慌,这是图形驱动加载异常或显示管理器没有完全停止的表现。用Ctrl+Alt+F2切换到另一个tty,登录后执行journalctl -xe查看日志,通常能定位到是显卡驱动还是服务的锅。 绝大多数情况下,报错来自gdm重复拉起dbus会话,把gdm服务mask掉即可恢复正常。
确认系统稳定运行后,日常维护就转变成纯命令行的模式:查询CPU、内存、磁盘、网络连接,全部在终端里完成,有经验的运维从来不在服务器上点来点去,键盘比你想象的快得多。
关于linux服务器关闭图形界面常见疑问解答
关闭图形化界面后,服务器的运行程序会受影响吗?
不会,Nginx、MySQL、Docker、Java应用等后台服务完全不依赖桌面环境,它们运行的层级在图形界面之下,关闭图形界面相当于去掉了上面那层“装饰”,对你的业务程序没有任何影响,唯一需要注意的是,如果你在图形界面里开启了某些GUI软件(比如浏览器、IDE),关闭图形界面会导致它们退出。
Linux服务器禁用图形界面后,还能用远程桌面工具连接吗?
可以,但需要先手动启动桌面相关的服务和显示管理器,Linux服务器初始化时不进入图形模式,只代表开机不会自动拉起桌面,不代表系统失去了显示能力,安装好VNC服务端以后,在需要时执行systemctl start vncserver@:1,远程桌面依旧可以正常使用,使用X11转发也是轻量级选择,ssh -X直接打开远程图形程序,在没有完整桌面的前提下也能胜任多数场景。
使用最小化安装的Linux还需要禁用图形界面吗?
不需要,最小化安装的服务器本身就不带图形界面组件,不存在需要禁用的目标,云服务商的控制台一般也提供VNC登录功能,用来处理网络配置出错或SSH无法连接的紧急情况,那是硬件层面的虚拟终端,不属于图形界面范畴。只有安装了桌面环境或者使用workstation版本的Linux,才需要执行禁用操作。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/786226.html


