努力
加油

如何将Ubuntu桌面版配置为轻量级服务器使用?

把 Ubuntu 桌面版(Desktop)改成服务器(Server)用,核心逻辑其实就两步:砍掉不需要的图形界面服务,以及开启远程管理通道。

很多人有个误区,觉得必须重装成 Server 版本才行。其实不然。Ubuntu Desktop 和 Server 在底层内核、包管理器上是一样的,区别主要在于预装的软件栈不同。只要你能 SSH 上去,它就是服务器。

以下是实操步骤,按优先级排序:

1. 第一步:确保 SSH 可用(最关键)

如果你现在只能坐在显示器前操作,那这步是必须的。如果已经配好了静态 IP 或者路由器端口映射,可以跳过,但建议先测试连通性。

# 安装 openssh-server
sudo apt update
sudo apt install openssh-server

# 启动并设置开机自启
sudo systemctl enable ssh
sudo systemctl start ssh

# 检查状态
sudo systemctl status ssh

注意:默认情况下,Ubuntu 桌面版的防火墙(UFW)可能未启用或配置不同。如果网络连不上,记得检查防火墙规则:

sudo ufw allow ssh
sudo ufw enable

2. 第二步:卸载/禁用图形界面(GNOME/KDE)

这是“变轻”的核心。桌面版最大的资源消耗就是 GUI 进程(Xorg/Wayland, GDM3, GNOME Shell 等)。

方案 A:彻底卸载(推荐,最干净)

# 卸载桌面环境核心组件
sudo apt remove --purge ubuntu-desktop gnome-shell gdm3

# 自动清理不再需要的依赖
sudo apt autoremove

# 重启后,系统应该会直接进入 TTY 命令行模式
sudo reboot

风险提醒: 卸载 gdm3 后,你将无法通过本地屏幕登录图形界面。如果你以后想恢复,需要重新安装 ubuntu-desktop。但在纯服务器场景下,这通常是好事。

方案 B:保留安装,仅禁用服务(可逆,适合不确定是否需要 GUI 的场景)

如果你不想删文件,只想让它不启动:

# 修改默认运行级别为多用户文本模式(相当于 Linux 的 runlevel 3)
sudo systemctl set-default multi-user.target

# 停止当前运行的图形显示管理器
sudo systemctl stop gdm3   # 如果是 KDE 则是 kdm 或 sddm

# 重启验证
sudo reboot

重启后,你应该看到黑底白字的登录提示符,而不是图形登录界面。此时 CPU 和内存占用会大幅下降。

3. 第三步:优化系统服务与资源

即使没有 GUI,后台仍有一些对服务器无用的服务在跑。

a. 关闭不必要的桌面相关服务

# 禁用蓝牙(除非你接了蓝牙设备)
sudo systemctl disable bluetooth

# 禁用打印服务(CUPS),除非你需要网络打印
sudo systemctl disable cups

# 禁用 Modem Manager(调制解调器管理,普通服务器不需要)
sudo systemctl disable modemmanager

b. 调整 Swappiness(可选)
服务器通常内存较大,希望尽可能使用 RAM 而非 Swap。

# 查看当前值
cat /proc/sys/vm/swappiness

# 临时修改为 10
sudo sysctl vm.swappiness=10

# 永久修改,编辑 /etc/sysctl.conf
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf

c. 禁用 AppArmor(谨慎操作)
AppArmor 提供强制访问控制,对安全性有益,但会增加少量开销。对于内网轻量级应用,可以考虑调松或禁用(生产环境不建议完全禁用,至少保持默认)。

# 如果只是测试,可以暂时停用
sudo systemctl stop apparmor
sudo systemctl disable apparmor

4. 第四步:安装常用服务器工具

既然已经是服务器了,装点该装的:

# 基础工具
sudo apt install htop net-tools curl wget git vim

# 如果需要 Web 服务
sudo apt install nginx apache2  # 二选一

# 如果需要数据库
sudo apt install mysql-server postgresql  # 二选一

# 如果需要 Docker(强烈推荐,隔离性好)
curl -fsSL https://get.docker.com | sh
sudo systemctl enable docker

5. 第五步:安全加固(必做)

从桌面变成服务器,意味着它可能暴露在网络上,安全策略必须升级。

a. 禁用 root 直接登录
编辑 /etc/ssh/sshd_config:

PermitRootLogin no
PasswordAuthentication no  # 强烈建议改用密钥登录
PubkeyAuthentication yes

然后重启 SSH:sudo systemctl restart ssh

b. 创建普通用户并赋予 sudo 权限
永远不要用 root 日常操作。

sudo adduser myuser
sudo usermod -aG sudo myuser

c. 配置 UFW 防火墙
只开放必要端口(如 22, 80, 443):

sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw enable

6. 常见问题与注意事项

  1. 键盘布局问题:
    进入 TTY 后,如果键盘布局不对(比如英文键位),可以安装 console-setup 并配置:

    sudo dpkg-reconfigure console-setup
  2. 字体乱码:
    TTY 下的中文字体支持有限。如果需要在终端显示中文,建议安装 fonts-wqy-microhei,但效果依然不如 GUI。建议在宿主机或通过 VS Code Remote 等方式进行中文交互。

  3. 更新机制:
    服务器建议关闭自动安全更新中的“重启”行为,避免意外宕机。
    编辑 /etc/apt/apt.conf.d/50unattended-upgrades,找到 Unattended-Upgrade::Automatic-Reboot,设为 false。

  4. 为什么不用 Server 版?

    • 优点:你已经有了桌面环境,调试方便(万一需要看日志、截图、临时起个浏览器查资料)。驱动兼容性更好(尤其是 NVIDIA 显卡、WiFi 网卡等)。
    • 缺点:初始镜像大,残留服务多,攻击面略大(因为装了更多软件)。

总结

将 Ubuntu Desktop 转为服务器的本质是:SSH + 无 GUI + 最小化服务。

只要你完成了 SSH 可达 和 GNOME 卸载/禁用,你的机器就已经具备了轻量级服务器的所有特征。剩下的就是根据业务需求安装具体应用即可。

记住:不要在生产环境中长期保留桌面环境,除非你有明确的运维需求。能用 CLI 解决的,绝不碰 GUI。