Ubuntu 域名相关备份方法
一 场景与总体思路
- 需要区分两类“域名”配置:
- 客户端/服务器的DNS解析器配置(如 systemd-resolved 的 DNS 服务器、/etc/resolv.conf 的软链)。
- 自建 BIND9 域名服务器 的配置与区域数据(主/从区域文件、named 配置等)。
- 备份原则:优先备份“源配置文件”,再做时间戳归档;变更前先备份当前生效配置,便于快速回滚。
二 备份 DNS 解析器配置 systemd-resolved
- 备份步骤
- 备份当前解析器配置
sudo cp /etc/systemd/resolved.conf /etc/systemd/resolved.conf.bak_$(date +%F_%T)
- 备份当前 resolv.conf 的链接或内容
sudo cp -a /etc/resolv.conf /etc/resolv.conf.bak_$(date +%F_%T)
- 可选:导出当前 systemd-resolved 运行状态(便于审计)
sudo systemctl status systemd-resolved > /root/resolved-status_$(date +%F_%T).txt
- 还原要点
- 还原解析器配置:sudo cp /etc/systemd/resolved.conf.bak_YYYY-MM-DD_HH:MM:SS /etc/systemd/resolved.conf
- 还原 resolv.conf:
- 若之前是软链:sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
- 若之前是静态文件:sudo cp /etc/resolv.conf.bak_YYYY-MM-DD_HH:MM:SS /etc/resolv.conf
- 使配置生效:sudo systemctl restart systemd-resolved
- 说明
- 在 Ubuntu 22.04+ 常见做法是通过编辑 /etc/systemd/resolved.conf 设置 DNS,并确保 /etc/resolv.conf 指向 /run/systemd/resolve/resolv.conf 的软链,避免重启后被覆盖。
三 备份 BIND9 域名服务器配置与区域数据
- 备份步骤
- 备份主配置
sudo cp /etc/bind/named.conf.local /etc/bind/named.conf.local.bak_$(date +%F_%T)
sudo cp /etc/bind/named.conf.options /etc/bind/named.conf.options.bak_$(date +%F_%T)
- 备份区域文件(示例域名与反向区)
sudo cp /var/cache/bind/example.com.db /var/cache/bind/example.com.db.bak_$(date +%F_%T)
sudo cp /var/cache/bind/192.168.1.db /var/cache/bind/192.168.1.db.bak_$(date +%F_%T)
- 可选:备份 named.conf(若存在自定义包含或全局项)
sudo cp /etc/bind/named.conf /etc/bind/named.conf.bak_$(date +%F_%T)
- 校验(还原前建议检查语法)
sudo named-checkconf
sudo named-checkzone example.com /var/cache/bind/example.com.db
- 还原要点
- 先停服务:sudo systemctl stop bind9
- 还原文件(示例):
sudo cp /etc/bind/named.conf.local.bak_YYYY-MM-DD_HH:MM:SS /etc/bind/named.conf.local
sudo cp /var/cache/bind/example.com.db.bak_YYYY-MM-DD_HH:MM:SS /var/cache/bind/example.com.db
- 启动服务:sudo systemctl start bind9
- 说明
- 常见路径为:/etc/bind/(配置)与 /var/cache/bind/(区域数据);区域文件命名与目录以实际环境为准。
四 一键打包脚本示例
- 客户端/服务器解析器配置
sudo tar czf dns-resolver-backup_$(date +%F_%T).tgz
/etc/systemd/resolved.conf /etc/resolv.conf
/usr/lib/systemd/system/systemd-resolved.service
- BIND9 域名服务器
sudo tar czf bind9-backup_$(date +%F_%T).tgz
/etc/bind /var/cache/bind
/usr/lib/systemd/system/bind9.service
- 将压缩包妥善异地保存(如对象存储/内网备份服务器),并定期校验与清理过期归档。