Ubuntu系统配置DNS解析方法

在 Ubuntu 中添加 DNS 服务器

本文将指导你如何在 Ubuntu 系统上安装和配置 DNS 服务器。主要任务包括安装 BIND(Berkeley Internet Name Domain)作为 DNS 服务器软件,并配置区域文件以解析域名。适用于需要本地 DNS 解析服务的场景。

准备工作

在开始之前,确保你拥有:

  • 一台运行 Ubuntu 的服务器
  • 具有 root 或 sudo 权限的账户
  • 一个可用的静态 IP 地址

安装 BIND DNS 服务器

更新系统包列表

首先更新你的系统包列表以确保获取最新版本的软件:

sudo apt update

安装 BIND 软件包

使用以下命令安装 BIND:

sudo apt install bind9 bind9utils bind9-doc

检查服务状态

安装完成后,验证 BIND 服务是否正常运行:

sudo systemctl status bind9

配置 DNS 区域文件

创建区域文件

创建一个新的区域文件。例如,为本地网络创建一个名为 example.com 的区域:

sudo nano /etc/bind/zones/db.example.com

配置区域文件内容

在文件中添加以下内容(根据你的需求修改):


$TTL    604800
@       IN      SOA     ns1.example.com. admin.example.com. (
            2         ; Serial
            604800    ; Refresh
            86400     ; Retry
            2419200   ; Expire
            604800 )  ; Negative Cache TTL
;
@       IN      NS      ns1.example.com.
ns1     IN      A       192.168.1.2
www     IN      A       192.168.1.3
@       IN      MX      10       mail.example.com.
mail    IN      A       192.168.1.4

更新区域配置

编辑主配置文件以包含新的区域:

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

添加以下内容:


zone "example.com" {
    type master;
    file "/etc/bind/zones/db.example.com";
};

重启 BIND 服务

应用配置更改:

sudo systemctl restart bind9

测试 DNS 配置

使用 dig 命令

测试 DNS 解析是否正常工作:

Ubuntu系统配置DNS解析方法

dig @localhost www.example.com

检查防火墙设置

确保防火墙允许 DNS 端口(53 UDP/TCP):

sudo ufw allow 53/udp
sudo ufw allow 53/tcp

配置客户端解析

编辑 resolv.conf

在客户端上,编辑 resolv.conf 文件指向你的 DNS 服务器:

sudo nano /etc/resolv.conf

添加以下内容:

nameserver 192.168.1.2
options edns0

高级配置选项

创建转发器

如果你需要将外部查询转发到上游 DNS 服务器,编辑主配置文件:

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

添加转发器配置:


forwarder { 8.8.8.8; };
forwarder { 8.8.4.4; };

启用递归 DNS

默认情况下,BIND 不会作为递归服务器运行。若需启用,修改主配置文件:

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

添加以下行:

recursion yes;

监控和调试

查看日志

查看 BIND 的系统日志以排查问题:

sudo tail -f /var/log/syslog | grep bind9

使用 named-checkconf

验证配置文件的语法:

sudo named-checkconf /etc/bind/named.conf.local