13 10 月 2026

服务器用久了总会想重装:系统跑偏了、垃圾文件攒了几十 G、或者想换个更合适的系统版本。重装不可怕,可怕的是重装完发现存档/数据库/网站数据全没了。

这篇讲重装的完整流程:重装前怎么备份、怎么重装不丢数据、重装后怎么恢复。全程命令可抄。

需要云服务器可以看看财富云计算:支持快照和系统重装,NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上,一键开服面板,主流游戏快速部署。

一、先想清楚:要不要重装

重装是核弹级选项,先确认其他办法无效:

问题先试试这个,别急着重装
磁盘空间满了清日志、清缓存、du 找大文件
内存吃紧砍服务、加 Swap、调参数
某个服务配坏了单独重装那个服务
被入侵了先按应急流程排查,重装是最后手段
系统版本太老评估升级成本,能 apt upgrade 解决最好
就是想换个干净系统那确实该重装

一条原则:重装解决的是「系统层面的烂账」,配置层面的问题应该局部修。

二、重装前必做的备份清单

重装会清空系统盘(通常是 /),以下内容不在系统盘就不会丢,在系统盘就危险了:

1. 游戏服数据

# 找出所有游戏服目录
ls /opt/games/

# 逐个打包
tar -czf /data/games-backup.tar.gz /opt/games/

# 确认包含存档
tar -tzf /data/games-backup.tar.gz | grep -i save | head

2. 网站数据

# Nginx 配置
tar -czf /data/nginx-conf.tar.gz /etc/nginx/

# 网站目录(注意你的网站可能在 /home/wwwroot 或 /var/www)
tar -czf /data/wwwroot.tar.gz /home/wwwroot/

# 数据库(这是重灾区,单独打包)
mysqldump -u root -p --all-databases | gzip > /data/mysql-all-$(date +%F).sql.gz

# SSL 证书
tar -czf /data/ssl.tar.gz /etc/letsencrypt/ /etc/nginx/ssl/ 2>/dev/null

3. 关键配置与脚本

# crontab
crontab -l > /data/crontab.bak

# SSH 配置和密钥
tar -czf /data/ssh-conf.tar.gz /etc/ssh/ /root/.ssh/

# 防火墙规则
iptables-save > /data/iptables.rules
ufw status numbered > /data/ufw.rules 2>/dev/null

# 自定义脚本
tar -czf /data/scripts.tar.gz /opt/scripts/ /usr/local/bin/

4. 数据盘确认(最重要)

# 看挂载点,系统盘 / 重装会被清
df -h

# 如果 /data 是独立数据盘,重装后它还在(但需要重新挂载)
mount | grep /data

云服务器的重装逻辑:控制台「重装系统」一般只格式化系统盘,单独购买的数据盘会保留(但分区信息可能丢,要重新 mount)。买机器时把游戏服/网站放数据盘,重装就只是换个系统,数据不动。

三、外传备份(关键一步)

上面所有备份如果还在同一台机器上,重装系统盘没事,但如果误操作格了数据盘,或者想把机器退了,数据就没了。重要数据外传一份:

# 方法1: 下载到本地(适合几百 MB 以内)
# 用 scp 从你本地机器拉
scp root@服务器IP:/data/games-backup.tar.gz ./

# 方法2: 传对象存储(适合大文件)
coscmd upload -rs /data/ backup/before-reinstall/

# 方法3: 快照(最稳,控制台操作)

四、开始重装

控制台重装(推荐)

  1. 云厂商控制台 → 云服务器 → 更多 → 重装系统
  2. 选择新系统(推荐 Ubuntu 22.04 LTS 或 Debian 12,游戏服兼容性最好)
  3. 确认是否保留数据盘(有的厂商给选项,看清楚)
  4. 确认,等 3–5 分钟,会用新密码通过邮件/短信发你

重装时的三个选择

选项建议
系统版本游戏服选 Ubuntu 22.04 LTS;要新特性选 Debian 12
是否保留数据盘有数据盘就保留,这是命根子
密码重装后密码会变,用新的,顺手改掉默认的

五、重装后恢复:按顺序来

第一步:基础环境

# 更新系统
apt update && apt upgrade -y

# 装基础工具
apt install -y curl wget vim htop net-tools unzip tar

# 设时区(重装后时区可能变 UTC)
timedatectl set-timezone Asia/Shanghai

# 启用 NTP
timedatectl set-ntp true

第二步:挂载数据盘(如果有)

# 看盘
lsblk
fdisk -l

# 如果数据盘还在但没挂载
mkdir -p /data
mount /dev/vdb1 /data    # 设备名按实际

# 写入 fstab 开机自动挂
blkid /dev/vdb1           # 拿 UUID
echo 'UUID=你的UUID /data ext4 defaults 0 2' >> /etc/fstab

第三步:SSH 与安全

# 用密钥登录(重装后先传公钥)
mkdir -p /root/.ssh
echo "你的公钥内容" > /root/.ssh/authorized_keys
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys

# 改 SSH 端口、禁 root 密码登录
vim /etc/ssh/sshd_config
# Port 22222
# PasswordAuthentication no
systemctl restart sshd

第四步:恢复数据

# 游戏服
tar -xzf /data/games-backup.tar.gz -C /

# 网站
tar -xzf /data/wwwroot.tar.gz -C /

# 数据库
gunzip < /data/mysql-all-2026-10-13.sql.gz | mysql -u root -p

# 配置
tar -xzf /data/nginx-conf.tar.gz -C /
tar -xzf /data/ssl.tar.gz -C /

# 恢复 crontab
crontab /data/crontab.bak

第五步:装服务并验证

# 装 Nginx、PHP、MySQL 等(版本尽量和原来一致)
apt install -y nginx mysql-server php-fpm

# 启动所有服务,逐个验证
systemctl start nginx mysql php8.1-fpm
systemctl enable nginx mysql php8.1-fpm

# 网站能打开
curl -I http://localhost

# 游戏服能起
systemctl start palworld
ss -ulnp | grep 8211    # 端口在监听

六、NAT 型服务器特别注意

用 NAT 型云服务器(无独立公网 IP)的话,重装后有几件事和普通机器不同:

  1. IP 和映射端口会变。服务商给你的是「内网 IP + 网关端口映射」,重装系统后内网 IP 可能重新分配,原来设好的端口映射如果绑 IP 会失效,需要去控制台重新绑定。
  2. 游戏服配置里的 IP 引用要改。有些游戏配置里写了服务器 IP,重装后要同步更新。
  3. 防火墙规则全丢。云厂商控制台的「安全组」规则是绑定在实例上的,重装一般保留;但系统内的 iptables/ufw 规则会全没,要重新配。

重装完 NAT 机型的验证方法:让朋友从外网连一下游戏服,或者用 ss -uln 确认端口在监听 + 控制台看映射状态。

七、重装后检查清单

打勾式核对,一项都别漏:

  • [ ] 时区 Asia/Shanghai、NTP 同步正常
  • [ ] 数据盘已挂载,df -h 能看到
  • [ ] 游戏服/网站数据解压到位,权限正确
  • [ ] 数据库能连,数据条数对得上
  • [ ] crontab 已恢复
  • [ ] 防火墙规则已重建(ufw/iptables + 安全组)
  • [ ] SSH 密钥已传,密码登录已关
  • [ ] 监控已装(Netdata 或 Prometheus)
  • [ ] 外网能访问(网站能打开、游戏能进)
  • [ ] 备份脚本重新挂上,手动跑一次验证

八、常见问题

Q:重装后数据盘还在但打不开?
文件系统损坏或没挂载。fsck /dev/vdb1 修复,再挂载。重要数据先 dd 镜像备份再 fsck。

Q:重装后原来的数据库密码忘了?
MySQL 8 重置 root 密码:

systemctl stop mysql
mysqld_safe --skip-grant-tables &
mysql -u root
# 进入后
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

Q:能不重装换系统吗?
可以但不推荐。同一发行版内升级(如 Ubuntu 20.04 → 22.04)用 do-release-upgrade;跨发行版(CentOS → Ubuntu)还是重装干净。

Q:重装后游戏版本变了怎么办?
服务端版本和存档要匹配。先 SteamCMD 更新到原来版本,再放存档,或者先更新服务端再试读旧存档。

小结

重装系统三句话:备份要外传、数据盘要保留、恢复要按清单走。做到这三点,重装就是「十分钟换个新系统」的小事,而不是一次数据事故。

更多运维教程见财富云计算知识库:磁盘挂载扩容、备份策略、systemd 服务、防火墙配置全系列。需要云服务器可以看看财富云计算:一键开服面板,NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上,支持快照与系统重装。

延伸阅读
  1. 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
  2. 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
  3. 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
  4. 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
  5. 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
  6. RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
  7. 短链接服务搭建:Shlink 自托管,链接数据自己掌握
  8. 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道
更多阅读
  1. 上一篇:云服务器时区与 NTP 时间同步:日志不错乱、任务不跑偏
  2. 下一篇:云服务器迁移上云实操:换机器不丢数据、业务少中断
发表评论 2