【实战】CentOS7.9配置DNS服务器

本文详细介绍了如何在CentOS系统中安装和配置DNS服务器Bind,以提高网站解析速度。步骤包括安装Bind、编辑named.conf配置文件、创建.zone文件、启动DNS服务,并配置客户端使用该DNS服务器。此外,还解释了如何添加新的域名映射和设置DNS服务开机自启。

最近想整个DNS服务器玩玩,让解析网站稍微快一点,之前搞的Windows Server,但是感觉这个太重量级了,简单是简单但是占用的资源比较大,而且服务器一般都是Linux系统,这回我就想在CentOS上整一把,虽然CSDN上类似的文章很多,但是很多文章要么就是太旧了,要么就是搞得太复杂,我决定再重写一篇,尽量言简意赅。

主要参考:https://www.linuxidc.com/Linux/2019-03/157277.htm

1、安装DNS服务器——Bind(Berkeley Internet Name Domain)

在root权限下输入:

yum -y install bind

2、进入/etc下,找到named.conf并编辑(如果没有vim请自行安装)

vim /etc/named.conf

需要修改:(左边是修改好的,右边是原来的,作用是让这个DNS服务器让所有电脑都能使用访问)

 完整配置如下:

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html

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; };

	/* 
	 - If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
	 - If you are building a RECURSIVE (caching) DNS server, you need to enable 
	   recursion. 
	 - If your recursive DNS server has a public IP address, you MUST enable access 
	   control to limit queries to your legitimate users. Failing to do so will
	   cause your server to become part of large scale DNS amplification 
	   attacks. Implementing BCP38 within your network would greatly
	   reduce such attack surface 
	*/
	recursion yes;

	dnssec-enable yes;
	dnssec-validation yes;

	/* Path to ISC DLV key */
	bindkeys-file "/etc/named.root.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";

3、定下自己的域名,以及需要绑定的IP

我需要绑定的IP:192.168.0.211,这里面是一个Nginx服务器,后面用${ip}代替

 需要绑定的域名是:dctant.com,后面用${domain}来代替。

4、创建.zone文件

创建一个名为named.${domain}.com.zone这个文件,我这边叫named.dctant.com.zone,具体为什么要这么命名,我也是参考网上的,算一个命名规范吧,事实上随便怎么命名都行,但是最好按规范来。

填入以下内容:

$TTL 1D
@       IN SOA  ${domain}. admin.${domain} (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
@       IN      NS      ns1.${domain}.
ns1     IN      A       ${ip}
www     IN      A       ${ip}

这里各个参数的具体含义请看我文章起始处的参考链接,里面有说明,这里由于篇幅所限就不介绍了。

注意:这里的${domain}和${ip}替换为自己的域名和IP,建议使用编辑器全局替换,而不是自己一个个改!!

5、上传这个文件到/etc目录下

将这个文件上传到/etc目录下

 

 6、编辑/etc/named.rfc1912.zones这个文件

在结尾添加一段

zone "${domain}" IN {
        type master;
        file "/etc/named.${domain}.zone";
        allow-update { none; };
};

这样你刚才创建的named.${domain}.com.zone这个文件就和DNS服务器的配置文件关联上了。

还是这句话,记得替换${domain}和${ip}为自己的域名和IP!

完整的/etc/named.rfc1912.zones文件如下:

// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package 
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
// 
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

zone "localhost.localdomain" IN {
	type master;
	file "named.localhost";
	allow-update { none; };
};

zone "localhost" IN {
	type master;
	file "named.localhost";
	allow-update { none; };
};

zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {
	type master;
	file "named.loopback";
	allow-update { none; };
};

zone "1.0.0.127.in-addr.arpa" IN {
	type master;
	file "named.loopback";
	allow-update { none; };
};

zone "0.in-addr.arpa" IN {
	type master;
	file "named.empty";
	allow-update { none; };
};

zone "${domain}" IN {
        type master;
        file "/etc/named.${domain}.zone";
        allow-update { none; };
};

 7、启动DNS服务器

输入命令:

systemctl start named.service

查看DNS服务器运行状态:

systemctl status named.service

8、配置电脑使用该DNS服务器

我这个DNS服务器的IP地址是:192.168.0.201

随便找个同一个局域网下的电脑,将它的网络适配器的IPV4的DNS改为:

 然后保存即可。

9、测试DNS服务器效果

 输入www.dctant.com,即可连接到192.168.0.211上的Nginx服务器了

10、如果要编辑DNS的配置文件

如果我想把192.168.0.211映射到abc.dctant.com,该怎么做呢?

只需要在named.dctant.com.zone最后加一行

abc     IN      A       192.168.0.211

即可。

 然后重启DNS服务器:

systemctl restart named.service

 11、设置DNS服务开机自启

输入命令:

systemctl enable named.service

这样重启后DNS服务也会自动启动。

写在最后:我发现DNS服务完全不需要搞什么反向解析,照样可以完成DNS服务器的所有功能。

### 部署和配置 CentOS 7.9DNS 服务器 #### 安装 BIND 软件包 为了在 CentOS 7.9 上部署 DNS 服务器,首先需要安装 BIND 软件包。可以通过以下命令来完成此操作: ```bash yum -y install bind* ``` 这一步会安装必要的软件组件以支持 DNS 功能[^1]。 #### 编辑 DNS 配置文件 DNS配置文件位于 `/etc/named.conf` 中。打开并编辑该文件以定义区域(zone)。例如,创建一个新的正向解析区 `dctant.com`: ```bash vi /etc/named.conf ``` 在文件中添加以下内容作为新区域的声明部分: ```text zone "dctant.com" IN { type master; file "/var/named/dctant.com.zone"; allow-update { none; }; }; ``` 接着,在指定路径下创建对应的 zone 文件 `/var/named/dctant.com.zone` 并填写记录条目。例如,将 IP 地址 `192.168.0.211` 映射到域名 `abc.dctant.com`,可以在 zone 文件中加入如下行: ```text $TTL 86400 @ IN SOA ns1.dctant.com. admin.dctant.com. ( 2023101001 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum TTL NS ns1.dctant.com. ns1 A 192.168.0.211 abc A 192.168.0.211 ``` 上述配置完成后记得保存退出[^2]。 #### 测试与验证 DNS 设置 完成以上步骤之后,重启 named 服务使更改生效,并通过客户端测试其连通性和正确性。 ```bash systemctl restart named.service ``` 确保 DNS 服务能够正常运行以及响应查询请求。可以尝试 ping 或者 dig 命令访问已设定好的主机名如 `abc.dctant.com` 来确认是否成功指向至预期地址 `192.168.0.211`。 #### 开机自启设置 为了让系统每次启动都能加载 DNS 服务,执行下面这条指令启用开机自动启动功能: ```bash systemctl enable named.service ``` 这样即使经历断电等情况也不会影响后续使用体验。 #### 修改本地 resolver 配置 (可选) 如果希望本机或其他内部网络中的设备优先利用刚建立起来的新 DNS,则需调整它们各自的 resolv.conf 文件指向前述提到过的私有网段内的 DNS Server 地址。比如对于一台处于相同子网环境下的客户机器而言,只需简单地更新它的 `/etc/resolv.conf` 如下所示即可实现这一目标: ```bash nameserver 192.168.0.211 ``` 当然实际应用过程中可能还需要考虑更多细节方面的问题,像安全防护措施等等[^5]。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值