CentOS 7 是一款广泛使用的 Linux 操作系统,DNS(域名系统)是其重要的网络功能之一,本文将详细介绍如何在 CentOS 7 上配置和管理 DNS 服务,包括 DNS 的基本概念、修改 DNS 配置的方法、部署 DNS 服务器的步骤以及常见问题的解答。
一、DNS 基本概念
DNS(DomAIn Name System,域名系统)是一个分布式数据库,用于将人类易读的域名(如 www.example.com)转换为计算机可识别的 IP 地址(如 192.0.2.1),DNS 的主要功能是域名解析,通过解析域名来获取对应的 IP 地址,提供域名解析功能的主机被称为域名服务器,即 DNS 服务器,在域名服务器中,一个域名只能对应一个 IP 地址,但一个 IP 地址可以对应多个域名,也可以没有相应域名。
二、修改 CentOS 7 DNS 配置
确认当前 DNS 配置
在修改 DNS 配置之前,需要确认当前的 DNS 配置,可以通过以下命令查看:
cat /etc/resolv.conf
如果输出的内容中包含了 DNS 服务器的 IP 地址,则表示当前已经配置了 DNS 服务器。
修改 DNS 配置
如果需要修改 DNS 配置,可以通过以下步骤进行:
1、编辑/etc/resolv.conf
文件:
使用文本编辑器打开/etc/resolv.conf
文件:
sudo vi /etc/resolv.conf
在文件中添加或修改nameserver
行,指定需要使用的 DNS 服务器的 IP 地址,如果要使用 Google 的公共 DNS 服务器,可以添加以下行:
nameserver 8.8.8.8 nameserver 8.8.4.4
保存并关闭文件。
2、立即生效修改:
在 CentOS 7 中,如果只修改了/etc/resolv.conf
文件,DNS 配置不会立即生效,需要重启 NetworkManager 服务或者重启系统,也可以通过以下命令使修改立即生效:
sudo systemctl restart network
验证 DNS 配置是否生效,可以使用nslookup
命令查询域名:
nslookup example.com
如果输出的结果中包含了 DNS 服务器的 IP 地址,则表示 DNS 配置已经生效。
三、部署 CentOS 7 DNS 服务器
部署 DNS 服务器的步骤相对复杂,涉及安装 BIND 软件包、修改配置文件、新建区域文件等多个步骤,以下是详细的步骤:
实验环境
DNS 服务端:内存 2G,硬盘 80G,网络模式 NAT,IP:192.168.180.132
DNS 客户端:内存 2G,硬盘 40G,网络模式 NAT,IP:192.168.180.135
部署步骤
1、禁用防火墙和关闭 SELinux:
systemctl disable firewalld systemctl stop firewalld setenforce 0 # 临时关闭 SELinux # 永久关闭 SELinux(可选) vi /etc/selinux/config 将 SELINUX=enforcing 改为 SELINUX=disabled
2、安装 BIND:
在 DNS 服务端和客户端都需要安装 BIND:
yum install y bind bindutils
3、修改配置文件信息:
修改/etc/named.conf
文件:
vi /etc/named.conf
将listenon port 53 { 127.0.0.1; };
改成listenon port 53 { any; };
将allowquery { localhost; };
改成allowquery { any; };
然后保存并退出。
修改/etc/named.rfc1912.zones
文件:
vi /etc/named.rfc1912.zones
添加如下信息:
zone "kaisa.com" IN { type master; file "kaisa.com.zone"; };
注意这里的kaisa.com
是自定义的域名,kaisa.com.zone
是对应的区域文件名。
4、编辑网卡配置信息:
vi /etc/sysconfig/networkscripts/ifcfgens33
将BOOTPROTO="dhcp"
改为static
,并添加 IP、网关、子网掩码、DNS 的信息,由于本机是做 DNS 的服务器端,DNS 填本机的 IP 地址。
5、重启网络服务和 named 服务:
sudo systemctl restart network sudo systemctl restart named
若没报错,则上述步骤配置成功。
6、在客户端测试:
修改客户端的网卡配置信息:
vi /etc/sysconfig/networkscripts/ifcfgens33
将DNS1
改为我们搭建的 DNS 服务器端的 IP 地址。
重启网络:
sudo systemctl restart network
测试:使用nslookup
命令查询域名,看是否能成功解析出 IP 地址。
反向解析
反向解析的步骤与正向解析大致相同,只需要修改两个配置文件的信息即可:
1、修改/etc/named.rfc1912.zones
文件:
vi /etc/named.rfc1912.zones
添加如下信息:
zone "180.168.192.inaddr.arpa" IN { type master; file "hzl.com.zone"; };
注意这里的180.168.192
是自定义的网段,hzl.com.zone
是对应的区域文件名。
2、创建反向解析区域文件:
cd /var/named cp p kaisa.com.zone hzl.com.zone vi hzl.com.zone
注意com
后面还有一个点。
3、重启 named 服务:
sudo systemctl restart named
4、测试:使用nslookup
命令查询 IP 地址,看是否能成功解析出域名。
关闭防火墙和 SELinux:在部署 DNS 服务器之前,建议先关闭防火墙和 SELinux,以避免它们对后续步骤的影响。
配置文件准确性:在配置服务进程的文件时,一定要仔细检查配置文件的准确性,包括大小写、标点符号等,一个错误可能会导致服务无法启动。
重启服务:在修改完配置文件后,记得重启相关服务以使配置生效。
测试验证:在完成配置后,记得使用nslookup
命令测试域名解析是否正常工作。
五、FAQs
Q1:如何修改 CentOS 7 的 DNS 配置?
A1:可以通过修改/etc/resolv.conf
文件来更改 CentOS 7 的 DNS 配置,在该文件中添加或修改nameserver
行,指定需要使用的 DNS 服务器的 IP 地址,要使用 Google 的公共 DNS 服务器,可以添加以下行:
nameserver 8.8.8.8 nameserver 8.8.4.4
保存并关闭文件后,可以通过重启 NetworkManager 服务或使用systemctl restart network
命令使修改立即生效。
Q2:如何在 CentOS 7 上部署 DNS 服务器?
A2:在 CentOS 7 上部署 DNS 服务器的步骤包括安装 BIND、修改配置文件、新建区域文件等,需要在有网络的情况下使用yum install y bind bindutils
命令安装 BIND,修改/etc/named.conf
和/etc/named.rfc1912.zones
文件,配置主域名服务器和区域文件,在/var/named
目录下新建区域文件,并根据需要进行编辑,修改网卡配置文件以设置静态 IP,并重启网络服务和 named 服务,完成这些步骤后,可以在客户端测试域名解析是否正常工作。