CentOs系统部署DNS服务

1. 安装 Bind 软件包

首先需要安装bind以及相关的工具包,在终端中执行以下命令:

bash

复制代码
sudo yum install bind bind-utils -y

2. 配置主配置文件

Bind 的主配置文件是/etc/named.conf,你可以使用文本编辑器(如vim)打开该文件进行配置:

bash

复制代码
sudo vim /etc/named.conf

下面是一个基本的配置示例:

plaintext

复制代码
options {
    listen-on port 53 { any; };
    listen-on-v6 port 53 { any; };
    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; };
    recursion yes;

    dnssec-enable yes;
    dnssec-validation yes;
    dnssec-lookaside auto;

    bindkeys-file "/etc/named.iscdlv.key";
    managed-keys-directory "/var/named/dynamic";
    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";

上述配置中,listen-on指定了监听的 IP 地址和端口,allow-query指定了允许哪些 IP 地址进行 DNS 查询,这里配置为允许任何 IP 地址查询。

3. 创建正向和反向查找区域

正向查找区域

正向查找区域用于将域名解析为 IP 地址。首先需要在/etc/named.rfc1912.zones文件中添加区域配置:

bash

复制代码
sudo vim /etc/named.rfc1912.zones

添加如下内容(假设域名为example.com):

plaintext

复制代码
zone "example.com" IN {
    type master;
    file "example.com.zone";
    allow-update { none; };
};

然后在/var/named目录下创建区域文件example.com.zone

bash

复制代码
sudo vim /var/named/example.com.zone

文件内容示例如下:

plaintext

复制代码
$TTL 86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                              2025040401 ; Serial
                         3600         ; Refresh
                          1800         ; Retry
                        604800         ; Expire
                         86400 )       ; Negative Cache TTL
;
@       IN      NS      ns1.example.com.
ns1     IN      A       192.168.1.100
www     IN      A       192.168.1.101
反向查找区域

反向查找区域用于将 IP 地址解析为域名。同样在/etc/named.rfc1912.zones文件中添加区域配置:

plaintext

复制代码
zone "1.168.192.in-addr.arpa" IN {
    type master;
    file "192.168.1.zone";
    allow-update { none; };
};

/var/named目录下创建反向区域文件192.168.1.zone

bash

复制代码
sudo vim /var/named/192.168.1.zone

文件内容示例如下:

plaintext

复制代码
$TTL 86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                              2025040401 ; Serial
                         3600         ; Refresh
                          1800         ; Retry
                        604800         ; Expire
                         86400 )       ; Negative Cache TTL
;
@       IN      NS      ns1.example.com.
100     IN      PTR     ns1.example.com.
101     IN      PTR     www.example.com.

4. 修改文件权限

确保/var/named目录下的区域文件权限正确,执行以下命令:

bash

复制代码
sudo chown named:named /var/named/example.com.zone
sudo chown named:named /var/named/192.168.1.zone

5. 启动并设置开机自启

完成配置后,启动named服务并设置为开机自启:

bash

复制代码
sudo systemctl start named
sudo systemctl enable named

6. 配置防火墙

如果防火墙开启,需要开放 DNS 服务使用的端口(UDP 和 TCP 的 53 端口):

bash

复制代码
sudo firewall-cmd --permanent --add-service=dns
sudo firewall-cmd --reload

7. 测试 DNS 服务

你可以使用nslookupdig命令来测试 DNS 服务是否正常工作,例如:

bash

复制代码
nslookup www.example.com 192.168.1.100

以上步骤完成后,你就在 CentOS 系统上成功部署了 DNS 服务。

相关推荐
副露のmagic16 分钟前
更弱智的算法学习 day34
python·学习
AllFiles21 分钟前
用Python turtle画出标准五星红旗,原来国旗绘制有这么多数学奥秘!
python
亲爱的非洲野猪26 分钟前
Java线程池深度解析:从原理到最佳实践
java·网络·python
想唱rap37 分钟前
表的约束条件
linux·数据库·mysql·ubuntu·bash
用户13779404999338 分钟前
基于遗传算法实现自动泊车+pygame可视化
python
4***175444 分钟前
强化学习中的蒙特卡洛方法
python
pen-ai1 小时前
打通 Python 与 C++ 的参数传递机制
开发语言·c++·python
山上三树1 小时前
对比用户态线程与内核态轻量级进程
linux
2501_948195341 小时前
RN for OpenHarmony英雄联盟助手App实战:设置实现
linux·ubuntu
阿甘正赚.1 小时前
Linux初学
linux·运维·服务器