千家信息网

CentOS7中搭建DNS域名解析服务

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,DNS系统的作用DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户机提供正向或反向的地址查询服务。正向解析:根据主机名称(域名)查找对应的IP地址
千家信息网最后更新 2026年11月02日CentOS7中搭建DNS域名解析服务

DNS系统的作用

DNS系统在网络中的作用就是维护着一个地址数据库,其中记录了各种主机域名与IP地址的对应关系,以便为客户机提供正向或反向的地址查询服务。

  • 正向解析:根据主机名称(域名)查找对应的IP地址
  • 反向解析:根据IP地址查找对应的主机域名

DNS系统类型

缓存域名服务器

  • 也称为高速缓存服务器
  • 通过向其他域名服务器查询获得域名->IP地址记录
  • 将域名查询结果缓存到本地,提高重复查询时的速度

主域名服务器

  • 特定DNS区域的官方服务器,具有唯一性
  • 负责维护该区域内多有域名->IP地址的映射记录

从域名服务器

  • 也称为辅助域名服务器
  • 其维护的域名->IP地址记录来源于主域名服务器

BIND域名服务

BIND不是唯一能够提供域名服务的DNS程序,但它却是应用最为广泛的,BIND可以运行在大多数Linux主机中。

安装BIND软件

[root@localhost ~]# yum install bind -y    //CentOS 7连接网络,可以直接使用yum安装

BIND服务端程序

  • 主要执行程序:/usr/sbin/named
  • 默认监听端口 53
  • 主要配置文件
    • /etc/named.conf
  • 保存DNS解析记录的数据文件
    • /var/named/

主要配置文件

  • 全局配置
    • 设置DNS服务器的全局参数
    • 包括监听地址/端口、数据文件的默认位置
    • 使用options{.....};的配置端
options{    listen-on port 53 {本地IP地址} ;                  //监听地址和端口        directory  "/var/named";                       //区域数据文件的默认存放位置    allow-query  {192.168.1.0/24;173.16.16.0/24;};  //允许使用本DNS服务的网段
  • 区域配置部分

    • 设置本服务器提供域名解析的特定DNS区域

    • 包括域名、服务器角色、数据文件名等

    • 使用zone "区域名"IN{。。。};的配置段
正向解析zone "yun.com" IN {                   //正向"yun.com"区域        type master;                  //区域类型为主区域        file "yun.com.zone";           //区域数据文件为"yun.com.zone"        allow-transfer {173.16.16.2};  //允许下载的从服务器地址};反向解析zone "16.16.173.in-addr.arpa" IN {     //反向"173.16.16.0/24"区域        type master;        file "173.16.16.arpa";         //区域数据文件为"173.16.16.arpa"        allow-update { none; };};
  • 区域数据配置文件

    全局TTL配置项及SOA记录 SOA:资源起始记录

$TTL 1D                                 //有效解析记录的生存周期@       IN SOA  @ rname.invalid. (      //SOA标记、域名、管理邮箱0       ; serial                        //更新序列号,可以是10位以内的整数1D      ; refresh                       //刷新时间,重新下载地址数据的间隔1H      ; retry                         //重试延时,下载失败后的重试间隔1W      ; expire                        //失效时间,超过该时间仍无法下载则放弃3H )    ; minimum                       //无效解析记录的生存周期

​ 域名解析记录

NS:域名服务器记录 (Name Service)MX:邮件交换记录 (Mail Exchange)A:地址记录,只用在正向解析区域中 (Address)CNAME:别名记录(Canonical Name)"*"  IN IP:泛域名解析PTR:指针记录,只用反向解析区域中记录的第一列指定IP地址中的主机地址部分即可

DNS配置文件

  • /etc/named.conf 主要配置文件 控制系统全局 (include 包含)

  • /etc/named.rfc1912.zones 区域配置文件 控制具体单个区域

  • /var/named/named.localhost 区域数据配置文件 区域信息

搭建DNS服务

正向解析配置

1、安装BIND软件

[root@localhost ~]# yum install bind -y已加载插件:fastestmirror, langpacksbase                                                                                                   | 3.6 kB  00:00:00     extras                                                                                                 | 3.4 kB  00:00:00     updates                                                                                                | 3.4 kB  00:00:00     (1/4): base/7/x86_64/group_gz                                                                          | 166 kB  00:00:00     (2/4): extras/7/x86_64/primary_db                                                                      | 215 kB  00:00:00 ...//省略部分内容...已安装:  bind.x86_64 32:9.9.4-74.el7_6.2                                                                                             作为依赖被升级:  bind-libs.x86_64 32:9.9.4-74.el7_6.2   bind-libs-lite.x86_64 32:9.9.4-74.el7_6.2  bind-license.noarch 32:9.9.4-74.el7_6.2   bind-utils.x86_64 32:9.9.4-74.el7_6.2 完毕!

2、查看配置文件的存放位置,方便我们编辑配置文件

[root@localhost named]# rpm -qc bind/etc/logrotate.d/named/etc/named.conf                 //主配置文件位置/etc/named.iscdlv.key/etc/named.rfc1912.zones        //区域配置文件位置/etc/named.root.key/etc/rndc.conf/etc/rndc.key/etc/sysconfig/named/var/named/named.ca/var/named/named.empty/var/named/named.localhost     //区域数据配置文件/var/named/named.loopback

3、更改主配置文件(此处主要修改缉监听地址和权限开发两处)

[root@localhost named]# vim /etc/named.conf ...//省略部分内容...// See the BIND Administrator's Reference Manual (ARM) for details about the// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.htmloptions {        listen-on port 53 { 192.168.144.133; };     //修改地址为监听自己的本地地址        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";        recursing-file  "/var/named/data/named.recursing";        secroots-file   "/var/named/data/named.secroots";        allow-query     { any; };                //权限放开,允许任何的主机都可以使用DNS服务        /*          - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.        ...//省略部分内容...        pid-file "/run/named/named.pid";        //进程文件的存放位置,不要改动        session-keyfile "/run/named/session.key";};logging {        channel default_debug {                file "data/named.run";                severity dynamic;        };};zone "." IN {                         //根域服务器的解析,不要改动        type hint;        file "named.ca";};include "/etc/named.rfc1912.zones";     //著配置文件包含的数据文件信息,不要更改include "/etc/named.root.key";

4、修改主配置文件包含的区域配置文件信息

[root@localhost named]# vim /etc/named.rfc1912.zones// named.rfc1912.zones://// Provided by Red Hat caching-nameserver package//// ISC BIND named zone configuration for zones recommended by// RFC 1912 section 4.1 : localhost TLDs and address zones// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt// (c)2007 R W Franks//// See /usr/share/doc/bind*/sample/ for example named configuration files.//zone "localhost.localdomain" IN {        type master;                   //正向解析文件的配置模板               file "named.localhost";              allow-update { none; };};                                       //正向解析区域配置文件位置zone "localhost" IN {        type master;        file "named.localhost";        allow-update { none; };};zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {        type master;                     //ipv6解析文件的配置模板        file "named.loopback";        allow-update { none; };};                                       //反向解析区域配置文件位置zone "1.0.0.127.in-addr.arpa" IN {        type master;        file "named.loopback";         //反向解析文件的配置模板        allow-update { none; };
...//省略部分内容...// See /usr/share/doc/bind*/sample/ for example named configuration files.//zone "localhost.localdomain" IN {        type master;        file "named.localhost";        allow-update { none; };};zone "localhost" IN {        type master;        file "named.localhost";        allow-update { none; };};zone "kgc.com" IN {               //复制模板,更改区域名        type master;        file "kgc.com.zone";      //更改区域数据文件名        allow-update { none; };};zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {        type master;        file "named.loopback";        allow-update { none; };};zone "1.0.0.127.in-addr.arpa" IN {        type master;      ...//省略部分内容...  

5、创建区域数据文件,使区域文件可以读取数据文件

[root@localhost named]# cd /var/named/    //进入区域数据文件存放目录[root@localhost named]# ls                //查看目录信息data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves[root@localhost named]# cp -p named.localhost kgc.com.zone  //递归复制,创建kgc.com.zone文件[root@localhost named]# ls    //查看是否创建kgc.com.zone文件data  dynamic  kgc.com.zone  named.ca  named.empty  named.localhost  named.loopback  slaves[root@localhost named]# vim kgc.com.zone   //编辑区域数据文件$TTL 1D@       IN SOA  kgc.com. admin.kgc.com. (            //更改域名、管理邮箱,主要后面的"."不能少                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      kgc.com.            //更改域名服务器记录地址        A       192.168.144.133     //更改正向解析条目地址IN MX   10      mail.kgc.com.       //添加邮件交换记录地址www IN  A       192.168.100.99      //添加www域名的解析地址ftp IN  A       192.168.100.88      //添加ftp域名解析地址smtp IN CNAME   www                 //添加别名解析记录*  IN   A       8.8.8.8              //添加泛域名解析地址~                                                                                         ~                                :wq   //保存退出

6、关闭防火墙与增强安全功能,方便客户端访问,然后启动DNS服务。

[root@localhost named]# systemctl stop firewalld.service   //关闭防火墙[root@localhost named]# setenforce 0                       //关闭增强型安全更能[root@localhost named]# systemctl start named              //启动DNS服务[root@localhost named]# systemctl status named             //查看服务● named.service - Berkeley Internet Name Domain (DNS)   //DNS正常启动   Loaded: loaded (/usr/lib/systemd/system/named.service; disabled; vendor preset: disabled)   Active: active (running) since 四 2019-09-05 17:36:31 CST; 11s ago  Process: 7425 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)  Process: 7422 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS) Main PID: 7427 (named)   CGroup: /system.slice/named.service           └─7427 /usr/sbin/named -u named -c /etc/named.conf9月 05 17:36:31 localhost.localdomain named[7427]: managed-keys-zone: loaded serial 09月 05 17:36:31 localhost.localdomain named[7427]: zone 0.in-addr.arpa/IN: loaded serial 09月 05 17:36:31 localhost.localdomain named[7427]: zone 1.0.0.127.in-addr.arpa/IN: loaded serial 09月 05 17:36:31 localhost.localdomain named[7427]: zone kgc.com/IN: loaded serial 09月 05 17:36:31 localhost.localdomain named[7427]: zone localhost.localdomain/IN: loaded serial 09月 05 17:36:31 localhost.localdomain named[7427]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0...ial 09月 05 17:36:31 localhost.localdomain named[7427]: zone localhost/IN: loaded serial 09月 05 17:36:31 localhost.localdomain named[7427]: all zones loaded9月 05 17:36:31 localhost.localdomain named[7427]: running9月 05 17:36:31 localhost.localdomain systemd[1]: Started Berkeley Internet Name Domain (DNS).Hint: Some lines were ellipsized, use -l to show in full.[root@localhost named]# echo "nameserver 192.168.144.133" > /etc/resolv.conf //覆盖域名解析地址文件信息,因为我们自己搭建的DNS服务器就要解析我们自己的地址,所以这边直接覆盖掉域名解析地址文件[root@localhost named]# cat /etc/resolv.conf nameserver 192.168.144.133      //以覆盖原信息

7、使用host命令常看DNS解析服务是否搭建成功

[root@localhost named]# host www.kgc.com     //解析域名www.kgc.comwww.kgc.com has address 192.168.100.99       //成功解析IP地址[root@localhost named]# host ftp.kgc.com     //解析域名ftp.kgc.com ftp.kgc.com has address 192.168.100.88       //成功解析IP地址[root@localhost named]# host aaa.kgc.com     //泛域名解析aaa.kgc.com has address 8.8.8.8              //成功解析IP地址[root@localhost named]# host smtp.kgc.com    //别名解析smtp.kgc.com is an alias for www.kgc.com.  www.kgc.com has address 192.168.100.99       //成功解析IP地址

反向解析配置

1、继续上面的配置,进入区域配置文件中更改区域配置反向解析区域模板

[root@localhost named]# vim /etc/named.rfc1912.zones...//省略部分内容...zone "kgc.com" IN {        type master;        file "kgc.com.zone";        allow-update { none; };};zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {        type master;        file "named.loopback";        allow-update { none; };};zone "1.0.0.127.in-addr.arpa" IN {        type master;        file "named.loopback";       //复制此处模板        allow-update { none; };};zone "100.168.192.in-addr.arpa" IN {    //更改区域地址,反向填写        type master;        file "yun.com.local";           //更改区域数据文件名        allow-update { none; };};zone "0.in-addr.arpa" IN {        type master;        file "named.empty";...//省略部分内容...

2、进入区域数据文件存放目录建立区域数据文件,与区域文件中更给的区域数据文件名保持一致,并进入更改区域数据文件

[root@localhost named]# cd /var/named/     //进入目录[root@localhost named]# ls                //查看data  dynamic  kgc.com.zone  named.ca  named.empty  named.localhost  named.loopback  slaves[root@localhost named]# cp -p kgc.com.zone yun.com.local   //递归复制[root@localhost named]# vim yun.com.local       //进入编辑数据信息$TTL 1D @       IN SOA  yun.com. admin.yun.com. (        //此处kgc改为yun                                        0       ; serial                                        1D      ; refresh                                        1H      ; retry                                        1W      ; expire                                        3H )    ; minimum        NS      yun.com.            //此处kgc改为yun        A       192.168.144.133 99 IN   PTR     www.yun.com.        //更改为方向解析地址88 IN   PTR     ftp.yun.com.        //更改为方向解析地址    ...//省略部分内容...

3、重启DNS服务,并检测反向解析是否创建成功

[root@localhost named]# systemctl restart named          //重启服务[root@localhost named]# host 192.168.100.99       //解析IP地址99.100.168.192.in-addr.arpa domain name pointer www.yun.com.   //成功解析出域名[root@localhost named]# host 192.168.100.88       //解析IP地址   88.100.168.192.in-addr.arpa domain name pointer ftp.yun.com.    //成功解析出域名

配置从域名服务器

1、上面我们成功创建了主服务器,这个时候我们重新开启一台CentOS 7系统,作为DNS的从服务器,查看从服务器的IP地址,并关闭防火墙功能与增强性安全功能,使此服务器方便客户机与主服务器连接

[root@localhost ~]# ifconfig                   //查看网卡信息ens33: flags=4163  mtu 1500        inet 192.168.144.135  netmask 255.255.255.0  broadcast 192.168.144.255        inet6 fe80::a85a:c203:e2e:3f3c  prefixlen 64  scopeid 0x20        inet6 fe80::ad78:663f:1f02:22e4  prefixlen 64  scopeid 0x20        ether 00:0c:29:75:9f:c8  txqueuelen 1000  (Ethernet)        RX packets 1049  bytes 1282518 (1.2 MiB)        RX errors 0  dropped 0  overruns 0  frame 0        ...//省略部分内容...[root@localhost ~]# systemctl stop firewalld.service    //关闭防火墙[root@localhost ~]# setenforce 0                        //关闭增强性安全功能

2、在从服务器中安装BIND软件,并更改DNS配置文件信息

[root@localhost ~]# yum install bind -y      //安装DNS服务软件BIND已加载插件:fastestmirror, langpacksbase                                                      | 3.6 kB  00:00:00   extras                                                    | 3.4 kB  00:00:00     updates                                                   | 3.4 kB  00:00:00     (1/4): base/7/x86_64/group_gz                             | 166 kB  00:00:00     (2/4): extras/7/x86_64/primary_db                         | 215 kB  00:00:00  ...//省略部分内容...[root@localhost ~]# vim /etc/named.conf      //进入编辑主配置文件//// 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.//// See the BIND Administrator's Reference Manual (ARM) for details about the// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.htmloptions {        listen-on port 53 { 192.168.144.135; };     //更改监听地址为本机地址        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";        recursing-file  "/var/named/data/named.recursing";        secroots-file   "/var/named/data/named.secroots";        allow-query     { any; };                   //权限放开,允许任何的主机都可以使用DNS服务        /*          - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.         - If you are building a RECURSIVE (caching) DNS server, you need to enable            recursion. ...//省略部分内容...[root@localhost ~]# vim /etc/named.rfc1912.zones    //修改区域配置文件// RFC 1912 section 4.1 : localhost TLDs and address zones// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt// (c)2007 R W Franks//// See /usr/share/doc/bind*/sample/ for example named configuration files.//zone "localhost.localdomain" IN {        type master;        file "named.localhost";        allow-update { none; };};zone "localhost" IN {        type master;        file "named.localhost";          //复制此模板        allow-update { none; };};zone "kgc.com" IN {                   //粘贴并更新域名与主服务器相同        type slave;                   //设置类型为slave        file "slaves/kgc.com.zone";   //区域数据文件地址我们将从主服务器同步到slaves目录中        masters { 192.168.144.133; }; //删除原条目更改为指向主服务器的地址};zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {        type master;        file "named.loopback";        allow-update { none; };};...//省略部分内容...[root@localhost ~]# cd /var/named      //进入区域数据文件存放目录[root@localhost named]# ls             //查看确定目录内是否有slaves命令data  dynamic  named.ca  named.empty  named.localhost  named.loopback  slaves[root@localhost named]# ls slaves/    //进入目录,查看是否有内容[root@localhost named]#               //目前还没有内容

3、回到主服务器,更改配置文件,使主服务器与从服务器同步,完成后重启DNS服务

[root@localhost named]# vim /etc/named.rfc1912.zones  //编辑主服务区域配置文件//zone "localhost.localdomain" IN {        type master;        file "named.localhost";        allow-update { none; };};zone "localhost" IN {        type master;        file "named.localhost";        allow-update { none; };};zone "kgc.com" IN {        type master;        file "kgc.com.zone";        allow-transfer { 192.168.144.135; };  //此处更改为指向从服务器的地址};zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {        type master;        file "named.loopback";        allow-update { none; };};zone "1.0.0.127.in-addr.arpa" IN {        type master;...//省略部分内容...[root@localhost named]# systemctl restart named    //重启DNS服务

4、回到从服务器,启动DNS服务,查看slaves目录内是否有同步的区域数据文件,然后与主服务一样编辑内容覆盖域名解析地址文件信息。

[root@localhost named]# systemctl restart named   //启动DNS服务[root@localhost named]# ls slaves/kgc.com.zone[root@localhost named]# echo "nameserver 192.168.144.135" > /etc/resolv.conf [root@localhost named]# cat /etc/resolv.confnameserver 192.168.144.135

5、使用从服务解析域名,看是否可以解析、解析结果是否相同,如果相同表示我们建立的主从服务器成功。

[root@localhost named]# host www.kgc.com        //解析域名www.kgc.comwww.kgc.com has address 192.168.100.99          //解析地址与主服务器相同[root@localhost named]# host ftp.kgc.com        //解析域名ftp.kgc.comftp.kgc.com has address 192.168.100.88          //解析地址与主服务器相同[root@localhost named]# host aaa.kgc.com        //反域名解析aaa.kgc.com has address 8.8.8.8                 //解析地址与主服务器相同[root@localhost named]# host smtp.kgc.com       //别名解析smtp.kgc.com is an alias for www.kgc.com.www.kgc.com has address 192.168.100.99          //解析地址与主服务器相同
服务 文件 地址 域名 区域 配置 服务器 数据 内容 部分 成功 信息 目录 位置 相同 主机 模板 监听 系统 安全 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技财经 互联网通讯科技 互联网巨头反垄断金融科技 科技互联网技术 上海互联网科技有限公司 有马互联网科技 互联网科技股票 卓越科技(互联网 ) 天下捷融互联网科技 剑昆互联网络科技有限公司临桂 互联网为啥属于高科技 厦门比较好的科技互联网公司 世界互联网科技公司市值排名 宜昌元轩互联网科技有限公司 杭州壁岐互联网科技有限公司 工业互联网科技成果转化 山东大美朱楼互联网科技有限公司 上海同邻互联网科技有限公司规模 安徽九吞吴互联网科技有限公司 互联网大会出现的黑科技 互联网科技有限公司 奇士达互联网科技 顺玮阁互联网科技 火传媒上海互联网科技 互联网科技博客 博兴的互联网电子科技公司 中国的互联网科技企业的崛起 山东星卡互联网科技有限公司官网 杭州披云加互联网科技有限公司 互联网科技收购价值
0