利用脚本快速给 VPS,VDS 云服务器重装系统

经实测,无论是阿里云、NetCup 等大型云服务商,还是一些小型商家甚至个人运营的 KVM、Hyper-V 服务器,本脚本都能正常使用。

本脚本不支持 OpenVZ 或 LXC 虚拟化环境。对于此类虚拟机,建议使用 https://github.com/LloydAsp/OsMutation 进行操作系统重装。

如果你仅将云服务器用作 Docker 或 Kubernetes 的宿主机,对系统兼容性要求不高,推荐选择 Alpine 系统。它极为轻量,开机默认内存占用甚至不足 100MB。

如需更好的软件兼容性,建议安装 Debian minimal。其内存占用仅略高于 200MB,兼容性优秀。可惜目前本脚本仅支持 Ubuntu minimal,尽管系统占用略高于 Debian minimal,但依然是个不错的选择。

亮点

  • 支持一键安装 19 种主流 Linux 发行版
  • 支持一键安装 Windows,使用微软官方 ISO 自动部署,包含 Virtio 驱动等
  • 支持任意方向重装,如 Linux → Linux、Linux → Windows、Windows → Linux 等
  • 自动识别网络类型,支持 /32、/128、网关不在子网内、纯 IPv6、双网卡 等复杂网络结构
  • 适配低配 VPS,比官方 Netboot 占用更少资源
  • 通过分区表 ID 精确识别硬盘,避免误操作
  • 兼容 BIOS 与 EFI 启动方式,支持 ARM 架构
  • 不含自制软件包,所有安装源均实时下载自官方镜像站

原系统可以是表格中的任意系统

目标系统的配置要求如下:

系统版本内存硬盘
Alpine3.19, 3.20, 3.21, 3.22256 MB1 GB
Debian9, 10, 11, 12256 MB1 ~ 1.5 GB ^
Kali滚动256 MB1 ~ 1.5 GB ^
Ubuntu16.04 LTS – 24.04 LTS, 25.04512 MB *2 GB
Anolis7, 8, 23512 MB *5 GB
RHEL AlmaLinux Rocky Oracle8, 9, 10 (如果有)512 MB *5 GB
OpenCloudOS8, 9, Stream 23512 MB *5 GB
CentOS Stream9, 10512 MB *5 GB
Fedora41, 42512 MB *5 GB
openEuler20.03 LTS – 24.03 LTS, 25.03512 MB *5 GB
openSUSELeap 15.6, Tumbleweed (滚动)512 MB *5 GB
NixOS25.05512 MB5 GB
Arch滚动512 MB5 GB
Gentoo滚动512 MB5 GB
安同 OS滚动512 MB5 GB
飞牛 fnOS公测512 MB8 GB
Windows (DD)任何512 MB取决于镜像
Windows (ISO)Vista, 7, 8.x (Server 2008 – 2012 R2)512 MB25 GB
Windows (ISO)10, 11 (Server 2016 – 2025)1 GB25 GB

下载

国外服务器:

curl -O https://raw.githubusercontent.com/bin456789/reinstall/main/reinstall.sh || wget -O reinstall.sh $_

国内服务器:

curl -O https://cnb.cool/bin456789/reinstall/-/git/raw/main/reinstall.sh || wget -O reinstall.sh $_

重装

以下操作需要 root 权限,建议使用以下命令切换至 root 用户并进入其主目录:

sudo -i

进入脚本所在目录,执行如下命令开始安装:

bash reinstall.sh {os} {release}

如未指定版本号,默认安装对应系统的最新稳定版。

例如,要安装 Alpine 3.22:

bash reinstall.sh alpine 3.22

运行后重启系统,即可自动开始系统重装:

reboot

建议不要直接重启,因为默认配置下,SSH 将使用以下弱密码登入:

端口22
用户名root
密码123@@@

这非常不安全。请务必通过 –password 参数自定义强密码。

此外,建议使用 –ssh-port 更改 SSH 默认端口 22,避免被扫描攻击。

示例:

bash reinstall.sh alpine 3.22 --password "my.serv!233@passwd" --ssh-port 22022

如使用密码登入,强烈建议安装 fail2ban,防止 SSH 被暴力破解。

为了更高安全性,推荐完全禁用密码登入,改用 SSH Key。使用 –ssh-key 参数可直接指定公钥或文件路径。

如果你当前已经配置了 SSH Key,通常可以在 ~/.ssh/authorized_keys 中找到它,直接作为参数传入:

bash reinstall.sh alpine 3.22 --ssh-port 22022 --ssh-key ~/.ssh/authorized_keys

若尚未生成 SSH Key,可使用 Termius 等工具创建。生成步骤如下:

  1. 打开 Termius
  2. 点击左上角「Vaults」,再点击左侧「Keychain」
  3. 点击右侧的向下箭头,选择「Generate Key」
  4. 按需填写参数,建议使用 ED25519 算法
  5. 点击「Generate & Save」,再点击右下角「Export to Host」
  6. 选择目标主机,点击「Export and Attach」即可完成导出

重装完成后,请编辑 SSH 凭据,删除密码。

注意:即使你仅指定了 SSH Key,系统也不会自动关闭密码登入。请在新系统中手动编辑 /etc/ssh/sshd_config,添加以下配置:

PermitRootLogin prohibit-password  # 禁止 root 密码登录
PubkeyAuthentication yes           # 启用 SSH Key 登录
PasswordAuthentication no          # 禁止密码登录

至此,你已顺利完成系统重装,并成功配置安全的 SSH 登录方式!