在云服务器上安装 CentOS、Ubuntu 或 Debian 等 Linux 发行版时,通常无需用户手动“安装”操作系统(如传统物理机那样从 ISO 引导安装),而是通过云平台提供的镜像(Image)一键部署。因此,所谓“安装”的注意事项,实际聚焦于 镜像选择、初始化配置、安全加固和云环境适配 等关键环节。以下是分维度的实用注意事项:
✅ 一、镜像选择:优先使用云平台官方/认证镜像
| 发行版 | 推荐做法 | 注意事项 |
|---|---|---|
| CentOS | ❗慎选 CentOS 7(EOL 已至 2024-06-30),避免使用 CentOS 8(已提前终止) ✅ 推荐迁移到 Rocky Linux / AlmaLinux(RHEL 兼容替代) 或 CentOS Stream(滚动开发流,非稳定生产首选) |
不要自行上传未签名 CentOS ISO;云厂商镜像可能含定制内核/驱动(如 Alibaba Cloud Kernel),需确认兼容性 |
| Ubuntu | ✅ 优先选用 LTS 版本(如 22.04 LTS、24.04 LTS),长期支持(5年)+ 官方安全更新 ⚠️ 避免非 LTS 版本(如 23.10)用于生产 |
检查云平台是否提供 ubuntu-minimal(更轻量)或 ubuntu-pro(含扩展安全补丁)镜像 |
| Debian | ✅ 推荐 stable 分支(如 Debian 12 "Bookworm") ⚠️ 避免 testing/unstable(不稳定) |
Debian 镜像默认精简,部分云平台会预装 cloud-init 和 qemu-guest-agent,务必确认 |
🔹 通用建议:
- 选择镜像时勾选 “启用 cloud-init”(几乎所有主流云平台默认开启)——这是实现首次启动自动配置(SSH密钥注入、主机名、网络、用户数据等)的核心组件。
- 优先选用云厂商官方维护镜像(如阿里云“公共镜像”、腾讯云“官方镜像”、AWS AMI、Azure Marketplace 镜像),而非社区或自建镜像,确保内核适配虚拟化(KVM/Xen)、网卡驱动(e1000/virtio)、块设备(virtio-blk)等。
✅ 二、部署前的关键配置项
| 项目 | 推荐操作 | 原因 |
|---|---|---|
| SSH 密钥对 | ✅ 强制使用 SSH 密钥登录,禁用密码认证 • 创建密钥对( ssh-keygen -t ed25519)• 在云平台控制台绑定公钥 → 自动注入到 /root/.ssh/authorized_keys |
防暴力破解;密钥比密码更安全;cloud-init 自动完成注入 |
| 安全组/防火墙 | 🔒 最小权限原则开放端口: • 仅放行:22(SSH)、80/443(Web)、必要业务端口 • 禁止开放 22 端口给 0.0.0.0/0(建议限制 IP 段或使用跳板机) |
云服务器公网暴露风险极高,首道防线必须严控 |
| 实例规格与磁盘 | 💾 根分区建议 ≥ 40GB(尤其 Ubuntu/Debian 默认占用较大) • 系统盘选 SSD/ESSD(性能稳定) • 如需大容量存储,单独挂载数据盘(格式化为 ext4/xfs)并挂载到 /data 等目录 |
避免系统盘爆满导致服务异常;云盘 IOPS/吞吐需匹配业务负载 |
| 区域与可用区 | 🌐 选择离用户/业务最近的地域(降低延迟) • 生产环境建议跨可用区部署(高可用) |
网络延迟影响显著;单可用区故障会导致服务中断 |
✅ 三、首次登录后必做的安全与优化操作
# 1. 更新系统(Ubuntu/Debian)
sudo apt update && sudo apt upgrade -y
# 2. 更新系统(Rocky/Alma/CentOS Stream)
sudo dnf update -y # 或 yum update -y(旧版)
# 3. 创建普通用户 + 赋予 sudo 权限(禁止 root 直接 SSH)
sudo adduser deploy
sudo usermod -aG wheel deploy # RHEL系(Rocky/Alma)
sudo usermod -aG sudo deploy # Ubuntu/Debian
# 4. 禁用 root SSH 登录(编辑 /etc/ssh/sshd_config)
PermitRootLogin no
PasswordAuthentication no # 确保已配置密钥登录后再启用此项!
sudo systemctl restart sshd
# 5. 启用并配置 UFW(Ubuntu/Debian)或 firewalld(RHEL系)
sudo ufw allow OpenSSH && sudo ufw enable
# 或
sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload
# 6. 检查 cloud-init 是否成功运行
sudo cloud-init status --long # 应显示 'status: done'
ls -l /var/lib/cloud/instances/*/sem/config_* # 查看各模块执行状态
✅ 四、云环境特有注意事项
| 场景 | 建议 |
|---|---|
| 网络配置 | ❌ 不要手动修改 /etc/network/interfaces 或 nmcli 配置网络✅ 云平台通过 cloud-init + dhclient 或 systemd-networkd 动态管理网卡(尤其多网卡、弹性IP场景)• 若需静态IP,请在云控制台绑定弹性公网IP或配置私有网络子网路由 |
| 时间同步 | ✅ 确保 systemd-timesyncd 或 chrony 运行(云平台通常已预装)timedatectl status 检查是否启用 NTP,避免时间漂移影响 SSL/TLS、数据库事务等 |
| 内核与驱动 | ✅ 云镜像已启用 virtio 驱动(高性能虚拟化 I/O)• 不要随意更换内核(除非明确需要新特性) • 避免安装 dkms + 闭源驱动(云环境无需 NVIDIA/AMD GPU 驱动) |
| 日志与监控 | ✅ 启用云平台 Agent(如阿里云 aliyun-service、腾讯云 tencent-monitor-agent)获取 CPU/内存/磁盘监控• 日志建议集中采集(如 ELK / Loki + Promtail)而非仅依赖本地 /var/log |
| 备份策略 | 💾 必须开启云盘快照(Snapshot)策略(每日/每周自动快照) • 快照 ≠ 备份!重要数据需额外异地备份(如对象存储 OSS/COS) |
⚠️ 特别提醒(避坑清单)
- ❌ 不要在云服务器上启用 SELinux(RHEL系)或 AppArmor(Ubuntu)未经充分测试——云环境复杂策略易导致服务启动失败(如 Docker、Nginx、数据库)。
- ❌ 不要卸载
cloud-init(即使不用其功能)——它参与元数据获取、SSH密钥注入、主机名设置等,卸载可能导致实例无法正常初始化。 - ❌ 不要直接
dd或rsync整盘克隆云服务器——云平台绑定 MAC/IP/元数据,克隆后易引发网络冲突、授权失效。 - ✅ 推荐使用 基础设施即代码(IaC):Terraform + Ansible 自动化部署,确保环境一致、可复现、可审计。
✅ 总结:最佳实践口诀
选镜像,认官方;密钥登,禁密码;
安全组,最小开;首登录,速加固;
信 cloud-init,勿动网卡;
快照常备,日志上云;
自动化,是王道。
如需针对某家云厂商(如阿里云/腾讯云/AWS)或具体场景(如部署 Docker/K8s/数据库)的详细步骤,欢迎补充说明,我可提供定制化 checklist 或脚本模板。
CLOUD云枢