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

相关推荐
楠奕4 分钟前
python中使用neo4j
开发语言·python·neo4j
zybsjn9 分钟前
后端系统做国际化改造,生成多语言包
java·python·c#
南斯拉夫的铁托16 分钟前
labelimg安装及使用指南(yolo)
开发语言·python·yolo
QQ_43766431420 分钟前
Linux下可执行程序的生成和运行详解(编译链接汇编图解)
linux·运维·c语言·汇编·caffe
不许哈哈哈30 分钟前
基于百度云ORC与阿里大语言模型的自动评分系统
python·语言模型·百度云
dhxhsgrx1 小时前
PYTHON训练营DAY27
开发语言·python
窦再兴1 小时前
来一个复古的技术FTP
linux·运维·服务器
xiaobin889991 小时前
【2025最新版】VMware虚拟机下载安装教程 保姆级图文详解(附安装包+常用镜像Linux,win11,ubuntu,centos)
linux·其他·ubuntu·centos
☞无能盖世♛逞何英雄☜1 小时前
Flask框架搭建
后端·python·flask
Q_Q19632884752 小时前
python的家教课程管理系统
开发语言·spring boot·python·django·flask·node.js·php