努力
加油

在服务器上如何安装和配置Ubuntu操作系统?

在服务器上部署 Ubuntu,通常分为两种主要场景:公有云实例(如阿里云、腾讯云、AWS等)和物理机/自建机房裸金属。两者的操作逻辑完全不同,前者是“选镜像”,后者是“装系统”。

下面我按这两种场景分别拆解,重点讲实操中容易踩坑的地方。


场景一:公有云服务器(最常见)

如果你是在买云服务器(ECS/CVM/EC2),你根本不需要像传统电脑那样去刻录光盘或制作U盘启动盘。云厂商已经帮你把底层虚拟化搞定了,你的核心动作是选择正确的镜像。

1. 创建实例时的关键选择

在购买流程的“镜像”步骤,不要随便选“通用型”或者“自定义镜像”,除非你有特殊需求。

  • 推荐版本:目前生产环境最稳的是 Ubuntu 22.04 LTS 或 24.04 LTS。LTS(长期支持版)意味着5年的安全更新,适合服务器稳定性要求高的场景。
  • 架构注意:确认你的 CPU 架构。如果是 Intel/AMD 芯片,选 amd64;如果是 AWS Graviton 或某些 ARM 服务器,必须选 arm64。选错架构会导致系统无法启动或软件兼容性问题。

2. 初始配置(SSH 密钥 vs 密码)

  • 强烈建议禁用密码登录,改用 SSH 密钥对。
    • 原因:密码容易被暴力破解,且通过控制台修改麻烦。
    • 操作:生成一对 RSA 或 Ed25519 密钥,私钥留在本地,公钥上传到云平台。后续用 ssh -i key.pem ubuntu@IP 连接。
  • 用户名:Ubuntu 默认用户是 ubuntu,不是 root。这是出于安全考虑,需要 sudo 权限时再提权。

3. 首次登录后的“必做清单”

拿到 IP 和密码(或密钥)后,第一件事不是装 Nginx,而是做基础加固:

# 1. 更新系统包(确保内核和安全补丁最新)
sudo apt update && sudo apt upgrade -y

# 2. 安装常用工具(视情况而定)
sudo apt install -y curl wget git htop net-tools ufw

# 3. 配置防火墙(云厂商通常有安全组,但本地 UFW 是最后一道防线)
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status verbose

# 4. 创建普通用户并赋予 sudo 权限(可选,如果只用 ubuntu 用户可跳过)
sudo adduser newuser
sudo usermod -aG sudo newuser

场景二:物理机/虚拟机手动安装(ISO 镜像)

这种情况常见于自建 IDC、开发测试环境,或者你需要从零开始搭建私有云。这时候才涉及真正的“安装过程”。

1. 准备工作

  • 下载 ISO:去 Ubuntu 官网下载 Server 版本的 ISO。千万别下 Desktop 版,GUI 界面会占用大量内存和 CPU,对服务器来说是资源浪费。
  • 制作启动介质:
    • 物理机:用 Rufus(Windows)或 Etcher 将 ISO 写入 U 盘。
    • 虚拟机(VMware/VirtualBox):直接挂载 ISO 文件即可。
  • 网络配置:确保服务器能访问网络,否则后续 apt install 会失败。

2. 安装过程关键点(Subiquity 安装器)

从 Ubuntu 18.04 开始,安装器变成了基于 Python 的 Subiquity,交互更友好,但也更“现代化”。

  • 键盘布局:默认 US,国内用户建议改成 cn 或保持 US 并在后续配置中文输入法。
  • 网络配置:
    • DHCP:简单,自动获取 IP。
    • Static IP(静态 IP):生产环境强烈推荐。点击网卡旁边的 Edit,改为 Manual,填入 IP、子网掩码、网关和 DNS(如 8.8.8.8 或 114.114.114.114)。动态 IP 重启后可能变化,导致服务失联。
  • 磁盘分区:
    • 新手:选 Guided - use entire disk and set up LVM。最简单,自动划分 /boot, /, swap 等。
    • 进阶:选 Custom storage layout。你可以手动控制 RAID、LVM 卷组大小,或者为 /var/log 单独分区以防日志写满拖垮系统。
  • Profile Selection:
    • 选 OpenSSH server。这是必须的,否则你没法远程连进去。
    • 其他如 Docker, Kubernetes 等按需勾选,不勾也可以后面自己装。
  • User Account:
    • 设置 root 密码(虽然平时不用 root,但恢复模式可能需要)。
    • 设置普通用户(如 admin),并设置密码。

3. 安装后配置

安装完成后重启,拔掉 U 盘。登录系统后,同样执行上面的“必做清单”:更新源、改 SSH 配置、开防火墙。


避坑指南 & 最佳实践

  1. 关于 Root 用户:

    • Ubuntu 默认禁止 root 直接 SSH 登录。如果你想直接用 root 登录,需要修改 /etc/ssh/sshd_config,将 PermitRootLogin prohibit-password 改为 yes,然后重启 sshd 服务。但这不安全,不建议在生产环境这样做。
  2. Swap 交换空间:

    • 小内存服务器(如 1GB 或以下)务必配置 Swap。安装时如果没分,可以事后加:
      sudo fallocate -l 2G /swapfile
      sudo chmod 600 /swapfile
      sudo mkswap /swapfile
      sudo swapon /swapfile
      # 永久生效需写入 /etc/fstab
      echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
  3. 时区与时间同步:

    • 服务器时间不准会导致日志混乱、SSL 证书验证失败等问题。
    • 检查命令:timedatectl status
    • 设置中国时区:sudo timedatectl set-timezone Asia/Shanghai
    • 确保 NTP 服务运行正常(Ubuntu 默认使用 systemd-timesyncd)。
  4. 清理无用服务:

    • 刚装好的 Ubuntu 可能自带一些不必要的服务,比如 snapd(Snap 包管理器,有时很慢且占资源)。如果不依赖 Snap,可以考虑禁用它:
      sudo systemctl disable --now snapd
      sudo systemctl mask snapd
  5. 备份策略:

    • 系统装好、配置好后,立即做一个快照(如果是云主机)或备份重要配置文件(/etc/ 下的内容)。这是成本最低的容灾手段。

总结

  • 上云:别折腾安装,选对 LTS 镜像,配好 SSH 密钥,做好基础加固。
  • 自建:用 Server ISO,设静态 IP,分好盘,装 SSH,同样做好加固。

记住,服务器的核心原则是:最小化原则(只装需要的东西)、安全性原则(禁用 root 登录、开防火墙)、自动化原则(能用脚本配置的别手动敲)。