跳到主要内容
← 指南列表

迁移到新服务器——升级配置或更换操作系统、线路时

正在使用的服务器,其配置、操作系统、线路(区)之后都无法更改。如果需要更高的配置,或想更换操作系统、线路,就需要开通新服务器并迁移数据。按顺序操作,几乎可以在不中断服务的情况下完成迁移。

整体流程

  1. 订购新服务器——在迁移完成之前,旧服务器请保持原样。如果到期日临近,请先续费。
  2. 迁移数据
  3. 确认在新服务器上运行正常
  4. 更改访问地址(更改域名指向;如果是游戏服务器,则告知新 IP)
  5. 清理旧服务器

Linux → Linux:在服务器之间直接复制(rsync)

不经过本地电脑、在服务器之间直接复制会更快。请在两台服务器上都安装 rsync。

sudo apt install -y rsync

连接到新服务器,然后拉取旧服务器的文件夹。请将 username 和 old-server-ip 替换为旧服务器的连接信息。(会要求输入旧服务器的密码)

rsync -avz --progress username@old-server-ip:/home/username/your-folder/ ~/your-folder/
  • 文件夹路径末尾的 / 也要照原样写上,才会迁移文件夹“里面的内容”。
  • 如果您已将旧服务器设置为仅允许使用 SSH 密钥登录,就无法用密码连接。此时请先下载到本地电脑,再上传到新服务器。(上传和下载文件)
  • 即使中途断开,再次执行相同的命令即可继续复制。

需要一并迁移的内容

  • DB —— 在旧服务器上创建备份文件,再拿到新服务器上恢复。
# 在旧服务器上
sudo mysqldump --all-databases > ~/db-all.sql

# 在新服务器上(请先安装好 DB)
rsync -avz username@old-server-ip:/home/username/db-all.sql ~/
sudo mysql < ~/db-all.sql
  • .env 等配置文件 —— 如果整个应用文件夹一起迁移,这些文件也会随之迁移。它们是隐藏文件,请用 ls -a 查看。
  • 定时任务 —— 在旧服务器上用 crontab -l 查看列表,然后在新服务器上用 crontab -e 重新添加。
  • Nginx 配置 —— 迁移 /etc/nginx/sites-available/ 中您自己的配置文件。HTTPS 证书不要迁移,将域名指向新服务器后重新申请会更简单。
  • 运行方式 —— 用 pm2、systemd 运行的程序,请在新服务器上用同样的方式重新注册。(将自己开发的 Web 应用部署到服务器)

Minecraft 服务器

  1. 在旧服务器的控制台中用 stop 彻底关闭服务器后再迁移。如果在开启状态下复制,世界可能会损坏。
  2. 整个服务器文件夹一起迁移。(包括 world、plugins、server.properties 等全部内容)
rsync -avz --progress username@old-server-ip:/home/username/minecraft/ ~/minecraft/
  1. 在新服务器上安装 Java 并运行。(搭建 Minecraft 服务器(Java 版,Paper、原版))

Windows 服务器

  • 最简单的方法是:将要迁移的文件夹压缩(鼠标右键 → 压缩)后,先下载到本地电脑,再上传到新服务器。(上传和下载文件)
  • 如果是游戏服务器,请先关闭旧服务器上的程序再压缩。

更改访问地址

  • 如果使用域名,请在域名管理网站上将 A 记录改为新服务器的 IP。更改后的地址传播开来可能需要几分钟到几个小时。之后在新服务器上申请 HTTPS 证书。(搭建网站)
  • 如果是通过 IP 连接的游戏服务器,请将新 IP 告知朋友或用户。

清理旧服务器前的检查清单

  • 是否已确认服务在新服务器上正常运行?
  • 是否还有只存在于旧服务器上的文件?最后请再备份一次。
  • 旧服务器如果不续费,会在到期日后被停止、终止,已终止服务器的数据无法恢复。

如果问题仍未解决,请在 Discord 提交工单。