凌峰创科服务平台

Ubuntu如何配置DNS服务器?

在Ubuntu系统中配置DNS服务器可以通过安装BIND(Berkeley Internet Name Domain)软件包来实现,BIND是广泛使用的DNS服务器软件,以下是详细的配置步骤和注意事项,帮助您在Ubuntu上成功搭建和配置DNS服务器。

Ubuntu如何配置DNS服务器?-图1
(图片来源网络,侵删)

确保您的Ubuntu系统已更新至最新状态,打开终端,运行以下命令更新软件包列表并升级现有软件:

sudo apt update && sudo apt upgrade -y

更新完成后,安装BIND9 DNS服务器软件包:

sudo apt install bind9 -y

安装完成后,BIND服务会自动启动,可以通过以下命令检查服务状态:

sudo systemctl status bind9

配置DNS服务器的核心文件,BIND的主要配置文件是/etc/bind/named.conf.options,用于设置全局选项,编辑该文件:

Ubuntu如何配置DNS服务器?-图2
(图片来源网络,侵删)
sudo nano /etc/bind/named.conf.options

在文件中添加以下基本配置,例如设置监听地址和允许查询的客户端:

options {
    directory "/var/cache/bind";
    recursion yes;
    allow-query { localhost; 192.168.1.0/24; }; // 允许本地和指定网段查询
    listen-on { 127.0.0.1; 192.168.1.1; }; // 监听本地和服务器IP
    forwarders { 8.8.8.8; 114.114.114.114; }; // 上游DNS服务器
};

保存文件后,重启BIND服务使配置生效:

sudo systemctl restart bind9

创建正向和反向DNS区域文件,假设您的域名是example.com,网段为168.1.0/24,首先创建正向区域配置文件:

sudo nano /etc/bind/named.conf.local

在文件中添加以下内容:

Ubuntu如何配置DNS服务器?-图3
(图片来源网络,侵删)
zone "example.com" {
    type master;
    file "/etc/bind/zones/example.com.db";
};
zone "1.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/zones/192.168.1.db";
};

保存文件后,创建区域文件目录:

sudo mkdir -p /etc/bind/zones

编辑正向区域文件/etc/bind/zones/example.com.db

sudo nano /etc/bind/zones/example.com.db
```  根据实际需求修改):  
```plaintext
$TTL    86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                        2025100101  ; Serial
                        3600        ; Refresh
                        1800        ; Retry
                        604800      ; Expire
                        86400 )     ; Minimum TTL
        IN      NS      ns1.example.com.
        IN      A       192.168.1.1
ns1     IN      A       192.168.1.1
www     IN      A       192.168.1.2

编辑反向区域文件/etc/bind/zones/192.168.1.db

sudo nano /etc/bind/zones/192.168.1.db
$TTL    86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                        2025100101  ; Serial
                        3600        ; Refresh
                        1800        ; Retry
                        604800      ; Expire
                        86400 )     ; Minimum TTL
        IN      NS      ns1.example.com.
1       IN      PTR     ns1.example.com.
2       IN      PTR     www.example.com.

配置完成后,检查BIND配置文件的语法是否正确:

sudo named-checkconf
sudo named-checkzone example.com /etc/bind/zones/example.com.db
sudo named-checkzone 1.168.192.in-addr.arpa /etc/bind/zones/192.168.1.db

如果显示OK,则配置正确,重启BIND服务:

sudo systemctl restart bind9

测试DNS服务器功能,使用dignslookup命令查询域名:

dig @127.0.0.1 example.com
nslookup 192.168.1.2

如果返回正确的解析结果,说明DNS服务器配置成功。

以下是配置过程中可能用到的参数说明表格:

参数 说明
directory 指定BIND工作目录,通常为/var/cache/bind
recursion 是否递归查询,yes表示允许
allow-query 允许查询的客户端IP范围
listen-on 监听的IP地址
forwarders 上游DNS服务器IP,用于转发无法解析的查询
SOA 起始授权机构记录,包含区域管理信息
NS 域名服务器记录,指定负责该区域的DNS服务器
A 主机记录,将域名映射到IPv4地址
PTR 指针记录,将IP地址映射到域名(反向解析)

相关问答FAQs

  1. 问:如何确保DNS服务器仅对内网客户端提供服务?
    答:在/etc/bind/named.conf.options中配置allow-query参数,限制允许查询的客户端IP范围,仅允许168.1.0/24网段访问:

    allow-query { 192.168.1.0/24; };

    确保listen-on仅监听内网IP或localhost,避免暴露在外网。

  2. 问:如何配置DNS服务器的日志记录?
    答:在/etc/bind/named.conf.options中添加logging配置段,指定日志文件路径和级别。

    logging {
        channel default_file {
            file "/var/log/named/default.log" versions 3 size 1m;
            severity dynamic;
            print-time yes;
        };
        category default { default_file; };
    };

    创建日志文件并设置权限:

    sudo touch /var/log/named/default.log
    sudo chown bind:bind /var/log/named/default.log

    重启BIND服务后,日志将记录到指定文件中。

分享:
扫描分享到社交APP
上一篇
下一篇