换机器是常有的事:旧服务器到期了、配置不够要升级、或者从别的商家搬到我们这儿。迁移的核心诉求就一个——业务中断时间最短,数据一点不丢。
这篇以「旧机器 → 新机器」为例讲完整迁移流程,游戏服、网站、数据库都覆盖。全程命令可抄。
需要云服务器可以看看财富云计算:一键开服面板,NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上,主流游戏快速部署,迁移不折腾。
一、迁移前先规划
1. 摸清旧机器上有什么
# 跑了哪些服务
systemctl list-units --type=service --state=running
# 监听哪些端口
ss -tulnp
# 磁盘占用构成
du -sh /opt /home /var/www /var/lib/mysql 2>/dev/null
df -h
# 定时任务
crontab -l
ls /etc/cron.d/拿张纸列成清单:服务 → 端口 → 数据位置 → 配置文件位置。漏一项,迁移后就多一个故障。
2. 确定迁移策略
| 数据量 | 策略 | 预计中断 |
|---|---|---|
| < 10G(小服、小网站) | 停服 → rsync → 起服 | 30–60 分钟 |
| 10–100G | 先 rsync 预热(不等停机)→ 停服增量同步 → 起服 | 10–30 分钟 |
| > 100G 或数据库 | 数据库用主从/Dump,文件用快照迁移 | 视方案 |
游戏服一般 10–50G,用第二种方案,中断能压到半小时内。
3. 新机器先装好环境
新机器装好系统、更新、装基础工具、设好时区和 NTP。服务(Nginx、MySQL、SteamCMD)提前装好但先不启动,等数据到位再起。
二、数据迁移:rsync 是主力
rsync 比 scp 强在:支持增量、支持断点续传、支持保留权限,大文件迁移的首选。
第一次全量同步(旧机器上执行)
# 语法: rsync [选项] 源 目标
rsync -avzP --progress \
/opt/games/ \
root@新机器IP:/opt/games/
# 参数说明:
# -a 归档模式(保留权限、时间戳、软链接)
# -v 详细输出
# -z 传输时压缩
# -P 显示进度 + 支持断点续传数据库目录不要直接 rsync(InnoDB 文件在运行中拷贝会损坏),要走 mysqldump 或主从。
同步网站和配置
# 网站目录
rsync -avzP /home/wwwroot/ root@新机器IP:/home/wwwroot/
# Nginx 配置
rsync -avzP /etc/nginx/ root@新机器IP:/etc/nginx/
# 证书
rsync -avzP /etc/letsencrypt/ root@新机器IP:/etc/letsencrypt/
# 脚本
rsync -avzP /opt/scripts/ root@新机器IP:/opt/scripts/数据库迁移
小数据库(几个 G 以内)用 dump 最简单:
# 旧机器: 导出
mysqldump -u root -p --single-transaction --quick \
--all-databases | gzip > /tmp/mysql-all.sql.gz
# 传到新机器
rsync -avzP /tmp/mysql-all.sql.gz root@新机器IP:/tmp/
# 新机器: 导入
gunzip < /tmp/mysql-all.sql.gz | mysql -u root -p--single-transaction 保证 InnoDB 表导出期间数据一致,不用停库。
大数据库(几十 G)建议用主从同步,先让新机器做旧机器的从库,同步追平后再切换。这块展开讲太长,站内有 MySQL 安装与优化入门 可以参考。
三、正式切换:中断时间最短的流程
数据已经预热同步过一轮,正式切换这样做:
# ===== 旧机器 =====
# 1. 停业务(游戏服、网站服务)
systemctl stop nginx palworld ark
# 2. 最后一次增量同步(只传变化的,很快)
rsync -avzP --delete /opt/games/ root@新机器IP:/opt/games/
rsync -avzP --delete /home/wwwroot/ root@新机器IP:/home/wwwroot/
# 3. 再导一次数据库(用 --single-transaction,秒级小库)
mysqldump -u root -p --single-transaction --all-databases | gzip > /tmp/final.sql.gz
rsync -avzP /tmp/final.sql.gz root@新机器IP:/tmp/
# ===== 新机器 =====
# 4. 导入最终数据库
gunzip < /tmp/final.sql.gz | mysql -u root -p
# 5. 起服务
systemctl start nginx mysql
systemctl start palworld ark
# 6. 本地验证
curl -I http://localhost
ss -tulnp | grep -E '80|443|8211|7777'关键点:第二步的增量 rsync 用 --delete,把旧机器上删掉的文件也同步删掉,保持一致。
四、切换域名和 IP
网站:切域名解析
域名控制台把 A 记录从旧 IP 改成新 IP。TTL 提前一天改成 60 秒,切换后全球生效快(几分钟);确认没问题后再把 TTL 调回去。
# 本地验证解析是否生效
dig yourdomain.com +short游戏服:通知玩家换 IP
游戏没有域名机制(部分支持),直接群发新 IP + 端口:
服务器迁移公告
新地址: xxx.xxx.xxx.xxx:8211
(或 NAT 型: connect nat.xxx.com:20001)
迁移时间: 今晚 22:00-22:30
存档已完整迁移,进度不丢NAT 型用户特别注意:NAT 机型是「内网 IP + 网关映射端口」,迁移后要:
- 控制台确认新实例的端口映射已配好(游戏端口、查询端口、RCON)
- 把新的「外网入口地址」发给玩家(一般是
映射域名:映射端口,不是机器的内网 IP) - 游戏配置里如果写死了 IP,同步改掉
五、回滚预案
迁移最怕的是切过去发现起不来,玩家进不去。所以旧机器别急着退:
- 切换后观察 24–48 小时
- 旧机器的服务先停着但不要重装不要退,出问题 10 分钟内就能切回去
- 确认稳定运行一周,再处理旧机器
真出问题回滚:域名解析改回旧 IP,游戏重新群发旧地址,服务在旧机器 systemctl start 拉起来即可(数据可能丢这一两天,总比全崩强)。
六、迁移后检查清单
- [ ] 新机器时区、NTP 正常
- [ ] 所有服务已启动并设为开机自启
- [ ] 端口监听正常(
ss -tulnp) - [ ] 网站外网能打开,HTTPS 正常
- [ ] 游戏服外网能进,存档是迁移前的进度
- [ ] 数据库数据条数对得上
- [ ] crontab 已恢复,备份脚本能跑
- [ ] 防火墙规则已配置(系统防火墙 + 安全组)
- [ ] 监控已装,能收到告警
- [ ] 域名解析已切,TTL 已调回
- [ ] 旧机器观察期内不要退
七、常见问题
Q:rsync 传输慢,几十 G 要传到什么时候?
加 -z 压缩(文本类有效,游戏存档压缩比高);确认带宽没被别的占满;如果是跨国/跨运营商,考虑先打包再用对象存储中转。
Q:游戏存档迁过去读不了?
服务端版本不一致。先在旧机器记下服务端版本号,新机器用 SteamCMD 更新到同一版本再放存档。
Q:迁移后玩家 ping 变高?
新机器地域/线路和旧机器不同。选服务器时看玩家主要分布,南方玩家选华南节点,北方选华北。NAT 机型一般在骨干网,latency 表现不差。
Q:能不能不停服迁移?
普通方案做不到完全不停。数据库主从可以做到秒级切换,但游戏服有状态(玩家在线连接),必须断开重连。选玩家少的时段(比如工作日上午)做,影响最小。
Q:快照迁移是什么?
控制台把旧机器的整盘打成快照,用快照在新机器上创建系统盘/数据盘。适合数据量大、不想 rsync 的场景,云厂商控制台一般直接支持。
小结
迁移的顺序永远是:摸清家底 → 新机器装环境 → rsync 预热 → 停服增量同步 → 起服验证 → 切域名/IP → 观察期 → 退旧机。中断时间控制在半小时内完全做得到,关键数据不丢。
更多运维教程见财富云计算知识库:rsync 备份实战、网站迁移、磁盘挂载扩容、systemd 服务全系列。需要云服务器可以看看财富云计算:一键开服面板,NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上。
延伸阅读
- 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
- 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
- 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
- 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
- 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
- RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
- 短链接服务搭建:Shlink 自托管,链接数据自己掌握
- 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道

[...]traceroute -n 目标IP | head -15五、NAT 型服务器的地域考量NAT 型云服务器(无独立公网 IP)在地域选择上有几个特殊点:线路质量取决于服务商网关,不是机房本身。同一个地域,不同 NAT 服务商的体验可能天差地别优先选带 BGP/多线接入的服务商,NAT 网关做多线融合是常见卖点实测比标称重要:买月付/短期套餐实测一周,晚高峰让玩家连一次,满意再续端口映射延迟:NAT[...]
2026-10-14 回复
[...]# 4. 观察 24 小时无异常,再清理DNS TTL 提前一天调到 300 秒,切换分钟级生效,回滚也是。解析记录改法见域名解析与 DNS 记录详解。数据库迁移就五步:备份 → 导出 → 导入 → 校验 → 切换,外加一条随时能回滚的预案。慢一点、验一遍,比迁完发现丢数据再救要轻松一百倍。需要现成的游戏云服务器,可以看看财富云计算:一键开服面板,NAT 型无独立公网 IP,价格比独立 IP 机型[...]
2026-10-15 回复
[...]netsh advfirewall firewall add rule name="GameRange" dir=in action=allow protocol=UDP localport=26901-26903完整的 Windows 环境准备(远程桌面连接、运行库安装、SteamCMD 用法、开机自启、8 个常见坑)见:《Windows 云服务器开服通用前置教程》→ htt[...]
2026-10-18 回复