核心目标是统一、快速、可控解析内外网资源:对内解析私有域名(如gitlab.internal),对外转发至可信上游(如114.114.114.114),并缓存提速;unbound比bind更轻量安全,专为转发缓存设计,配置简洁且默认加固。

在企业内网搭建私有 DNS 转发缓存服务,核心目标是:让内部用户通过一个统一、快速、可控的 DNS 入口访问内外网资源——对内解析私有域名(如 gitlab.internal),对外请求则转发至可信上游(如 114.114.114.114 或 223.5.5.5),同时自动缓存结果以提升响应速度、降低出口带宽消耗。
选型建议:用 Unbound 还是 BIND?
对于纯转发+缓存场景,Unbound 是更轻量、更安全、更易维护的选择。它专为递归/缓存设计,无 BIND 那样复杂的区域管理逻辑,配置简洁,内存占用低,且默认启用 DNSSEC 验证和随机化端口等加固机制。BIND 更适合需要权威解析(如自管 internal 域)或主从同步的复杂环境。
- Unbound:推荐用于大多数内网缓存 DNS 场景,尤其适合中小团队快速落地
- BIND:仅当需同时承担内网权威域名(如
dev.company.local)解析时才选用,配置复杂度显著上升
Unbound 部署关键步骤(Rocky Linux 9.5 / CentOS Stream 9)
以下操作均以 root 用户执行:
Linux 性能分析与调优专家,覆盖 CPU、内存、磁盘 I/O、网络、内核参数、编译优化、容器/K8s。适用场景:系统卡顿/高负载、内存不足/OOM/Swap 高、CPU 异常/iowait 高。
-
安装与基础配置:
dnf install -y unbound
备份默认配置:cp /etc/unbound/unbound.conf /etc/unbound/unbound.conf.backup -
监听与访问控制:
编辑/etc/unbound/unbound.conf,确保包含:interface: 0.0.0.0@53 access-control: 192.168.0.0/16 allow access-control: 10.0.0.0/8 allow access-control: 172.16.0.0/12 allow
这表示监听所有 IPv4 地址的 53 端口,并只允许常见内网网段查询,拒绝公网直连 -
启用转发与上游 DNS:
在配置中添加或修改forward-zone:forward-zone: name: "." forward-addr: 114.114.114.114@53 forward-addr: 223.5.5.5@53
name: "."表示将所有未命中本地缓存的查询全部转发;可配置多个forward-addr实现冗余 -
启动并设为开机自启:
systemctl enable --now unbound
检查状态:systemctl status unbound
客户端配置与验证方法
内网终端(Linux / Windows / macOS)需将 DNS 服务器地址指向该 Unbound 主机 IP(如 192.168.10.5):
- Linux 客户端:修改
/etc/resolv.conf,首行写nameserver 192.168.10.5;建议配合 NetworkManager 或 systemd-resolved 统一管理 - Windows 客户端:网络适配器属性 → IPv4 → 手动指定 DNS 服务器
- 验证是否生效:
dig www.baidu.com @192.168.10.5 +short—— 应返回 IPdig www.baidu.com @192.168.10.5 +stats | grep "Query time"—— 第二次查询时间应明显缩短(缓存命中)
安全与运维要点
转发缓存服务虽简单,但几个细节决定稳定性和安全性:
-
防火墙必须放行 UDP/TCP 53 端口:
firewall-cmd --permanent --add-port=53/udpfirewall-cmd --permanent --add-port=53/tcpfirewall-cmd --reload -
禁用 SELinux 或调整策略:Unbound 默认被 SELinux 限制,临时方案是
setenforce 0;长期建议用semanage port -a -t dns_port_t -p udp 53授权 -
定期检查日志与缓存状态:
journalctl -u unbound -n 50 --no-pagerunbound-control stats_noreset可查看缓存命中率、查询总数等指标 -
不建议开放公网访问:避免成为开放 DNS 反射攻击源,严格限制
access-control范围










