为什么要搬家?Hetzner 那轮涨价让多少人动了迁移的念头,商家跑路、线路晚高峰崩了、年付到期续费翻倍——网站搬家是 VPS 玩家迟早要面对的事。很多人拖着不敢动,怕数据丢、怕停机、怕搞砸。这篇主机评测网把全流程拆开讲:操作得当,实际停机窗口可以压到五分钟以内。
第 0 步:迁移前的三件准备
一,新机就绪:新 VPS 开好,环境按老机器对齐(同版本 PHP/数据库,用宝塔的照建站教程把 LNMP 装好;Web 服务版本差异是迁移后白屏的高发原因)。二,提前降 TTL:去域名 DNS 面板把 A 记录的 TTL 从默认的 3600 秒改成 300 秒——这条要提前至少一天做,否则切换解析后全球生效时间不可控,停机窗口直接从五分钟变成几小时。三,规划停机窗口:挑流量最低的时段(一般是凌晨),提前在站上挂个维护公告,心里有数比手忙脚乱强一百倍。
方案一:宝塔备份恢复(面板党)
老机器宝塔面板「网站」→ 备份站点(或直接用已有的每日备份文件),数据库同步备份;把备份包传到新机(面板上传或 scp),新机面板「网站」→「导入」恢复站点,数据库同样导入。这条路线全程图形化,WordPress 这类标准建站程序成功率很高。要点:新机建站时域名先填上但不解析,SSL 证书等切换后在新机重新申请(Let’s Encrypt 一键,别去拷贝老证书)。
方案二:rsync 增量迁移(命令行党,更稳)
rsync 的好处是可以先同步 90% 的数据、停机后再补增量,把停机窗口压到最短。第一步,停机前先全量同步(网站还在跑,数据近似一致):
rsync -avz --progress /www/wwwroot/ root@新机IP:/www/wwwroot/ mysqldump -u用户 -p'密码' --single-transaction 站点库 | gzip > site-db.sql.gz
第二步,进入停机窗口:老机器上把网站设为维护模式或停掉 Web 服务(保证数据不再变化),再跑一遍同样的 rsync 命令(只传增量,几十秒级),数据库此时做最终 dump 并在新机导入:
gunzip < site-db.sql.gz | mysql -u用户 -p'密码' 站点库
第三步,新机起服务、本地 hosts 把域名指到新机 IP 验证一切正常,然后去改 DNS。
DNS 切换与双机并存
验证通过后,把 A 记录从老机 IP 改成新机 IP(TTL 已经是 300 秒,5 分钟内全球生效)。老机器不要立刻销毁:保留至少 48 小时,作用有两个——解析全球生效期内它还在接流量(两台机器同时服务,数据不同步的业务要接受这个窗口),另外它就是你的回滚方案,新机出问题把解析改回去就是。48 小时后确认日志里老机没有流量了,再安心销毁。
验证清单与常见坑
| 检查项 | 说明 |
|---|---|
| 前台/后台访问 | 首页、文章页、登录后台逐个点一遍 |
| SSL 证书 | 新机重新申请,别拷老的(域名验证会失败) |
| 图片/附件路径 | WordPress 检查 wp-config 和站点地址,换域名或换路径的要做替换 |
| 定时任务 | crontab/面板计划任务要手动搬 |
| 邮件发送 | 新机 IP 的 25 端口状态可能不同,测试注册邮件 |
| CDN/防火墙 | 回源 IP 白名单更新为新机 |
翻车重灾区前三名:SSL 忘了重签(访问报证书错误)、数据库里写死的旧域名没换(资源 404)、PHP 版本不一致(白屏)。都在清单里,搬家当晚逐项打勾就行。
最后强调一次:这套流程的前提是你的备份机制本来就在正常运转——平时没备份的,先去把那篇备份教程做了再谈搬家。迁移本身不可怕,可怕的是没有退路的裸奔操作。













暂无评论内容