Centos 7 DNS配置

本文介绍了Linux系统中DNS的工作原理及常见用法,详细讲解了一个DNS服务器的构建过程,包括安装BIND服务、配置全局参数、设置主域名服务器、建立正反向解析数据库,以及验证和测试DNS服务的步骤。同时强调了配置过程中的注意事项,如防火墙设置和端口占用检查,以确保DNS服务的正常运行和网络通信的高效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、简介:

1、DNS的原理:

  在Linux系统中,DNS(Domain Name System)是一个重要的网络服务,它负责将域名解析为IP地址以进行网络通信。 Linux DNS是通过域名服务控制器(DNS服务器)实现的,该服务器存储了域名和对应的IP地址,以及其他相关信息。

2、DNS常见的用法和作用:

当Linux系统需要访问某个域名时,它会向DNS服务器发送请求,获取对应的IP地址,然后使用该IP地址进行网络通信。在Linux系统中,常用的DNS服务器软件包括BIND(Berkeley Internet Name Domain)和NSD(Name Server Daemon)。用户可以使用dig命令来测试DNS解析和性能。

二、实验目的:

1、熟悉域名服务器的各种角色

2、学会构建主域名服务器

三、准备:

挂源:

在配置DNS之前要先安装好bind,安装要提前挂源,我们在挂源的时候可用先用

df -h

 来看源的挂在路径,然后更改挂源路径

mount /dev/sr0 /XXX/XX

 从此可用看出我们已经把源挂在home里面的aa文件中,我们可以再次检测一次挂源路径

df -h

四、安装:

 然后我们就可以安装bind服务

yum install bind -y

五、配置: 

1、配置准备:

在安装成功后,我们需要先知道我们的ip地址

ifconfig

可以用这个命令来查询我们的ip地址

我们看ens33,ens33` 是 Linux 系统下的一个网络设备标识符。它用于标识系统中的物理或虚拟网卡设备,以便系统能够识别和管理它们。 

在 Linux 以及一些基于 Linux 的操作系统(如 CentOS、Ubuntu 等)中,网络设备名称通常由 udev 程序进行动态管理。系统根据硬件设备、驱动程序和网络规则等因素,为每个网络设备分配一个唯一的名称。 作用是让系统可以准确地找到网络设备并为其分配相应的 IP 地址、DNS 信息、路由规则等网络配置。当你连接到网络时,你的系统需要知道使用哪个网卡来发送和接收数据。`ens33` 标识即告诉系统“我是这个网卡”,这样让系统很容易地分配和管理网络配置信息。

 所以ens33后面的那个IP是我们的本机ip。

2、配置DNS服务器的全局参数:

然后我们就可以在主配置文件/etc/named.conf中设置DNS服务器的全局参数

  1. vi /etc/named.conf

  2. listen-on port 53 { 127.0.0.1; };

  3. allow-query { localhost; };

进来后,我们只需要修改这两个参数,port修改为我们的本机IP,allow修改为我们的网段

 修改全局参数后我们可以设置主域名服务器,我们要先确认本机IP地址、主机映射、DNS服务器地址


  1. 1、hostname ns1

  2. 2、vi /etc/hosts

  3. 3、vi /etc/resolv.cof

  4. 4、在修改hosts文件时要注意要有类似192.168.168.131 ns1.zhangsan.com ns1的内容

  5. 5、在修改resolv文件时要注意要有nameserver 192.168.168.131的内容

  6. 6、在配置resolv文件时建议最好指定多个DNS服务器:可以在配置文件中指定多个DNS服务器,以提高系统的DNS解析性能和容错性。

3、 设置区域配置文件


  1. vi /etc/named.rfc1912.zones

  2. zone "zhangsan.com" IN {

  3. type master;

  4. file "zhangsan.com.zone";

  5. allow-update { none; };

  6. };

  7. zone "168.168.192.in-addr.arpa" IN {

  8. type master;

  9. file "168.168.192.arpa";

  10. allow-update { none; };

  11. };

4、建立正向解析数据库文件

注意:在2022这里有长度限制的,如果超出10位数时,在开启dns服务时会报错,显示开启失败


  1. vi /var/named/zhangsan.com.zone

  2. $TTL 86400

  3. @ IN SOA zhangsan.com. admin.zhangsan.com. (

  4. 2022115037

  5. 4H

  6. 30M

  7. 12H

  8. 1D

  9. )

  10. NS @

  11. A 192.168.168.131

  12. ns1 A 192.168.168.131

  13. www A 192.168.168.10

  14. mail A 192.168.168.20

5、建立反向解析数据库文件

注意:在2022这里有长度限制的,如果超出10位数时,在开启dns服务时会报错,显示开启失败如下图

报错内容:


  1. vi /var/named/168.168.192.arpa

  2. $TTL 86400

  3. @ IN SOA zhangsan.com. admin.zhangsan.com. (

  4. 2022115037

  5. 4H

  6. 30M

  7. 12H

  8. 1D

  9. )

  10. NS @

  11. A 192.168.168.128

  12. 10 PTR ns1.zhangsan.com.

  13. 10 PTR www.zhangsan.com.

  14. 20 PTR mail.zhangsan.com.

六、验证:

1、启动DNS:

当这些都配置好后就可以启动dns服务

systemctl start named

没有报错就算是成功,并且可以用

systemctl status named

 命令来查看服务开启状态,开启状态如下:

2、测试DNS:

然后测试dns(或者用Windows系统在浏览器上面进行测试)

(1)、Centos 7的测试方法 :

  1. nslookup ns1.zhangsan.com

  2. nslookup www.zhangsan.com

  3. nslookup 192.168.168.131

(2)、Windows10的测试方法:

 

七、 总结以及错误注意点:

在配置dns中,我们的文件配置很容易配置错误,当我们配置错误时,可以用


  1. named-checkconf /etc/named.rfc1912.zones

  2. named-checkconf /etc/named.conf

  3. systemctl stop firewalld.service

  4. systemctl disable firewalld.service

  5. setenforce 0

来检测全局配置是否有语法的错误,如果有语法的错误会返回错误,还有就是正向解析和反向解析是很容易出错的,发现错误时要检查域名是否与全局配置文件相同,IP地址是否是本机IP等问题来检测全局配置是否有语法的错误,如果有语法的错误会返回错误,还有就是正向解析和反向解析是很容易出错的,发现错误时要检查域名是否与全局配置文件相同,IP地址是否是本机IP等问题,还有就是防火墙要关闭


  1. netstat -anp | grep :53

  2. lsof -i :53

还有一种就是53端口占用问题,可以用上面两种中的任意一种查看53端口是否被占用。

八、心得体会:

在配置DNS是提高系统性能和避免网络故障的重要步骤。最好指定多个DNS服务器,并启用本地DNS缓存。应避免DNS污染,正确配置防火墙规则以确保DNS服务器正常通信。在修改配置文件后要确认修改已生效,最好使用工具或命令来配置DNS,避免手动导致错误。正确配置DNS有助于提高系统性能,确保网络连接畅通。

### CentOS 7配置 DNS 的方法 #### 安装 BIND 软件包 为了在 CentOS 7配置 DNS,需要先安装 BIND 软件包。BIND 是一种广泛使用的 DNS 协议实现工具,它提供了 DNS Server 功能并运行 `named` 进程。可以通过以下命令完成软件包的安装: ```bash yum install bind -y ``` 此操作会在系统中安装必要的组件以支持 DNS 解析服务[^1]。 --- #### 配置正向解析区域文件 DNS 主要用于将主机名映射到 IP 地址(即正向解析)。为此,需编辑 `/etc/named.conf` 文件中的区域定义部分,并创建对应的区域数据文件。以下是具体步骤: 1. **编辑 named.conf 文件** 打开主配置文件 `/etc/named.conf` 并添加一个新的区域条目: ```plaintext zone "example.com" IN { type master; file "/var/named/example.com.zone"; allow-update { none; }; }; ``` 2. **创建区域数据文件** 创建上述指定路径下的区域数据文件 `/var/named/example.com.zone`,内容如下所示: ```plaintext $TTL 86400 @ IN SOA ns.example.com. admin.example.com. ( 20231010 ; Serial 3600 ; Refresh 1800 ; Retry 604800 ; Expire 86400 ) ; Minimum TTL IN NS ns.example.com. ns IN A 192.168.1.100 www IN A 192.168.1.101 ``` 以上设置指定了一个名为 `example.com` 的域及其对应记录[^2]。 --- #### 启动与测试 Named 服务 完成配置后,启动 `named` 服务并将之设为开机自启: ```bash systemctl start named systemctl enable named ``` 验证服务状态是否正常运行: ```bash systemctl status named ``` 随后可通过本地查询确认解析功能是否生效: ```bash nslookup www.example.com localhost ``` 如果返回预期的 IP 地址,则表明配置成功。 --- #### 使用 Dnsmasq 实现 DNS 缓存优化 除了 BIND 外,还可以利用轻量级工具 Dnsmasq 来提供更高效的 DNS 查询体验。Dnsmasq 不仅能缓存频繁请求的结果,还能简化 DHCP 和 DNS 设置过程[^3]。 安装 Dnsmasq 及其基本启用方式如下: ```bash yum install dnsmasq -y systemctl start dnsmasq systemctl enable dnsmasq ``` 接着调整网络接口配置文件(如 `/etc/sysconfig/network-scripts/ifcfg-eth0`),加入以下参数以便让设备优先使用本机上的 Dnsmasq 服务作为首选 DNS: ```plaintext DNS1=127.0.0.1 ``` 重启网络服务使更改生效: ```bash systemctl restart network ``` 此时客户端发起的所有域名查找都会经过 Dnsmasq 层处理后再转交给上游服务器执行实际解析工作。 --- #### 修改默认 DNS 地址 当遇到特定网站无法访问的问题时,可能是因为当前所依赖的基础 DNS 存在异常状况所致。这时可以尝试替换掉原有的公共 DNS 或者企业内部提供的地址选项之一为例说明如何切换至其他可用方案[^4]: 对于基于 NetworkManager 管理环境来说可以直接修改全局偏好设定项;而对于静态分配情形则只需更新相应网卡关联资料即可达成目标效果。例如手动编辑 `/etc/resolv.conf` 添加新的名称服务器列表项目形式呈现出来像这样子的样子: ```plaintext nameserver 8.8.8.8 nameserver 1.1.1.1 ``` 保存退出之后立即生效无需额外动作辅助。 ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值