尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

centos7搭建DNS服务器

centos7搭建DNS服务器
📅 发布时间:2026/6/21 1:02:26

实验环境

环境类型 具体配置
操作系统 CentOS 7 64 位 最小化安装版
硬件 / 虚拟机 VMware Workstation(或 VirtualBox)虚拟机,配置双网卡(ens33:内网、ens36:外网)
网络环境 内网网段:192.168.2.0/24(可自定义);外网可访问公网(DHCP 自动获取)
软件依赖 bind-9.x(DNS 服务核心)、bind-chroot(DNS 安全隔离)、bind-utils(DNS 测试工具)
客户端环境 Windows/Linux 客户端(用于测试 DNS 解析)

实验目标

  • 基础网络配置:完成 CentOS 7 双网卡(内网静态 IP、外网 NAT)的网络配置,确保内网互通且外网可访问。
  • DNS 服务部署:安装并配置 bind DNS 服务,实现内网域名的正向解析(域名→IP)和反向解析(IP→域名)。
  • 服务验证与调试:掌握 DNS 配置文件语法校验、服务启动 / 自启、防火墙 / SELinux 适配方法,确保 DNS 服务稳定运行。
  • 跨端测试:在客户端配置自建 DNS 服务器,验证内网域名解析、反向解析及外网递归解析功能的可用性。
  • 问题排查:掌握 DNS 配置、网络服务(network/NetworkManager)冲突、网卡配置异常等常见问题的排查方法。

实验原理

1. DNS 服务核心原理

DNS(域名系统)是互联网的核心服务,作用是将易记忆的域名(如web.centos7.com)转换为机器可识别的 IP 地址(如 192.168.1.101),分为正向解析(域名→IP)和反向解析(IP→域名)。

  • BIND:Berkeley Internet Name Domain,是开源的 DNS 服务器软件,也是目前使用最广泛的 DNS 服务实现方案,支持递归查询、区域解析、DNSSEC 等核心功能。
  • 区域文件:DNS 服务器的核心配置文件,分为正向区域文件(定义域名与 IP 的映射)和反向区域文件(定义 IP 与域名的映射),包含 SOA(起始授权机构)、NS(域名服务器)、A(地址记录)、PTR(指针记录)等关键记录类型。

2. 双网卡网络原理

  • 内网网卡(ens33)配置静态 IP,作为 DNS 服务的对内提供服务的地址,确保内网客户端可访问;
  • 外网网卡(ens36)通过 DHCP 获取 IP,实现 DNS 服务器的外网递归解析能力(可访问公网 DNS 获取外网域名解析结果);
  • 网关与 DNS 配置:内网网卡指向内网网关,DNS1 配置为本机 IP(优先使用自建 DNS),DNS2 配置为公网 DNS(备用),确保解析优先级和容错性。

3. 服务运行与权限原理

  • NetworkManager 与 network 冲突:CentOS 7 中 NetworkManager(动态网络管理)与传统 network 服务(静态网络配置)可能冲突,需择一停用以保证网络服务稳定。
  • SELinux 与防火墙:SELinux 会限制 DNS 服务对配置文件的访问权限,防火墙默认拦截 53 端口(DNS 服务端口,UDP/TCP 均需放行),需针对性配置以确保服务可访问。
  • 递归查询:DNS 服务器开启递归查询后,当解析外网域名(如www.baidu.com)时,会向公网根 DNS / 顶级 DNS 逐级查询,最终返回结果给客户端,实现外网域名解析能力。

4. 解析流程原理

  • 正向解析:客户端向 DNS 服务器发起域名查询请求→DNS 服务器匹配正向区域文件中的 A 记录→返回对应 IP 地址;
  • 反向解析:客户端向 DNS 服务器发起 IP 查询请求→DNS 服务器匹配反向区域文件中的 PTR 记录→返回对应域名;
  • 递归解析:若查询的域名不在内网区域文件中,DNS 服务器自动向公网 DNS 发起查询,将结果返回给客户端。

实验步骤

一、配置内网静态固定 IP和外网nat

1.配置目标

我的虚拟机上有两个网卡,分别是ens33、ens36分别是负责内网连接和外网连接的网卡

2.配置过程

2.1查看网卡名称和IP信息

ip addr

image-20260620205255833

2.2修改内网网卡配置文件

nano /etc/sysconfig/network-scripts/ifcfg-ens33				#修改内网网卡

完整配置模板

TYPE=Ethernet
BOOTPROTO=static        # static静态,dhcp自动
NAME=ens33
DEVICE=ens33
ONBOOT=yes              # 开机自启
IPADDR=192.168.100.133  # 固定本机IP
NETMASK=255.255.255.0   # 子网掩码
GATEWAY=192.168.100.1   # 网关
DNS1=192.168.100.133    #内网的dns服务器就是我们内网网卡的ip     
DNS2=114.114.114.114	# 公网备用DNS

image-20260620225942045

2.3修改外网网卡配置

nano /etc/sysconfig/network-scripts/ifcfg-ens33				#修改内网网卡

完整配置模板

TYPE=Ethernet
BOOTPROTO=dhcp
NAME=ens36
DEVICE=ens36
ONBOOT=yes
DNS1=114.114.114.114
DNS2=8.8.8.8

image-20260620232408210

2.5配置完成后重启网络服务

systemctl restart network

2.6测试网卡配置是否联通

ping 192.168.2.1				#这个地址是我的内网网关地址
ping www.baidu.com				#测试外网连通性

image-20260620232645578

3.处理修改网卡过程中配置常见问题:

1.ping外网ping不同,原因是网卡文件没有配置好

[root@localhost network-scripts]# ping www.baidu.com
ping: www.baidu.com: Name or service not known

原因是很可能是网卡文件没有配置好

2.配置完后重启网络服务发现网卡没有地址,我这里是ens36网卡

[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:ec:c3:29 brd ff:ff:ff:ff:ff:ffinet 192.168.100.134/24 brd 192.168.100.255 scope global dynamic ens33valid_lft 1752sec preferred_lft 1752secinet6 fe80::20c:29ff:feec:c329/64 scope link valid_lft forever preferred_lft forever
3: ens36: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000link/ether 00:0c:29:ec:c3:1f brd ff:ff:ff:ff:ff:ff
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000link/ether 52:54:00:5d:92:a1 brd ff:ff:ff:ff:ff:ffinet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000link/ether 52:54:00:5d:92:a1 brd ff:ff:ff:ff:ff:ff
[root@localhost network-scripts]# 
  • 报错解释信息如下:

qdisc noop:没有配置文件,系统不会自动拉起这块网卡

state DOWN:网卡物理关闭、未启用

  • 原因是:

    这里你的这个网卡可能是第一次开机后加的,后加的网卡很可能会没有生成配置文件。解决绝方法复制现有网卡模板修改成该网卡的配置,再重启网络。或者直接重装在第一次开机前就在设置加上这个网卡。

image-20260620231525878

3.network工具与其他出现冲突

[root@localhost centos7]# systemctl restart network
Job for network.service failed because the control process exited with error code. See "systemctl status network.service" and "journalctl -xe" for details.

最常见问题:NetworkManager 与 network 冲突

方案一:停用 NetworkManager,只用 network

# 停止并禁用NM
systemctl stop NetworkManager
systemctl disable NetworkManager
# 重启网络
systemctl restart network

方案二:停用 network,只用 NetworkManager

systemctl stop network
systemctl disable network
# 用nmcli配置静态IP,不再操作ifcfg文件
nmcli connection show

二、安装 DNS 服务 bind

1.配置目标

安装 bind 与相关工具,以及配置相关文件,以便局域网的DNS可以解析局域网内主机的域名请求

2.DNS配置过程

2.1安装bind相关工具

yum install bind bind-chroot bind-utils -y

2.2配置主配置文件/etc/named.conf

nano /etc/named.conf

修改关键参数(允许所有客户端查询,监听本机所有网卡):

options {listen-on port 53 { any; };       # 监听所有网卡,不只是127.0.0.1listen-on-v6 port 53 { ::1; };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";allow-query     { any; };         # 允许任意内网机器使用DNSrecursion yes;                    # 开启递归查询(外网解析)dnssec-enable yes;dnssec-validation yes;path "/etc/named.root.key";
};# 正向、反向区域文件声明,末尾添加自定义域名
zone "centos7.com" IN {type master;file "centos7.com.zone";allow-update { none; };
};zone "2.168.192.in-addr.arpa" IN {type master;file "192.168.2.zone";allow-update { none; };
};

注意:centos7.coml替换你的根域名;2.168.192这里也要填写为你主机的IP网段(注意这里的格式倒序)。

2.3创建正向解析区域文件

cp /var/named/named.localhost /var/named/centos7.com.zone
chown named:named /var/named/centos7.com.zone
nano /var/named/centos7.com.zone

注意:这里的文件要和你上面的输入的名字保持一致

区域文件内容:

$TTL 1D
@       IN SOA  dns.centos7.com. admin.centos7.com. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumIN NS   dns.centos7com.  ; 声明域名服务器NS记录
ns      IN A    192.168.1.100    ; DNS服务器本机IP;自定义主机解析记录
web     IN A    192.168.1.101    ; web服务器A记录
ftp     IN A    192.168.1.102

这里我这几个域名对应的网站upload.centos7.con等都在我的这个主机上,这个映射自己根据情况来写。左侧为顶级域名右侧为映射的IP

image-20260621002524317

2.4创建反向解析区域文件(IP 反查域名)

cp /var/named/named.loopback /var/named/192.168.2.zone
chown named:named /var/named/192.168.2.zone
nano /var/named/192.168.2.zone

反向文件内容:

$TTL 1D
@       IN SOA  dns.centos7.com. admin.centos7.com. (0       ; serial1D      ; refresh1H      ; retry1W      ; expire3H )    ; minimumIN NS   dns.centos7.com.
100     IN PTR  dns.centos7.com.
101     IN PTR  web.centos7.com.
102     IN PTR  ftp.centos7.com.

注意这里的100,101,102为主机地址的主机位

image-20260621000821648

2.5校验配置语法(关键,报错直接启动失败)

# 校验主配置
named-checkconf
# 校验正向区域
named-checkzone centos7.com /var/named/centos7.com.zone
# 校验反向区域
named-checkzone 2.168.192.in-addr.arpa /var/named/192.168.2.zone

image-20260621002638820

2.6启动并开机自启 named 服务

systemctl start named
systemctl enable named
systemctl status named

3.防火墙和关闭 SELinux配置

放行防火墙 DNS 端口(53 UDP/TCP)

firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
# 查看放行规则
firewall-cmd --list-services

关闭 SELinux(否则解析权限报错)

临时关闭:

setenforce 0

永久关闭:

vi /etc/selinux/config
# 修改 SELINUX=disabled

4.DNS 服务器测试

  • 本机测试
# 解析内网域名
nslookup pikachu.centos7.com 127.0.0.1
dig pikachu.centos7.com @127.0.0.1
# 反向解析IP
nslookup 192.168.2.128 127.0.0.1
# 测试外网递归解析
nslookup www.baidu.com 127.0.0.1

image-20260621003159381

  • 客户端使用自建 DNS

因为我虚拟主机的内网网卡为VMnet1,所以该主机用这个网卡和虚拟机信息交流

image-20260621003556690

因此我要配置这个网卡的dns,在高级网络设置中对VMnet1进行配置

image-20260621004026842

将该网卡的首选DNS改为DNS服务器的主机地址

image-20260621004122738

利用命令来测试一下

nslookup pikachu.centos7.com

image-20260621004510954

这里就是完整的配置教程

相关新闻

  • 2026年无人驾驶扫地车Top3品牌推荐,看完就知道哪个好 - 工业清洁测评社
  • 2026包头漏水检测维修本地口碑防水商家榜单:厨卫/阳台/屋面/地下室渗漏水维修,持证施工+明码实价,防水补漏公司TOP5推荐 - 即刻修防水
  • Audiveris终极指南:5分钟快速上手开源乐谱识别神器

最新新闻

  • 机器学习在弱引力透镜宇宙学中的应用:应对系统误差与分布偏移挑战
  • 2026安康防水补漏避坑指南:卫生间/厨房/阳台/屋顶/地下室漏水检测维修全攻略,正规施工+透明报价+口碑榜靠谱服务商推荐 - 安佳防水
  • 从灾难性遗忘到概念瓶颈:CI-CBM实现免示例增量学习
  • 基于SAM的地质图像多任务分割:Petro-SAM框架实践与优化
  • 无需训练!3分钟上手roop-unleashed:浏览器就能玩的AI换脸神器
  • 2026年当下西安加固源头公司业内推荐:恒大加固深度解析与选型指南 - 品牌鉴赏官2026

日新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号