从安装到生产就绪:给你的Ubuntu 22.04 Server虚拟机做完这5件事
刚完成Ubuntu Server安装的虚拟机就像毛坯房——能住人,但离舒适居住还差得远。作为开发者或运维工程师,我们需要的不是"能用"的系统,而是经过精心调校的生产环境。本文将带你完成五个关键配置步骤,让你的Ubuntu 22.04 Server虚拟机真正具备生产环境所需的可靠性、安全性和便利性。
1. SSH安全加固:第一道防线
SSH是通往服务器的门户,默认配置存在严重安全隐患。我们不仅要修改默认端口,更要彻底禁用密码登录。
密钥认证配置步骤:
本地生成密钥对(如果已有可跳过):
ssh-keygen -t ed25519 -C "your_email@example.com"将公钥上传至服务器:
ssh-copy-id -p 22 -i ~/.ssh/id_ed25519.pub username@server_ip服务器端关键配置(
/etc/ssh/sshd_config):Port 2222 # 修改默认SSH端口 PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes重启SSH服务前务必保持现有连接:
sudo systemctl restart sshd
重要提醒:修改SSH端口后,需确保防火墙放行新端口。使用
sudo ufw allow 2222命令开启端口,并通过sudo ufw enable启用防火墙。
2. 软件源优化:加速你的APT宇宙
Ubuntu默认源在国内访问缓慢,更换镜像源可提升10倍以上的下载速度。但直接替换源文件存在风险,正确的做法是:
镜像源更换最佳实践:
备份原始源文件:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak使用sed命令快速替换为中科大源:
sudo sed -i 's|http://.*archive.ubuntu.com|https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list sudo sed -i 's|http://.*security.ubuntu.com|https://mirrors.ustc.edu.cn|g' /etc/apt/sources.list更新软件包索引:
sudo apt update && sudo apt upgrade -y
主流国内源对比:
| 镜像源 | 地址 | 更新频率 | 特点 |
|---|---|---|---|
| 中科大 | mirrors.ustc.edu.cn | 每2小时 | 学术机构运营,稳定性高 |
| 阿里云 | mirrors.aliyun.com | 实时同步 | 商业运营,下载速度快 |
| 清华 | mirrors.tuna.tsinghua.edu.cn | 每4小时 | 教育网优化 |
3. 基础工具武装:开发者的瑞士军刀
最小化安装的Ubuntu Server缺少许多实用工具,这些是提升效率的关键:
必备工具安装清单:
网络诊断套装:
sudo apt install -y net-tools traceroute tcpdump文本处理三剑客:
sudo apt install -y vim git curl wget系统监控工具:
sudo apt install -y htop iotop iftop
对于Python开发者,建议额外安装:
sudo apt install -y python3-pip python3-venv pip3 install --upgrade pip4. Docker环境搭建:容器化第一步
现代应用部署离不开容器化,Ubuntu上安装Docker只需几条命令:
官方推荐安装方式:
# 卸载旧版本 sudo apt remove docker docker-engine docker.io containerd runc # 设置仓库 sudo apt install -y ca-certificates curl gnupg sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg # 添加源 echo \ "deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ "$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \ sudo tee /etc/apt/sources.list.d/docker.list > /dev/null # 安装Docker引擎 sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 验证安装 sudo docker run hello-world非root用户使用Docker:
sudo usermod -aG docker $USER newgrp docker # 立即生效无需注销5. 备份策略:你的系统时光机
虚拟机快照不是备份方案,真正的备份需要系统化策略:
多层次备份方案:
系统级快照(使用LVM或btrfs):
# 创建LVM快照 sudo lvcreate -s -n snap_root -L 5G /dev/ubuntu-vg/root关键配置文件备份(使用etckeeper):
sudo apt install -y etckeeper sudo etckeeper init sudo etckeeper commit "Initial commit"自动化备份脚本示例(每日凌晨执行):
#!/bin/bash BACKUP_DIR="/backups/$(date +%Y%m%d)" mkdir -p $BACKUP_DIR # 备份重要目录 tar -czf $BACKUP_DIR/etc.tar.gz /etc tar -czf $BACKUP_DIR/home.tar.gz /home tar -czf $BACKUP_DIR/var-www.tar.gz /var/www # 备份数据库(如有) mysqldump -u root -pPASSWORD --all-databases > $BACKUP_DIR/mysql.sql # 保留最近7天备份 find /backups -type d -mtime +7 -exec rm -rf {} \;
专业提示:将备份脚本加入cron定时任务:
0 3 * * * /path/to/backup.sh
完成这五项配置后,你的Ubuntu Server虚拟机已经脱胎换骨。我在多个生产环境中实践这套配置组合,特别是在Kubernetes学习环境中,稳定的基础系统让后续的容器编排实验事半功倍。记住,好的开始是成功的一半——在系统初始阶段多花一小时做好基础配置,能避免后续数十小时的故障排查时间。