5154

Good Luck To You!

linux centos dns服务器

CentOS上搭建DNS服务器,需安装BIND软件包,配置named.conf文件及区域文件,启动并启用named服务

Linux CentOS DNS服务器配置指南

DNS服务器

什么是DNS

DNS(Domain Name System,域名系统)是一个分布式数据库,用于将易于记忆的域名(如www.example.com)转换为计算机能够理解的IP地址(如192.168.1.1),它通过分层结构实现全球范围内的域名解析服务。

DNS服务器类型

  • 主DNS服务器(Primary Master):存储和管理域名的权威数据,负责处理写入请求。
  • 辅助DNS服务器(Secondary Slave):从主服务器同步数据,提供冗余备份。
  • 缓存DNS服务器(Caching Only):仅缓存解析结果,加速查询速度。

在CentOS上部署DNS服务器

安装BIND DNS软件

BIND(Berkeley Internet Name Domain)是最常用的DNS服务器软件。

sudo yum install bind bindutils bindchroot y
  • bind:主程序包。
  • bindutils:包含nslookupdig等实用工具。
  • bindchroot:增强安全性,通过Chroot隔离BIND进程。

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

修改以下关键参数:

linux centos dns服务器

参数 默认值 修改建议 说明
listenon port 53 0.0.1 any; 允许所有接口监听
allowquery localhost; any; 允许所有客户端查询
dnssecvalidation yes no 禁用DNSSEC验证(若需转发)

示例配置片段:

options {
    listenon port 53 { any; };
    allowquery { any; };
    forwarders { 114.114.114.114; 8.8.8.8; };
    recursion yes;
    dnssecvalidation no;
};

定义域名区域

编辑/etc/named.rfc1912.zones文件,添加正向和反向解析区域:

正向解析区域(例如example.com

zone "example.com" IN {
    type master;
    file "example.com.zone";
    allowupdate { none; };
};

反向解析区域(例如168.1.x

zone "1.168.192.inaddr.arpa" IN {
    type master;
    file "192.168.1.rev";
    allowupdate { none; };
};

创建区域文件

/var/named/目录下创建区域文件:

linux centos dns服务器

正向区域文件(example.com.zone

$TTL 86400
@    IN    SOA     ns1.example.com. admin.example.com. (
                   2023100101 ; Serial
                   3600        ; Refresh
                   1800        ; Retry
                   604800      ; Expire
                   86400)      ; Minimum TTL
@        IN    NS      ns1.example.com.
ns1      IN    A       192.168.1.1
www      IN    A       192.168.1.100
mail     IN    MX      10 mail.example.com.

反向区域文件(168.1.rev

$TTL 86400
@    IN    SOA     ns1.example.com. admin.example.com. (
                   2023100102 ; Serial
                   3600        ; Refresh
                   1800        ; Retry
                   604800      ; Expire
                   86400)      ; Minimum TTL
@        IN    NS      ns1.example.com.
1        IN    PTR     ns1.example.com.
100      IN    PTR     www.example.com.

设置防火墙规则

开放DNS服务端口(53/TCP和UDP):

firewallcmd permanent addservice=dns
firewallcmd reload

启动并启用服务

sudo systemctl start named
sudo systemctl enable named

客户端配置与测试

配置客户端DNS

修改客户端的/etc/resolv.conf文件,添加DNS服务器IP:

nameserver 192.168.1.1

或通过nmcli命令持久化配置:

linux centos dns服务器

nmcli con mod "YourConnectionName" ipv4.dns "192.168.1.1"
nmcli con up "YourConnectionName"

测试解析

使用以下命令验证DNS服务:

nslookup www.example.com
ping www.example.com

常见问题与解答

Q1: 如何更新区域文件后立即生效?

  • 操作:增大区域文件的Serial号(例如从2023100101改为2023100102),然后执行:
    sudo systemctl restart named
  • 说明:辅DNS服务器通过检查Serial号判断是否需要同步数据。

Q2: DNS服务器无法解析外部域名怎么办?

  • 原因:未配置转发器或递归功能未开启。
  • 解决:在named.conf中添加forwarders参数(如公共DNS服务器8.8.8),并确保recursion yes;生效。

扩展功能

功能 配置项 说明
负载均衡 为同一域名配置多个A记录 实现流量分发
安全加固 限制allowquery范围 仅允许特定IP查询
日志记录 启用logging选项 记录查询日志

通过以上步骤,您可以在CentOS上成功搭建一个功能完整的DNS服务器,根据实际需求,可进一步配置高级功能如辅助DNS、负载均衡或DNSSEC

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年7月    »
123456
78910111213
14151617181920
21222324252627
28293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.