(SEO优化):
CentOS 6.5 搭建DNS服务器详细教程(Bind9配置+域名解析实战)
META描述(SEO优化):
本文详细讲解在CentOS 6.5操作系统中,如何从零开始搭建并配置DNS服务器(使用Bind9),包含Bind安装、主配置文件(zone)编写、A记录、CNAME记录配置、以及测试验证全过程,是运维人员学习DNS配置的实战指南。
前言:为什么在CentOS 6.5上搭建DNS服务器?
在互联网的世界里,DNS(Domain Name System,域名系统)扮演着“互联网电话簿”的角色,它将人类易于记忆的域名(如 www.google.com)解析为机器能够识别的IP地址(如 250.191.78),虽然现在云服务商都提供了便捷的DNS服务,但理解并掌握DNS服务器的搭建原理,对于系统管理员、运维工程师以及网络安全爱好者来说,是一项至关重要的技能。
本文将以经典的 CentOS 6.5 为例,手把手教你如何使用业界标准的 Bind9 软件包,从零开始搭建一个功能完善的DNS服务器,即使你使用的是更新的CentOS版本,本教程的核心配置思想也同样适用。
目标读者: Linux系统管理员、运维工程师、网络工程师、对DNS技术感兴趣的初学者。 学习目标: 独立完成DNS服务器的安装、配置、管理及故障排查。
环境准备
在开始之前,请确保你的系统环境满足以下要求:
-
操作系统: CentOS 6.5 Minimal (最小化安装即可,我们后续会手动安装所需组件)。
-
主机名: 建议设置一个固定且有意义的主机名,
dns-server.example.com。# 临时设置 hostname dns-server.example.com # 永久设置,需编辑 /etc/sysconfig/network 和 /etc/hosts # 编辑 /etc/sysconfig/network vi /etc/sysconfig/network # 添加或修改: HOSTNAME=dns-server.example.com # 编辑 /etc/hosts vi /etc/hosts # 添加: 192.168.1.100 dns-server.example.com dns-server
-
静态IP地址: DNS服务器必须拥有一个固定的IP地址,假设本机IP为
168.1.100。 -
Yum源: 确保你的Yum源可以正常使用,推荐使用官方源或阿里云/网易等国内镜像源以加快下载速度。

安装Bind9 DNS服务
Bind9是Linux下最流行的DNS服务器软件,我们将使用Yum包管理器来安装它。
-
安装Bind9及相关工具包 执行以下命令,安装
bind(主程序)、bind-utils(客户端测试工具,如nslookup,dig)和bind-chroot(可选,用于增强安全性,将Bind服务运行在chroot环境中)。# 更新系统 yum update -y # 安装Bind yum install -y bind bind-utils bind-chroot
-
安装后检查 安装完成后,Bind的主要文件和目录结构如下:
- 主配置文件:
/etc/named.conf(或/etc/named.caching-nameserver.conf) - 区域数据文件目录:
/var/named/ - 服务脚本:
/etc/init.d/named - 端口监听: 默认监听
53(TCP/UDP)
- 主配置文件:
配置DNS服务器
这是整个教程的核心,我们将配置一个“权威DNS服务器”,用于解析我们自己域名的记录。
编辑主配置文件 /etc/named.conf
这是Bind的全局配置文件,定义了服务器的全局参数和区域声明。

# 使用vi编辑器打开文件 vi /etc/named.conf
为了简化,我们可以先清空或注释掉文件中 options 和 zone 部分的默认内容,然后进行如下配置:
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 127.0.0.1; 192.168.1.100; }; // 监听本机和内网IP
listen-on-v6 port 53 { ::1; };
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";
allow-query { localhost; 192.168.1.0/24; }; // 允许查询的客户端,这里允许本地和内网网段
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/var/run/named/named.pid";
session-keyfile "/var/run/named/session.key";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
// 下面是我们自己添加的区域配置
// 正向解析区域
zone "example.com" IN {
type master;
file "example.com.zone"; // 对应的区域数据文件名
allow-update { none; };
};
// 反向解析区域
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.zone"; // 对应的区域数据文件名
allow-update { none; };
};
配置说明:
listen-on: 指定DNS服务器监听的IP地址,务必将你的服务器内网IP168.1.100加入。allow-query: 定义哪些客户端可以向此服务器发起查询请求,这里我们设置为localhost和内网网段168.1.0/24,适合内网使用。zone "example.com" IN {...}: 正向解析区域声明,我们为example.com这个域创建一个主区域。type master: 表示这是一个主DNS服务器。file "example.com.zone": 指定存储该域具体DNS记录的文件,这个文件将在/var/named/目录下创建。
zone "1.168.192.in-addr.arpa" IN {...}: 反向解析区域声明,它将IP地址168.1.x映射回主机名,这个区域名是固定的,由IP地址反转后加上.in-addr.arpa后缀构成。
创建正向解析区域文件
根据 /etc/named.conf 的声明,我们需要在 /var/named/ 目录下创建 example.com.zone 文件。
# 进入目录 cd /var/named/ # 复制一个模板文件作为基础 cp named.localhost example.com.zone # 编辑新文件 vi example.com.zone
如下:
$TTL 1D
@ IN SOA dns-server.example.com. admin.example.com. (
2025102601 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS dns-server.example.com.
A 192.168.1.100
AAAA ::1
; 主机记录
dns-server IN A 192.168.1.100
www IN A 192.168.1.101
ftp IN A 192.168.1.102
; 别名记录
webmail IN CNAME www.example.com.
配置说明:
$TTL 1D: 设置默认的生存时间为1天。- 代表当前的区域名,即
example.com。 SOA (Start of Authority):授权开始记录,是每个区域文件中最重要的记录。admin.example.com.是管理员的邮箱地址, 符号在邮件地址中需要替换为 。

