在 CentOS/RHEL 系列服务器中配置 DNS 服务器(BIND 服务)的转发器,主要是通过修改 BIND 的主配置文件,指定当本地 DNS 无法解析域名时,将查询请求转发到其他 DNS 服务器的规则。以下是详细操作步骤:
一、环境准备
-
安装 BIND 服务(若未安装):bash
# 安装BIND主程序和工具 yum install -y bind bind-utils -
确认 BIND 服务状态:bash
# 检查服务是否运行 systemctl status named # 若未运行,启动服务 systemctl start named # 设置开机自启 systemctl enable named
二、配置 DNS 转发器(核心步骤)
BIND 的转发器配置通过主配置文件
/etc/named.conf实现,该文件定义了 DNS 服务的全局规则。1. 备份配置文件(重要)
bash
cp /etc/named.conf /etc/named.conf.bak
2. 编辑主配置文件
bash
vi /etc/named.conf
3. 配置转发规则
在配置文件的
options区块中,添加或修改forwarders(转发目标)和forward(转发模式)参数:ini
options {
# 监听的IP地址(添加服务器本地IP,允许外部查询)
listen-on port 53 { 127.0.0.1; 192.168.1.100; }; # 替换为实际IP
# 允许查询的客户端网段(如本地局域网)
allow-query { localhost; 192.168.1.0/24; }; # 替换为实际网段
# 配置转发器(目标DNS服务器列表,按优先级排序)
forwarders {
8.8.8.8; # 谷歌公共DNS
114.114.114.114; # 国内公共DNS
223.5.5.5; # 阿里云DNS
};
# 转发模式(二选一)
forward only; # 仅转发:本地不解析,完全依赖转发器(推荐纯转发场景)
# forward first; # 优先转发:先请求转发器,失败后再尝试本地解析(混合场景)
# 保留其他默认配置(如目录、日志路径等)
};
参数说明:
forwarders:指定转发目标 DNS 服务器的 IP 地址,多个地址用分号分隔,按顺序尝试。forward only:本地 DNS 仅作为转发代理,不尝试自己解析域名,适合仅需转发功能的场景。forward first:优先向转发器查询,若转发失败,再尝试本地解析(如本地有自定义域名解析规则时使用)。
三、验证配置文件语法
修改后必须检查配置文件是否有语法错误:
bash
named-checkconf /etc/named.conf
- 若命令无输出,说明语法正确;若有错误,根据提示修改对应行(如括号不匹配、IP 格式错误等)。
四、重启服务使配置生效
bash
systemctl restart named
五、验证转发器是否生效
1. 本地测试转发功能
使用
dig或nslookup工具查询一个本地未配置的域名(如example.com),验证是否通过转发器解析:bash
# 向本地DNS服务器查询(127.0.0.1为本地DNS)
dig @127.0.0.1 example.com
成功标志:输出中
ANSWER SECTION会显示解析结果(如example.com的 IP),且SERVER字段为本地 DNS 服务器 IP(127.0.0.1),说明转发成功。2. 查看 DNS 查询日志
通过日志确认转发过程:
bash
# 实时查看BIND服务日志
tail -f /var/log/messages | grep named
日志中会显示转发查询的记录,例如:
plaintext
named[1234]: client 127.0.0.1#53533 (example.com): query: example.com A + (127.0.0.1)
named[1234]: 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(如
192.168.1.100)。
- 检查
通过以上步骤,即可完成 DNS 服务器转发器的配置,实现将本地无法解析的域名查询转发到指定的上级 DNS 服务器,适用于企业内部 DNS 服务搭建、加速域名解析等场景。