Linux VPS 如何迁移到新服务器?2026 最新 rsync 教程:几乎 1:1 无损迁移网站、Docker 和数据
准备更换 VPS 服务商,或者想把 Linux 服务器迁移到新的 VPS?这篇教程带你使用 rsync 完成几乎 1:1 的数据迁移,从准备工作、创建排除列表到执行迁移,再到迁移后的检查与注意事项,全流程一步一步讲解,适合 Ubuntu、Debian、CentOS、Rocky Linux、AlmaLinux 等系统,新手也能轻松完成 VPS 数据迁移。

为什么推荐用 rsync 迁移 VPS?
如果你准备更换 VPS 服务商,或者刚买了一台新的 Linux VPS,相信第一个想到的问题就是:
旧服务器的数据怎么迁过去?
很多人会选择重新部署环境、重新安装软件,再一点点恢复数据。但实际上,对于大多数 Linux VPS 来说,并不需要这么麻烦。
今天介绍一种非常经典的迁移方式——使用 rsync 将旧 VPS 几乎 1:1 同步到新 VPS。
这种方法适合网站迁移、博客迁移、更换 VPS 服务商、升级服务器配置等大多数场景。它能够同步绝大部分文件和配置,相比重新部署环境,可以节省大量时间。
当然,rsync 并不是万能方案。如果你的服务器使用了 cPanel、Plesk、Kubernetes 等复杂环境,更建议优先使用官方提供的迁移工具。
哪些情况适合使用 rsync?
如果你的服务器属于下面这些情况,那么 rsync 基本都能胜任:
- 更换 VPS 服务商
- VPS 到期准备迁移
- 升级服务器配置
- 网站、博客迁移
- LNMP、LAMP 环境迁移
- Docker 数据迁移
- 普通 Linux 应用迁移
如果只是迁移某一个网站或者某个应用,也不一定需要整机复制,可以只同步对应目录,这样速度会更快。
开始前需要准备什么?
正式开始之前,请先确认下面几点。
- 一台旧 VPS(源服务器)
- 一台新的 VPS(目标服务器)
- 两台服务器都可以正常 SSH 登录
- 两台服务器都已经安装 rsync
- 新旧 VPS 必须使用相同的 Linux 发行版和版本
例如:
- Ubuntu 22.04 → Ubuntu 22.04
- Debian 12 → Debian 12
- Rocky Linux 9 → Rocky Linux 9
不要跨发行版,也不要跨大版本迁移,否则很容易出现兼容性问题。
可以执行下面命令查看系统版本:
cat /etc/os-release
如果两台服务器显示的版本一致,就可以继续下一步。
安装 rsync
Ubuntu、Debian:
sudo apt update
sudo apt install rsync -y
CentOS、Rocky Linux、AlmaLinux:
sudo yum install rsync -y
第一步:创建排除列表
虽然 rsync 可以同步整个系统,但并不是所有文件都应该复制到新服务器。
例如:
- 临时文件
- 日志文件
- 缓存
- 网络配置
- 主机名
- SSH Host Key
- UUID
- boot 信息
这些内容一般都会在新系统重新生成,如果直接覆盖,反而可能导致启动异常或者网络故障。
首先创建一个排除文件:
nano /root/excludedfiles.txt
然后把下面内容复制进去:
/etc/fstab
/etc/sysconfig/network-scripts/*
/etc/systemd/network/*
/etc/network/*
/etc/netplan/*
/etc/NetworkManager/*
/etc/resolv.conf
/etc/hostname
/etc/hosts
/etc/machine-id
/var/lib/dbus/machine-id
/proc/*
/tmp/*
/sys/*
/dev/*
/mnt/*
/boot/*
/boot/grub/*
/etc/default/*
/run/*
/var/run/*
/var/lock/*
/media/*
/lost+found
/swapfile
/swap.img
/var/lib/rpm/*
/var/lib/yum/*
/etc/sysconfig/iptables
/etc/iptables/rules.v4
/etc/iptables.rules
/var/lib/iptables/rules-save
/etc/ssh/*
/var/crash/*
/var/log/*
/var/cache/apt/*
/var/lib/apt/lists/*
/var/lib/cloud/*
/sys/class/dmi/id/product_uuid
/etc/udev/*
/lib/modules/*
/lib/firmware/*
/lib64/modules/*
/lib64/firmware/*
保存退出:
Ctrl + X
Y
Enter
这份列表主要用于排除系统缓存、日志、临时目录以及服务器唯一配置,可以避免很多迁移后的问题。
当然,不同环境可能还需要根据实际情况进行调整。
第二步:开始迁移
确认两台服务器都已经安装 rsync 后,就可以正式开始同步。
下面这条命令需要在旧 VPS 上执行。
sudo rsync -vPa \
-e "ssh -p 22 -o StrictHostKeyChecking=no" \
--exclude-from=/root/excludedfiles.txt \
/ root@新服务器IP:/
需要修改两个地方:
- 新 VPS 的 IP 地址
- SSH 端口(如果不是默认 22)
例如:
sudo rsync -vPa \
-e "ssh -p 2222 -o StrictHostKeyChecking=no" \
--exclude-from=/root/excludedfiles.txt \
/ root@192.168.1.100:/
执行后,会提示输入新服务器的 root 密码。
验证成功以后,rsync 就会开始同步数据。
同步时间主要取决于:
- 数据大小
- 硬盘速度
- 两台 VPS 之间的网络质量
- 带宽大小
如果数据量较大,耐心等待即可。
第三步:切换到新 VPS
同步完成以后:
- 关闭旧 VPS
- 重启新 VPS
- 等待系统完全启动
随后使用 SSH 登录新服务器。
这里很多人第一次都会弄混。
连接时:
- IP 使用的是新 VPS 的 IP
- 密码仍然使用旧 VPS 的 root 密码
因为 rsync 已经把用户配置一起同步过去了,所以登录凭据还是旧服务器的。
第四步:确认迁移是否成功
登录新服务器以后,可以检查以下内容:
- 网站文件是否完整
- 数据库是否正常
- Docker 容器是否存在
- 配置文件是否同步完成
- 用户目录是否正常
如果这些内容都没有问题,说明迁移基本已经完成。
迁移完成后还需要做什么?
很多人以为 rsync 执行结束就算完成了,其实还有几个步骤一定不要忘记。
建议逐项检查:
- 更新域名 DNS 解析到新 VPS
- 修改配置文件中仍然引用旧 IP 的地方
- 重启 Nginx、Apache、MySQL、Redis、Docker 等服务
- 测试网站是否可以正常访问
- 检查 HTTPS 证书是否正常
- 测试数据库连接
- 检查计划任务(Cron)
- 测试邮件服务、FTP 等功能
确认全部正常之后,再考虑关闭旧服务器。
rsync 迁移有哪些优缺点?
优点
- 操作简单,学习成本低
- Linux 自带工具,无需额外安装复杂软件
- 支持断点续传
- 同步速度快
- 可以保留大部分配置和数据
- 非常适合 VPS 更换或升级
不足
- 不适用于所有环境
- cPanel、Plesk 等控制面板不建议直接使用
- 网络配置和 IP 地址通常需要手动调整
- 部分系统配置仍需自行检查
因此,在正式迁移生产环境之前,建议先在测试环境演练一遍,确认整个流程没有问题。
总结
对于大多数普通 Linux VPS 用户来说,rsync 是一种简单、高效且成熟的迁移方案。
相比重新部署环境,它可以保留绝大多数文件和配置,大大减少重复操作,非常适合网站迁移、服务器升级以及更换 VPS 服务商。
不过,迁移完成后不要急着删除旧服务器,建议先完成网站、数据库、Docker、DNS 等各项检查,确认业务运行正常,再正式停用旧 VPS。这样既能降低迁移风险,也能避免因为遗漏配置而导致服务中断。


