新买的机器给你装了个 CentOS 7,面板预装了一堆用不上的东西,或者你想把 Ubuntu 换成 Debian —— 这些情况下都要重装系统。
大多数厂商后台有"重装系统"按钮,点一下就行。但你会遇到三种按钮解决不了的情况:镜像列表里没有你要的版本、重装完网络起不来、或者干脆连后台都没有重装选项。这篇讲清楚三条路线怎么选、DD 之前必须确认什么、以及装完之后第一件该做的事。
先说最重要的一句:重装会清空整块系统盘,数据不会有任何提示地消失。 后面每一节都默认你已经备份过了。
| 方式 | 适用场景 | 风险 | 耗时 |
|---|---|---|---|
| 厂商面板重装 | 目标系统在镜像列表里 | 低,失败了再重装一次 | 3-10 分钟 |
| 一键脚本(reinstall) | 要装面板里没有的发行版/版本 | 中,网络配置可能出错 | 10-20 分钟 |
| DD 镜像 | 要装 Windows、定制镜像、或前两种都失败 | 高,容易变砖只能开工单 | 20-60 分钟 |
能用面板就别用脚本,能用脚本就别 DD。 每往下一级,出问题后自救的难度都陡增一档。
判断标准很简单:先去后台看镜像列表,有你要的就直接点。没有再往下考虑。
这五条是按"出事后有多难受"排的,别跳过。
1. 确认你有控制台(VNC / KVM / Console)
这是最关键的一条。重装之后如果网络起不来、SSH 连不上,控制台是你唯一的入口。没有控制台的机器,不要跑 DD 脚本 —— 一旦失败,你只能开工单求厂商救援,运气不好就是几天。
去后台找 "VNC"、"Console"、"Remote Console"、"noVNC" 这类入口,现在就点开试一次,确认能看到当前系统的登录界面。不要等出事了才发现这个功能要单独开通或者根本没有。
2. 备份数据
系统盘会被整块覆盖。网站文件、数据库、配置文件、SSL 证书、SSH 密钥,全都会没。
# 打包关键目录
tar czf /tmp/backup-$(date +%F).tar.gz \
/etc/nginx /etc/letsencrypt /var/www /root/.ssh
# 数据库单独导
mysqldump -u root -p --all-databases > /tmp/all-db.sql
# 或 PostgreSQL
sudo -u postgres pg_dumpall > /tmp/all-db.sql
然后下载到本地或传到别的机器。留在这台机器上等于没备份。
备份要验证过能恢复才算数,做法见 VPS 备份恢复演练。如果只是想换个环境而不丢数据,那你要的可能是 VPS 迁移 而不是重装。
3. 记下网络配置
有些机器(尤其是欧洲的独服和部分 KVM)用的是静态 IP,不是 DHCP。重装后如果脚本没正确配置网络,你需要手动在控制台里敲回去:
ip addr show
ip route show
cat /etc/resolv.conf
把 IP、子网掩码、网关、DNS 抄下来存到本地文本文件里。IPv6 也一并记上,配置方式见 IPv6 VPS 配置指南。
4. 准备好 SSH 公钥
重装后大概率要用密码登录一次,然后立刻换成密钥。先把公钥内容复制到手边:
cat ~/.ssh/id_ed25519.pub
没有就现在生成一个:ssh-keygen -t ed25519 -C "your@email"。
5. 确认这台机器值得重装
如果机器是因为被入侵才要重装,先别急着动手 —— 重装会毁掉所有证据,你会永远不知道对方是怎么进来的、有没有留后门在其他机器上。处置顺序见 VPS 被入侵后的 24 小时处置清单。
最省事,也最安全。不同厂商叫法不一样:
- Racknerd 和大部分 SolusVM 面板:Reinstall 或 Rebuild
- Vultr:Server → Settings → Reinstall Server
- 搬瓦工(KiwiVM):Install new OS
- DigitalOcean:Destroy → Rebuild Droplet
点之前确认两件事:选对系统版本,以及看清楚新密码显示在哪里(有的直接显示在页面上,有的发邮件,有的要去"消息"里看)。
重装完等 3-5 分钟再连。太早连会遇到 Connection refused,那只是 sshd 还没起来,不是失败。
有两个细节值得注意:
- 旧的 SSH 主机密钥变了,本地再连会报
REMOTE HOST IDENTIFICATION HAS CHANGED。这是正常的,执行ssh-keygen -R 你的IP清掉旧记录即可。但如果你并没有重装却突然看到这个警告,那就要当成安全事件处理。 - 云镜像大多带 cloud-init,它在首次启动时接管主机名、SSH 密钥、网络配置。手动改了
/etc/netplan之后如果重启又被还原,基本就是 cloud-init 干的,要改/etc/cloud/cloud.cfg或在/etc/cloud/cloud.cfg.d/下加覆盖配置。
2026 年 9 月的现状:
| 发行版 | 当前版本 | 支持到 | 什么时候选它 |
|---|---|---|---|
| Ubuntu LTS | 26.04(2026-04 发布) | 2031-05 | 新项目首选,教程和第三方软件包最多 |
| Ubuntu LTS | 24.04 | 2029-05 | 求稳、或者要跟现有机器保持一致 |
| Debian | 13(Trixie,2025-08 发布) | 2030-06 | 更轻量,默认装的东西少,服务器上常见 |
| Debian | 12 | 2028-06 | 老项目兼容性要求 |
几条实际建议:
- Ubuntu 26.04 LTS 已经发布半年多,常规用途可以直接上。但如果你的项目依赖某些第三方 apt 源(比如某些数据库官方源),先确认它们已经支持 26.04 的代号,否则装完会发现源里没包。
- 不确定就选 24.04。它支持到 2029 年,生态完全成熟,绝大部分教程都是按它写的 —— 包括本站的 Node.js 部署 和 Python 部署 两篇。
- Debian 比 Ubuntu 省内存,小内存机器(512M、1G)上差别能有一两百 MB,值得考虑。
- CentOS 7 已经彻底 EOL,还在用的赶紧换。想要 RHEL 系就选 Rocky Linux 或 AlmaLinux。
- 不要选非 LTS 的 Ubuntu(25.04、25.10 这种),支持期只有 9 个月,到期后源直接失效,
apt update全报错。
面板里没有你要的系统时用这个。目前维护最活跃的是 bin456789/reinstall(13k+ stars,2026 年 9 月仍在更新),支持 Ubuntu、Debian、Rocky、Alma、Fedora、Alpine 等,也能装 Windows。
跑之前再确认一次:控制台能打开吗?备份下载到本地了吗?
# Debian/Ubuntu 先装依赖
apt update && apt install -y curl
# 下载脚本
curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh
# 装 Debian 13
bash reinstall.sh debian 13
# 或装 Ubuntu 24.04,并指定密码
bash reinstall.sh ubuntu 24.04 --password 'YourStrongPassword'
脚本跑完会提示重启,然后:
reboot
重启之后就该去开控制台了,别干等着 SSH。整个安装过程能在控制台里看到,卡在哪一步一目了然。装完通常 10-20 分钟,期间机器会 ping 不通,这是正常的。
几个容易踩的点:
- 国内机器拉不到脚本,GitHub 连不上。可以用镜像加速,或者先在本地下载再
scp上去。 - 必须用 root 跑。sudo 用户跑会在中途失败。
- 别在 screen/tmux 里跑然后断开,脚本的某些阶段需要完整执行完。
- 装完默认密码是脚本设的或随机的,输出里会显示,当场抄下来,滚屏过去就找不回了。
装完连不上的排查顺序:控制台看系统起来没 → 起来了就看网卡有没有 IP(ip addr)→ 有 IP 就看 sshd 状态(systemctl status sshd)→ 都正常就看防火墙。网络起不来的完整排查见 VPS 网络不可达怎么用 VNC 自救。
这是静态 IP 机器上最常见的翻车方式。在控制台里(不是 SSH,你连不上)先看网卡名:
ip link show
网卡名可能是 eth0,也可能是 ens3、enp0s3 这种。名字对不上是配置失效的常见原因 —— 新内核换了命名规则,而配置文件里还写着旧名字。
Ubuntu 24.04/26.04 用 netplan,编辑 /etc/netplan/01-netcfg.yaml:
network:
version: 2
ethernets:
ens3:
addresses:
- 192.0.2.10/24
routes:
- to: default
via: 192.0.2.1
nameservers:
addresses: [1.1.1.1, 8.8.8.8]
chmod 600 /etc/netplan/01-netcfg.yaml
netplan try # 120 秒内不确认就自动回滚,比 netplan apply 安全
用 netplan try 而不是 netplan apply。前者改错了会自动回滚,后者直接生效 —— 在只有控制台的情况下,这个区别能省你半小时。
YAML 缩进必须是空格,用 Tab 会直接报解析错误。Debian 13 默认不用 netplan,改 /etc/network/interfaces 或用 systemd-networkd。
DD 是最后手段。它把一个完整的磁盘镜像逐字节写进系统盘,绕过一切安装程序。
什么时候才需要 DD:
- 要装 Windows,而面板不提供
- 要装定制镜像(比如带特定内核、软路由系统)
- 前两条路线都失败了
DD 的风险比脚本高一档,原因是:镜像里的磁盘布局、驱动、网络配置,跟你这台机器不一定匹配。写进去之后如果驱动不对,系统根本起不来,而且因为整块盘已经被覆盖,连救援模式都可能进不去。
真要做的话:
- 必须有控制台,这条没得商量
- 确认镜像的架构对(x86_64 还是 ARM,ARM VPS 值不值得买 里讲了怎么区分)
- 确认镜像体积小于你的磁盘容量
- 用支持 DD 的脚本(
reinstall.sh dd --img <url>)而不是手搓dd命令
DD 失败后的自救:进救援模式(Rescue Mode)重新 DD 或者恢复,做法见 VPS 救援模式怎么用。救援模式也进不去的,就只能开工单了,怎么把工单写清楚见 VPS 工单该怎么提。
新系统是一张白纸,也是一台用默认密码、开着所有端口、暴露在公网的机器。自动化扫描几分钟内就会找上门。
第一步:换掉密码,配好密钥
passwd
mkdir -p ~/.ssh && chmod 700 ~/.ssh
echo "ssh-ed25519 AAAA... your@email" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
新开一个终端测试密钥能登录,确认之后再禁用密码登录:
sudo sed -i 's/^#\?PasswordAuthentication.*/PasswordAuthentication no/' /etc/ssh/sshd_config
sudo sed -i 's/^#\?PermitRootLogin.*/PermitRootLogin prohibit-password/' /etc/ssh/sshd_config
sudo sshd -t && sudo systemctl restart ssh
sshd -t 是语法检查,一定要先跑。配置写错直接重启 sshd,当前连接还在但新连接进不来,等于把自己锁在门外。
第二步:更新系统
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl git vim ufw fail2ban
sudo timedatectl set-timezone Asia/Shanghai
第三步:防火墙
sudo ufw allow OpenSSH
sudo ufw allow 80,443/tcp
sudo ufw --force enable
allow OpenSSH 必须在 enable 之前。顺序反了就是把自己关在外面 —— 这个坑每天都有人踩,自救办法见 开启 UFW 后 SSH 进不去怎么办。
改了 SSH 端口的话,UFW 里要放行新端口,而不是 OpenSSH 这个预设。
第四步:小内存机器加 Swap
1G 及以下的机器装个数据库就可能 OOM:
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile && sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
ZRAM 在小内存机器上比 Swap 文件更划算,对比见 低内存怎么用 ZRAM 和 Swap 优化。
安全加固的完整清单在 VPS 安全加固指南。
重装是个很有诱惑力的选项 —— 一了百了,不用排查。但下面几种情况重装解决不了问题,纯属浪费时间:
- 服务起不来、配置搞乱了:这类问题在当前系统里排查通常十几分钟就能定位,重装反而要重建整套环境。先看日志,见 VPS 日志怎么看。
- IP 被墙:跟系统无关,重装一百遍还是那个 IP。
- 机器卡、CPU 跑满:先确认是不是被超售或者被限速了,重装不会让邻居安静下来。
- 磁盘满了:清理一下就行,见 Docker 占满磁盘怎么办。
- 只是想换个发行版试试:如果机器上已经跑着业务,先用快照,或者干脆再开一台便宜的机器试。快照和重装的区别见 VPS 快照、备份、镜像有什么区别。
反过来说,这几种情况重装是对的:系统盘文件系统损坏修不回来、装了一堆东西环境彻底乱了、要换发行版、机器刚到手要换掉厂商预装的系统。
重装后 IP 变了吗?
绝大多数厂商重装不换 IP。但"重建"(Rebuild / Destroy and Recreate)可能会换 —— DigitalOcean 的 Destroy 就是销毁重建,IP 会变。点之前看清楚按钮写的是哪个词。
重装能清掉被墙的 IP 吗?
不能。IP 被墙是网络层面的事,跟系统里装了什么没关系。重装一百遍也还是那个 IP。要解决得换 IP 或者用中转,见 VPS 被墙了怎么办。
重装会不会重置流量统计?
不会。流量是厂商在宿主机层面统计的,跟你的系统无关。
重装后磁盘空间变小了?
有些镜像默认不会把根分区扩展到整块盘。df -h 看到的容量比买的小就是这个原因:
lsblk # 先看清楚盘和分区
sudo growpart /dev/vda 1 # 扩展分区
sudo resize2fs /dev/vda1 # ext4 扩展文件系统
# XFS 用 sudo xfs_growfs /
growpart 那条命令要看清楚设备名,有的机器是 /dev/sda,改错了会动到别的分区。
装 Windows 之后特别卡?
Windows 在 1G 内存的机器上基本没法用,2G 是底线,4G 才算能正常操作。而且 Windows 镜像通常要几十 GB 磁盘。
- VPS 安全加固指南 — 重装完第一件该做的事
- VPS 配置怎么选 — 重装前先想清楚这台机器要干什么
- VPS 快照、备份、镜像有什么区别 — 下次别再靠重装解决问题
- VPS 救援模式怎么用 — 重装翻车了怎么救
- VPS 服务启动了但外网访问不了 — 重装后服务连不上
