在 CentOS/RHEL 系列服务器中配置 DNS 服务器的转发器(用于 BIND DNS 服务),需要修改 BIND 的主配置文件,指定当本地无法解析域名时转发查询的目标 DNS 服务器。以下是详细步骤:
一、前提条件
- 已安装 BIND DNS 服务:
bash
# 安装BIND服务及工具 yum install -y bind bind-utils - 确认 BIND 服务状态:
bash
systemctl status named # 检查是否已启动
二、配置 DNS 转发器
BIND 的转发器配置在主配置文件
/etc/named.conf中。1. 备份配置文件(重要)
bash
cp /etc/named.conf /etc/named.conf.bak
2. 编辑 BIND 主配置文件
bash
vi /etc/named.conf
3. 配置转发器参数
在
options区块中添加或修改forwarders和forward参数:ini
options {
listen-on port 53 { 127.0.0.1; 192.168.1.100; }; # 监听的IP和端口(添加服务器实际IP)
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { localhost; 192.168.1.0/24; }; # 允许查询的网段
# 配置转发器(添加需要转发的DNS服务器IP)
forwarders {
8.8.8.8; # 谷歌DNS
114.114.114.114; # 国内DNS
223.5.5.5; # 阿里云DNS
};
forward only; # 仅转发模式(本地无法解析时才转发,推荐)
# forward first; # 优先转发(先转发,转发失败再尝试本地解析)
# 其他默认配置保留...
};
参数说明:
forwarders:指定转发目标 DNS 服务器列表(按顺序尝试)。forward only:仅当转发器可用时才查询,本地不尝试解析(适合纯转发场景)。forward first:优先转发,转发失败后再尝试本地解析(适合混合场景)。
三、检查配置文件语法
bash
named-checkconf /etc/named.conf
- 若输出为空,说明语法正确;若有错误,根据提示修改对应行。
四、重启 BIND 服务使配置生效
bash
systemctl restart named
systemctl enable named # 设为开机自启
五、验证转发器配置
1. 本地测试 DNS 转发
使用
nslookup或dig查询一个本地未配置的域名(如example.com),验证是否通过转发器解析:bash
# 方法1:使用nslookup
nslookup example.com 127.0.0.1 # 向本地DNS服务器查询
# 方法2:使用dig(更详细)
dig @127.0.0.1 example.com
成功标志:输出中
SERVER字段显示本地 DNS 服务器 IP(如127.0.0.1),且ANSWER SECTION返回正确的 IP 地址,说明转发成功。2. 查看 BIND 日志确认转发
bash
tail -f /var/log/messages | grep named
日志中会显示转发查询的记录,例如:
plaintext
named[xxx]: client 127.0.0.1#xxxxx (example.com): query: example.com A + (127.0.0.1)
named[xxx]: query-errors: debug 1: resolving example.com/A via 8.8.8.8#53
六、常见问题解决
-
转发失败:
- 检查
forwarders中的 DNS 服务器是否可达(ping 8.8.8.8)。 - 确认防火墙放行 DNS 端口(UDP 53):
bash
firewall-cmd --add-port=53/udp --permanent firewall-cmd --reload
- 检查
-
客户端无法使用转发器:
- 检查
allow-query参数是否包含客户端所在网段(如192.168.1.0/24)。 - 客户端需将 DNS 服务器地址设置为当前 BIND 服务器的 IP。
- 检查
通过以上步骤,即可配置 BIND DNS 服务器的转发器,实现将本地无法解析的域名查询转发到指定的上级 DNS 服务器,适用于搭建内部 DNS 服务场景。