5154

Good Luck To You!

ubuntu dns server配置文件

untu DNS服务器的主要配置文件位于/etc/bind9/目录下,包括named.conf(主文件)、named.defaultzones等,若通过DHCP配置则涉及/etc/dhcp/dhcpd.conf

Ubuntu DNS Server配置文件详解

在Ubuntu系统中搭建DNS服务器通常使用BIND(Berkeley Internet Name Domain)软件包实现,以下是关于其核心配置文件的详细说明,涵盖安装、基础配置到高级功能的完整指南。


安装BIND服务

首先需要安装bind9套件:

sudo apt update && sudo apt install bind9 bind9utils bind9doc

安装完成后,主程序会自动运行为后台守护进程,相关文件位于/etc/bind目录下。


主要配置文件解析

named.conf(全局设置)

路径:/etc/bind/named.conf
这是BIND的主配置文件,定义了全局参数和区域声明,典型结构如下:

// 日志级别与渠道配置
logging {
    channel default_log {
        file "/var/log/named/default.log";
        severity info;
        printtime yes;
    };
};
options {
    directory "/var/cache/bind";          // 工作目录
    recursion yes;                       // 允许递归查询
    allowquery { any; };                // 接受所有客户端的请求
    forwarders { 8.8.8.8; };             // 上游DNS服务器(如Google Public DNS)
    forward only;                        // 仅转发模式(可选)
    dnssecvalidation auto;             // 自动验证DNSSEC签名
};

关键参数说明

  • directory: 指定临时文件存储路径;
  • recursion: 控制是否支持递归解析;
  • allowquery: 设置哪些IP可以发起查询请求;
  • forwarders: 当本地无法解析时转发至指定服务器。

正向解析区域文件示例(example.com

新建文件:/etc/bind/db.example.com 格式需严格遵循RFC规范:

$ORIGIN example.com.
@       IN      SOA     ns1.example.com. admin.example.com. (
                  2025080301 ; serial number (YYYYMMDDNN)
                                        3600       ; refresh interval
                                        1800       ; retry interval
                                        604800     ; expiry time
                                        86400 )    ; minimum TTL
; Nameserver records
@       IN      NS      ns1.example.com.
ns1     IN      A       192.168.1.100
www     IN      A       192.168.1.101
mail    IN      MX      10 mailserver.example.com.

字段含义

  • SOA(Start of Authority):标识授权开始记录,包含序列号、刷新时间和负责人信息;
  • NS:指定该域的权威DNS服务器;
  • A:将域名映射到IPv4地址;
  • MX:设置邮件交换器优先级。
记录类型 作用 示例值
A IPv4地址映射 www IN A 192.168.1.101
AAAA IPv6地址映射 api IN AAAA fe80::1%eth0
CNAME 别名重定向 beta IN CNAME alpha
TXT 文本备注信息 verify IN TXT "authenticated"

反向解析区域文件(PTR记录)

用于通过IP反查域名,例如创建168.1.inaddr.arpa对应的文件:

$ORIGIN 192.168.1.inaddr.arpa.
@       IN      SOA     ns1.example.com. admin.example.com. (
                  2025080302 ; serial number updated daily
                                        3600       ; refresh
                                        1800       ; retry
                                        604800     ; expiry
                                        86400 )    ; minimum TTL
100     IN      PTR     ns1.example.com.
101     IN      PTR     www.example.com.

注意:反向区域的命名规则为“网络段+固定后缀”,如X.Y.Z.inaddr.arpa对应IPv4地址块。


安全增强建议

  1. 限制查询范围
    修改options部分中的allowquery为特定子网:
    allowquery { 192.168.1.0/24; };
  2. 禁用多余功能
    若无需动态更新,可关闭rndc远程管理端口:
    control {
        inkeysfile "/etc/bind/keys.private"; # 移除此行以禁用密钥认证
    };
  3. 防火墙规则补充
    确保仅开放UDP/TCP端口53(DNS标准端口):
    sudo ufw allow from 192.168.1.0/24 to any port 53

常见问题与解答

Q1: 如何测试配置是否正确?
A: 使用命令行工具验证:

  • dig @localhost example.com → 检查正向解析;
  • dig x 192.168.1.100 → 验证反向解析;
  • namedcheckconf /etc/bind/named.conf → 语法校验;
  • namedcheckzone example.com /etc/bind/db.example.com → 区域文件健康检查。

Q2: 为何外部设备仍无法解析我的私有域名?
A: 可能原因包括:

  1. 未正确设置allowquery策略,默认仅监听回环接口;
    ✅解决方案:在options中添加listenon { any; };并重启服务;
  2. 防火墙阻止了53号端口通信;
    ✅解决方案:执行sudo ufw allow 53/udpsudo ufw allow 53/tcp
  3. 路由器未转发内部DNS请求至本机IP。
    ✅解决方案:在路由器DHCP设置中指定DNS服务器为本机IP地址。

生效与调试流程

完成配置后按以下步骤操作:

  1. 重启服务使更改生效:sudo systemctl restart bind9
  2. 查看实时日志排查错误:tail f /var/log/syslog | grep named
  3. 逐步排查常见错误代码(如SERVFAIL, NXDOMAIN);
  4. 使用在线工具如DNSstuff进行跨网络测试。

通过以上步骤,您可以在Ubuntu上成功部署一个功能完备且安全的DNS服务器

发表评论:

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

«    2025年8月    »
123
45678910
11121314151617
18192021222324
25262728293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
    网站收藏
    友情链接

    Powered By Z-BlogPHP 1.7.3

    Copyright Your WebSite.Some Rights Reserved.