当前位置:首页 > 云服务器 > 正文

ubuntu 配置dns服务器

在Ubuntu系统中配置DNS服务器可以通过多种方式实现,包括使用系统内置的DNS服务(如systemdresolved)或安装专门的DNS软件(如BIND、dnsmasq等),以下将以BIND(Berkeley Internet Name Domain)为例,详细介绍在Ubuntu上配置DNS服务器的完整步骤,包括安装、配置、测试及常见问题处理。

安装BIND DNS服务器

更新系统软件包列表并安装BIND,打开终端,执行以下命令:

sudo apt update sudo apt install bind9 bind9utils bind9doc

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

sudo systemctl status bind9

配置BIND DNS服务器

BIND的主配置文件位于/etc/bind/named.conf,而区域配置文件通常存放在/etc/bind/named.conf.local,以下以配置正向解析和反向解析为例进行说明。

配置正向解析区域

假设要配置域名为example.com,IP地址段为168.1.0/24,首先在/etc/bind/named.conf.local中添加正向区域声明:

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

在文件末尾添加以下内容:

ubuntu 配置dns服务器 第1张

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

sudo mkdir p /etc/bind/zones

创建正向区域文件

复制正向区域模板文件并编辑:

sudo cp /etc/bind/db.local /etc/bind/zones/db.example.com sudo nano /etc/bind/zones/db.example.com ```如下(示例):

;

; BIND data file for 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.

@ IN A 192.168.1.1

ns1 IN A 192.168.1.1

www IN A 192.168.1.2

mail IN A 192.168.1.3

#### 3. 创建反向区域文件 复制反向区域模板文件并编辑: ```bash sudo cp /etc/bind/db.127 /etc/bind/zones/db.192.168.1 sudo nano /etc/bind/zones/db.192.168.1 ```如下:

;

; BIND reverse data file for 192.168.1.0/24

;

$TTL 604800

@ IN SOA ns1.example.com. admin.example.com. (

1 ; Serial

604800 ; Refresh

86400 ; Retry

2419200 ; Expire

604800 ) ; Negative Cache TTL

;

@ IN NS ns1.example.com.

1 IN PTR ns1.example.com.

2 IN PTR www.example.com.

3 IN PTR mail.example.com.

ubuntu 配置dns服务器 第2张

在options块中添加以下内容:

listenon port 53 { any; }; // 监听所有接口 allowquery { any; }; // 允许所有客户端查询 allowrecursion { localhost; 192.168.1.0/24; }; // 允许递归查询的客户端

检查配置并重启服务

使用以下命令检查配置文件语法:

sudo namedcheckconf sudo namedcheckzone example.com /etc/bind/zones/db.example.com sudo namedcheckzone 1.168.192.inaddr.arpa /etc/bind/zones/db.192.168.1

若无错误,重启BIND服务:

sudo systemctl restart bind9

测试DNS服务器

使用nslookup测试

nslookup www.example.com nslookup 192.168.1.2

若返回正确的域名和IP,则配置成功。

使用dig测试

dig @localhost www.example.com

配置客户端DNS

在客户端设备上,将DNS服务器地址设置为Ubuntu服务器的IP(如168.1.1),然后测试域名解析。

ubuntu 配置dns服务器 第3张

常见问题处理

  1. 权限问题:确保区域文件权限正确,通常为644,属主为bind:

  2. 防火墙设置:若防火墙开启,需开放UDP/TCP 53端口:

    sudo ufw allow 53

  3. 相关问答FAQs

    Q1: 如何在Ubuntu上启用DNS over HTTPS (DoH)支持?

    A1: BIND本身不直接支持DoH,但可通过结合dnscryptproxy或unbound实现,例如安装dnscryptproxy:

    sudo apt install dnscryptproxy

    编辑/etc/dnscryptproxy/dnscryptproxy.toml,启用require_dnssec并添加DoH服务器列表,然后重启服务:

    sudo systemctl restart dnscryptproxy

    最后将客户端DNS指向0.0.1:53即可。

    Q2: 如何配置BIND作为DNS转发器?

    A2: 在/etc/bind/named.conf.options中添加转发器配置:

    forwarders { 8.8.8.8; 8.8.4.4; }; forward only; // 仅转发,不递归查询

    保存后重启BIND服务,所有非本地区域的查询将转发至指定的上游DNS服务器。

0