HCRM博客

如何在CentOS上搭建DNS服务器?

在CentOS上搭建DNS服务器是一个相对复杂但非常有意义的任务,DNS(Domain Name System,域名系统)是互联网中的一项基本服务,用于将人类可读的域名转换成计算机可理解的IP地址,以下是详细的步骤和相关配置,帮助你在CentOS上成功搭建一个内网DNS服务器。

一、安装BIND DNS服务器

1、更新系统软件包

如何在CentOS上搭建DNS服务器?-图1
(图片来源网络,侵权删除)
   sudo yum update y

2、安装BIND及其工具

   sudo yum install bind bindutils bindchroot y

3、启动并设置开机自启

   sudo systemctl start named
   sudo systemctl enable named

二、配置BIND DNS服务器

1、修改主配置文件/etc/named.conf

    sudo nano /etc/named.conf

添加或修改以下内容:

    options {
        listenon port 53 { any; };
        listenonv6 port 53 { ::1; };
        directory 	"/var/named";
        dumpfile 	"/var/named/data/cache_dump.db";
        statisticsfile "/var/named/data/named_stats.txt";
        memstatisticsfile "/var/named/data/named_mem_stats.txt";
        recursingfile 	"/var/named/data/named.recursing";
        allowquery     { any; };
        recursion yes;
        dnssecenable yes;
        dnssecvalidation yes;
        managedkeysdirectory "/var/named/dynamic";
        pidfile "/run/named/named.pid";
        sessionkeyfile "/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";

2、创建正向解析区域文件

    sudo nano /etc/named.rfc1912.zones

在文件末尾追加以下内容:

如何在CentOS上搭建DNS服务器?-图2
(图片来源网络,侵权删除)
    zone "example.com" IN {
        type master;
        file "example.com.zone";
        allowupdate { none; };
    };

创建并编辑example.com.zone 文件:

    sudo nano /var/named/example.com.zone

添加以下内容:

    $TTL 86400
    @   IN  SOA     ns1.example.com. admin.example.com. (
                     2023091101  ; Serial
                     3600        ; Refresh
                     1800        ; Retry
                     604800      ; Expire
                     86400       ; Minimum TTL
                 )
                 NS      ns1.example.com.
                 A       192.168.1.100
                 www     A       192.168.1.100

3、创建反向解析区域文件

    sudo nano /etc/named.rfc1912.zones

在文件末尾追加以下内容:

    zone "1.168.192.inaddr.arpa" IN {
        type master;
        file "1.168.192.zone";
        allowupdate { none; };
    };

创建并编辑1.168.192.zone 文件:

    sudo nano /var/named/1.168.192.zone

添加以下内容:

如何在CentOS上搭建DNS服务器?-图3
(图片来源网络,侵权删除)
    $TTL 86400
    @   IN  SOA     ns1.example.com. admin.example.com. (
                     2023091101  ; Serial
                     3600        ; Refresh
                     1800        ; Retry
                     604800      ; Expire
                     86400       ; Minimum TTL
                 )
                 NS      ns1.example.com.
                 PTR     www.example.com.

三、防火墙配置及测试

1、关闭firewalld防火墙并安装iptables

    sudo systemctl stop firewalld.service
    sudo yum install iptablesservices y
    sudo systemctl enable iptables
    sudo systemctl start iptables

2、开放TCP和UDP端口53

    sudo iptables I INPUT p tcp dport 53 j ACCEPT
    sudo iptables I INPUT p udp dport 53 j ACCEPT
    sudo service iptables save
    sudo iptables L n v

3、重启BIND服务

    sudo systemctl restart named

4、测试DNS解析

在客户端设备上,将DNS设置为指向你搭建的内网DNS服务器的IP地址,可以通过编辑/etc/resolv.conf 文件,将nameserver 的值修改为你的DNS服务器的IP地址,然后使用pingnslookup 命令测试域名解析是否正常工作。

    ping www.example.com
    nslookup www.example.com

四、FAQs问答环节

Q1: 如何更改DNS服务器的监听地址?

A1: 你可以通过修改/etc/named.conf 文件中的listenon 指令来更改DNS服务器的监听地址,如果你想让DNS服务器仅监听特定的IP地址,可以将其改为:

listenon port 53 { 192.168.1.100; };

修改后,记得重启BIND服务以使更改生效:

sudo systemctl restart named

Q2: 如果遇到“connection refused”错误怎么办?

A2: “connection refused”错误通常意味着DNS服务器没有正确监听指定的端口或者防火墙规则阻止了连接,请按照以下步骤排查问题:

1、确保BIND服务已经启动并且正在运行:

    sudo systemctl status named

2、确保防火墙允许TCP和UDP协议的53端口通过:

    sudo iptables L n v | grep dport

3、如果防火墙规则不正确,可以使用以下命令重新配置:

    sudo iptables I INPUT p tcp dport 53 j ACCEPT
    sudo iptables I INPUT p udp dport 53 j ACCEPT
    sudo service iptables save
    sudo systemctl restart iptables

4、确保DNS服务器配置文件中的listenon 指令正确无误。

分享:
扫描分享到社交APP
上一篇
下一篇