Gravity Sync 终极指南:5分钟搞定双 Pi-hole 实例DNS同步
Gravity Sync 是一款专为 Pi-hole 5.x 设计的轻量级工具,能够帮助用户快速实现两台 Pi-hole 实例之间的 DNS 配置同步。无论是家庭网络还是小型办公环境,通过 Gravity Sync 可以轻松构建高可用的广告过滤系统,确保网络持续稳定运行。
🚀 为什么需要 Gravity Sync?
在单 Pi-hole 环境中,一旦设备出现故障,整个网络的广告过滤功能将完全失效。Gravity Sync 提供了简单可靠的解决方案:
- 实时同步:自动保持两台 Pi-hole 配置一致
- 无缝切换:主节点故障时可快速切换到备用节点
- 操作简单:无需复杂命令,几分钟即可完成部署
📋 系统要求
使用 Gravity Sync 前,请确保您的系统满足以下条件:
- 两台运行 Pi-hole 5.x 的设备(物理机或容器)
- 设备间网络互通(建议静态 IP 配置)
- 支持 SSH 密钥认证
- 至少 10MB 可用存储空间
🔧 快速安装步骤
1. 克隆项目仓库
git clone https://gitcode.com/gh_mirrors/gr/gravity-sync
cd gravity-sync
2. 执行安装脚本
sudo bash gravity-sync.sh
安装程序会自动完成以下操作:
- 创建工作目录
/etc/gravity-sync - 复制配置文件和可执行程序
- 设置文件权限和依赖项
⚙️ 配置 Gravity Sync
基本配置
运行配置向导开始设置:
gravity-sync configure
根据提示输入以下信息:
- 远程 Pi-hole 主机地址(REMOTE_HOST)
- 远程 SSH 用户名(REMOTE_USER)
- SSH 端口(默认 22)
- Pi-hole 安装路径(默认自动检测)
配置文件将保存在 /etc/gravity-sync/gravity-sync.conf,您可以随时手动修改。
SSH 密钥设置
为实现无密码同步,需要配置 SSH 密钥认证:
# 生成并复制 SSH 密钥
gravity-sync keys
📡 执行首次同步
配置完成后,执行首次手动同步:
gravity-sync pull
同步过程会显示详细进度,包括:
- 本地与远程配置比对
- 数据库文件传输
- 服务状态检查
- 同步结果验证
⏰ 设置自动同步
为确保配置始终保持最新,建议设置自动同步:
使用 Systemd 定时器(推荐)
# 安装定时器
gravity-sync automate
# 检查定时器状态
systemctl status gravity-sync.timer
默认配置每 15 分钟同步一次,您可以通过修改 /etc/gravity-sync/gravity-sync.conf 中的 SYNC_INTERVAL 参数调整频率。
手动设置 Cron 任务
如果您的系统不支持 Systemd,可使用 Cron:
# 编辑 crontab
crontab -e
# 添加以下行(每30分钟同步一次)
*/30 * * * * /usr/local/bin/gravity-sync pull
📝 常用命令参考
| 命令 | 功能描述 |
|---|---|
gravity-sync configure | 重新配置同步参数 |
gravity-sync compare | 比对本地与远程配置差异 |
gravity-sync push | 强制推送本地配置到远程 |
gravity-sync pull | 拉取远程配置到本地 |
gravity-sync status | 显示同步状态和历史 |
gravity-sync upgrade | 更新 Gravity Sync 到最新版本 |
🧰 故障排除
同步失败的常见原因
- 网络问题:确保两台设备可以相互 ping 通并通过 SSH 连接
- 权限错误:检查
/etc/gravity-sync目录权限是否正确 - 配置冲突:使用
gravity-sync compare查看配置差异 - 日志查看:同步日志保存在
/etc/gravity-sync/gs-sync.log
重置同步配置
如果遇到无法解决的问题,可以重置配置:
# 备份当前配置
mv /etc/gravity-sync/gravity-sync.conf /etc/gravity-sync/gravity-sync.conf.bak
# 重新配置
gravity-sync configure
📚 进阶配置
Gravity Sync 支持通过环境变量或配置文件自定义高级选项,主要配置文件路径:
- 主配置:
/etc/gravity-sync/gravity-sync.conf - 环境变量定义:
ENV.md - 服务模板:
templates/gravity-sync.service
可调整的高级参数包括:
- 同步文件白名单/黑名单
- SSH 连接超时设置
- 日志级别和轮转策略
- Docker 容器支持配置
🔄 升级 Gravity Sync
保持工具为最新版本以获取新功能和安全更新:
gravity-sync upgrade
升级过程会自动备份当前配置,并获取最新代码。
🎯 总结
Gravity Sync 提供了一种简单高效的方式来维护双 Pi-hole 环境的配置一致性。通过本文介绍的步骤,您可以在几分钟内完成从安装到自动化的全过程,为您的网络添加一层可靠的保障。无论是家庭用户还是小型企业,Gravity Sync 都是构建高可用 Pi-hole 系统的理想选择。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



