服务器异地容灾备份住宅主机方案:住宅主机做异地容灾备份

为什么推荐用住宅主机做异地容灾备份

服务器数据存储在家里的住宅主机上,既能避开云存储的月费,又能获得物理隔离的安全感。异地容灾备份的关键是“异地”:主服务器在机房或云上,备份机放在家里或另一个城市。
这样即使主站瘫痪,你也能从家里快速恢复数据。
本文以最常见的 rsync + SSH 组合为例,带零基础用户从零搭建一套可执行方案。

前置准备:两台设备与网络互通

你需要准备:

  • 主服务器:可以是云服务器、VPS 或办公室的 Linux 主机,已安装 rsync(几乎默认就有)。
  • 住宅主机:家里一台 24 小时运行的 Linux 设备,比如树莓派、旧笔记本或 NAS(群晖/威联通也支持 SSH 和 rsync)。确保能通过公网 IP 或 DDNS 访问(下文会讲)。
  • 网络出口:住宅主机的路由器需设置 端口转发(比如 22 端口映射到住宅主机 IP),并开启 DDNS,这样主服务器才能从外网连进来。

小提示:如果住宅主机没有公网 IP,可以考虑用 TailscaleZeroTier 组网,设备之间直接通过虚拟局域网通信,无需暴露端口,更安全。
本文以普通 DDNS + 端口转发为例。

核心操作:用 rsync 搭建异地备份通道

1. 在住宅主机上创建备份目录

登录住宅主机(SSH 或本地终端),执行:

sudo mkdir -p /backup/server_data
sudo chown -R $USER:$USER /backup/server_data

记下这个路径,后面会用。

2. 配置 SSH 免密登录

为了让主服务器能自动推备份,需要把主服务器的公钥放到住宅主机上。

在主服务器上生成密钥对(如果已有则跳过):

ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_backup -N ""

然后将公钥复制到住宅主机:

ssh-copy-id -i ~/.ssh/id_rsa_backup.pub backup_user@your-home-domain.com

替换 backup_user 为住宅主机上的实际用户名,your-home-domain.com 为 DDNS 地址。
输入一次密码后,后续登录就不需要密码了。

3. 编写备份脚本

在主服务器上创建脚本 /usr/local/bin/backup_to_home.sh

#!/bin/bash
# 需要备份的目录(可以写多个,用空格隔开)
SOURCE_DIRS="/var/www /etc /home"
# 远程备份基目录
REMOTE_DIR="backup_user@your-home-domain.com:/backup/server_data"
# 执行 rsync 增量同步,保留文件权限和所有者
date +"%Y-%m-%d %H:%M:%S 开始备份"
for dir in $SOURCE_DIRS; do
    rsync -avz --delete -e "ssh -i ~/.ssh/id_rsa_backup" $dir $REMOTE_DIR
    if [ $? -eq 0 ]; then
        echo "$dir 同步成功"
    else
        echo "$dir 同步失败" >&2
    fi
done
date +"%Y-%m-%d %H:%M:%S 备份完成"

给脚本执行权限:sudo chmod +x /usr/local/bin/backup_to_home.sh

这里的 --delete 参数表示与主服务器保持完全一致(远程端删除主服务器已不存在的文件)。
如果你只想增量备份历史版本,可以用 --link-dest 或改用 borgbackup,但 rsync 官方方案已经够用。

4. 设置定时任务

在主服务器上执行 crontab -e,添加以下行:

0 3 * * * /usr/local/bin/backup_to_home.sh >> /var/log/backup.log 2>&1

这样每天凌晨 3 点自动执行备份。

避坑提醒:权限、增量与安全

  • SSH 端口转发安全:如果住宅主机公网暴露 22 端口,建议改用高端口(如 10022)或使用 fail2ban 防止暴力破解。
  • 文件权限保留:rsync 的 -a 参数会自动保留权限、时间戳、属主等信息,但要求远程用户有对应权限。如果远程用户不是 root,可能需要用 sudo 或修改 /backup/server_data 的所属用户。
  • 增量 vs 全量:上面的脚本是增量同步(只传变化部分)。如果要保留多个时间点,可以使用 rsnapshot(基于 rsync 的快照工具)或 restic,更适合“容灾”场景——回到上周的版本。
  • 网络中断处理:rsync 会重新连接并只传断点后的数据。为了更可靠,可以在脚本开头加 flock 防止并发。
  • 加密传输:SSH 本身加密,如果住宅主机在不可信网络,这就是最高安全的传输方式。如果还想对备份文件加密(防止住宅主机被物理窃取),可以先加密再传输,推荐 gpgopenssl

效果验证:模拟故障恢复数据

查看备份日志确认无报错:

tail -f /var/log/backup.log

然后模拟主服务器数据丢失:在主服务器上删除一个文件(比如 /var/www/index.html),接着从住宅主机恢复:

rsync -avz --delete -e "ssh -i ~/.ssh/id_rsa_backup" backup_user@your-home-domain.com:/backup/server_data/var/www/ /var/www/

注意路径末尾的斜杠。
恢复后检查文件是否存在、权限是否正确。

如果之前保留了多个时间点的快照(比如用 rsnapshot),可以指定远程目录下的不同时间子目录来恢复特定版本。

常见问题(FAQ)

Q:住宅主机没有公网 IP,怎么办?
A:推荐安装 Tailscale,在两台设备上登录同一账户,然后就可以用内网 IP 直接 SSH,不用端口转发。配置更简单,也更安全。

Q:备份速度很慢,怎么优化?
A:SSH 加密有开销,可尝试使用压缩级别 -z 降低网络传输量;如果网络上行带宽有限,考虑只备份关键目录,或压缩后再传输。

Q:住宅主机磁盘满了,会怎样?
A:rsync 会报错并写日志。建议在住宅主机上设置磁盘用量监控(如 df -h 和邮件告警),或使用配额限制。

Q:能不能同时备份到多个住宅主机?
A:可以。在主服务器上复制脚本,修改远程地址和目录即可,定时任务排开时间错峰执行。

总结

通过以上步骤,你已经利用住宅主机搭建了一个可落地的服务器异地容灾备份方案
这套方案成本低、可控性强,适合个人站长或小团队。
如果遇到问题,优先检查 SSH 连接和目录权限,再查看日志定位。
未来你还可以升级到 borgbackup 或 restic 获得版本管理能力,但 rsync 已经能满足最基本的灾备需求。

分享到:
上一篇
网络安全0day漏洞2026预警
下一篇
服务器内网穿透访问住宅主机服务:服务器内网穿透访问住宅主机
1
系统公告

机房迁移升级通知

尊敬的用户: IP 段 103.23.148.x、156.224.29.x 原香港一区线路波动、攻击频繁,平台定于 7 月 5 日凌晨分批迁移至香港 GIA 机房,硬件升级 AMD 铂金机型。 迁移均在凌晨操作,最大程度降低业务影响,迁移期间服务器临时关机; 升级后配置不降低、费用不涨价,数据默认同步迁移; 迁移后 IP 全部更换,请及时修改域名解析、防火墙白名单; 建议提前备份重要数据,有问题可联系在线客服。 感谢理解与支持! 泽御云科技 2026.06.30
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意