在云服务器上安装 CentOS、Ubuntu 或 Debian 等 Linux 发行版时,需注意以下关键事项(涵盖选型、安装、安全、运维及云平台适配等方面):
一、安装前注意事项(选型与准备)
-
明确发行版生命周期与支持状态
- ❗ CentOS 8 已于 2021-12-31 停止维护;CentOS Stream 是滚动发布的上游开发分支(非稳定版),不建议用于生产环境。
- ✅ 推荐替代方案:
- Rocky Linux 或 AlmaLinux(100% 兼容 RHEL 的 CentOS 替代品,长期支持至 2029+)
- Ubuntu LTS(如 22.04/24.04,5年标准支持 + 可选 ESM 扩展至10年)
- Debian Stable(如 Debian 12 "Bookworm",5年支持,以稳定性著称)
-
确认云平台兼容性
- 各厂商(阿里云、腾讯云、AWS、华为云等)提供预装镜像(官方认证),优先选用其控制台提供的「公共镜像」或「镜像市场」中的优化版(含云内核、virtio 驱动、cloud-init 支持)。
- 避免自行上传 ISO 重装(易缺失云平台特有驱动/服务,导致网络/磁盘不可用、无法注入 SSH 密钥等)。
-
选择合适架构与版本
- x86_64(主流) vs ARM64(如 AWS Graviton、华为鲲鹏):确保所选系统提供对应架构的完整软件包和内核支持。
- 最小化安装(Minimal / Server)优于 Desktop 版本(减少攻击面、节省资源、提升性能)。
二、安装过程关键点
-
使用 cloud-init 自动初始化(强烈推荐)
- 确保镜像启用
cloud-init(所有主流云平台默认支持),可自动完成:- SSH 密钥注入(避免密码登录)
- 主机名、时区、语言设置
- 用户创建与 sudo 权限配置
- 网络配置(DHCP/静态 IP,取决于云平台元数据服务)
- ✅ 检查:
systemctl is-enabled cloud-init应为enabled
- 确保镜像启用
-
磁盘分区策略
- 云服务器通常使用单块系统盘(如 /dev/vda),无需复杂 LVM(除非业务强依赖)。
- 建议:
/根分区(≥20GB,建议 40GB+,预留日志/升级空间)/boot(若使用 UEFI,需 ESP 分区;传统 BIOS 可合并到/)- 不单独划分
/home(云服务器多为无状态部署,用户数据应存于独立云盘或对象存储) - 数据盘(如
/data)务必挂载后格式化并设置nofail(防止启动失败)
-
网络配置
- 云平台通常通过 DHCP + 元数据服务(如
http://169.254.169.254)自动配置网络,切勿手动修改/etc/network/interfaces或NetworkManager配置(可能覆盖云平台管理逻辑)。 - 如需静态 IP,应通过云控制台绑定弹性公网 IP 或配置私有网络子网路由,而非系统内硬编码。
- 云平台通常通过 DHCP + 元数据服务(如
三、安装后必做安全与优化项
| 类别 | 操作 | 说明 |
|---|---|---|
| 🔐 基础安全 | sudo apt update && sudo apt upgrade -y(Ubuntu/Debian)sudo dnf update -y(RHEL/Rocky/Alma) |
升级内核及关键安全补丁(尤其修复 CVE-2023-XXXX 类漏洞) |
禁用 root 远程登录:PermitRootLogin no in /etc/ssh/sshd_config |
强制使用普通用户 + sudo |
|
启用防火墙:sudo ufw enable(Ubuntu/Debian)sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload(RHEL系) |
默认仅放行必要端口(如 22、80、443) | |
| ⚙️ 系统优化 | 关闭 SELinux(RHEL系)或 AppArmor(Ubuntu)?→ 生产环境建议保持开启并正确配置,而非直接禁用 | 提升安全边界,但需学习策略规则 |
时区与时间同步:sudo timedatectl set-timezone Asia/Shanghaisudo systemctl enable --now systemd-timesyncd(或 chrony) |
防止证书过期、日志时间错乱 | |
| 📦 软件源优化 | 替换为国内镜像源(如阿里云、清华源): Ubuntu: /etc/apt/sources.listRHEL: /etc/yum.repos.d/*.repo |
提速软件安装与更新 |
| 💾 日志与监控 | 配置 logrotate(避免 /var/log 帐满)安装 htop, iotop, nethogs 等诊断工具 |
便于问题排查 |
四、云平台特有注意事项
-
实例元数据访问权限
某些应用(如自动获取实例 ID、Region、标签)需访问http://169.254.169.254。确保防火墙未拦截该地址(它属于链路本地地址,不应被网络路由)。 -
云盘挂载与持久化
- 系统盘(/dev/vda)随实例销毁而释放;数据盘(/dev/vdb 等)需手动挂载且设置
/etc/fstab。 - 推荐使用 UUID 或 LABEL 挂载(
blkid查看),避免设备名变化(如重启后/dev/vdb→/dev/vdc)。
- 系统盘(/dev/vda)随实例销毁而释放;数据盘(/dev/vdb 等)需手动挂载且设置
-
快照与备份策略
- 系统盘快照 ≠ 完整备份!需结合应用层一致性(如 MySQL 要
FLUSH TABLES WITH READ LOCK后快照)。 - 敏感数据(数据库、配置文件)建议定期导出至对象存储(OSS/S3)。
- 系统盘快照 ≠ 完整备份!需结合应用层一致性(如 MySQL 要
-
实例终止保护
在云控制台启用「删除保护」,防止误操作销毁实例。
五、其他实用建议
- ✅ 使用 SSH 密钥对 登录,禁用密码认证(
PasswordAuthentication no) - ✅ 配置
fail2ban防暴力破解 SSH - ✅ 对 Web 服务启用 HTTPS(Let’s Encrypt + certbot 自动续签)
- ✅ 生产环境禁用
root账户,创建专属管理用户(如admin)并加入sudo组 - ✅ 记录初始化脚本(Ansible/Terraform),实现环境可复现、可审计
✅ 总结一句话最佳实践:
优先选用云厂商提供的、已预装 cloud-init 和优化内核的官方 LTS 镜像;安装后立即升级、加固 SSH、配置防火墙、替换国内源,并将数据与系统分离管理。
如需具体某云平台(如阿里云 ECS 安装 Rocky Linux)或某场景(如 Docker 环境初始化)的详细步骤,欢迎补充说明,我可提供分步命令清单 👍
CLOUD技术博