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

相关推荐
用户805533698035 小时前
主线 U-Boot 上 RK3506:和闭源 rkbin 拔河的三个隐性契约
linux·嵌入式
用户034095297915 小时前
linux fcitx 5 雾凇拼音 设置在中文输入法下仍然输入英文标点
linux
荣码5 小时前
LangGraph多Agent协作:3个Agent干活比1个强,但我踩了4个坑
java·python
用户83562907805121 小时前
Python 操作 PDF 附件:添加、查看与管理指南
后端·python
赵文宇1 天前
CoreDNS大屏看板、监控、和企业微信告警通知
dns
宇宙之一粟1 天前
乐企版式文件生成平台
java·后端·python
学测绘的小杨2 天前
CompassFusion:一个从 GNSS 到 GNSS/INS 组合导航的独立工程包
python
Web3探索者2 天前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo2 天前
Linux系统中网线与USB网络共享冲突
linux
zzzzzz3102 天前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理