在 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 解析是否正常工作:
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