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 服务。

相关推荐
豆芽8191 分钟前
决策树(DecisionTree)
python·决策树·机器学习·pyqt·sklearn
努力犯错玩AI4 分钟前
Llama 4 来了!AI 快站助你一键极速下载,抢先体验 MoE + 多模态 + 超长上下文
人工智能·后端·python
eqwaak08 分钟前
DrissionPage高级技巧:从爬虫到自动化测试
人工智能·爬虫·python·语言模型·自然语言处理·drissionpage
创新技术阁29 分钟前
FastAPI核心技巧大公开:深入探索路由与视图的奥秘
后端·python
Blueshy31 分钟前
【python基础】weakref的初次遇见
python
小草cys36 分钟前
ubuntu20.04升级成ubuntu22.04
linux·运维·服务器
前端开发张小七39 分钟前
11.Python设计模式:单例模式与工厂模式实战指南
前端·python
前端开发张小七39 分钟前
10. Python闭包:优雅的状态封装与实用技巧
python
fc&&fl1 小时前
AI爬虫?爬!
人工智能·爬虫·python
zidea1 小时前
我和我的 AI Agent(2)工具模块设计上花了不少心思,实现了 AI Agent 从使用工具到创建工具的进化
人工智能·python·程序员