凌峰创科服务平台

linux 配置dns服务器

在Linux系统中配置DNS服务器通常使用BIND(Berkeley Internet Name Domain)软件,它是应用最广泛的DNS服务器实现之一,以下是详细的配置步骤,包括安装、主配置文件设置、区域文件创建及服务启动等关键环节。

linux 配置dns服务器-图1
(图片来源网络,侵删)

安装BIND,以Ubuntu/Debian系统为例,通过sudo apt update更新软件包列表后,执行sudo apt install bind9进行安装;对于CentOS/RHEL系统,则使用sudo yum install bindsudo dnf install bind,安装完成后,BIND服务会自动启动,可通过systemctl status bind9(Ubuntu)或systemctl status named(CentOS)检查服务状态。

接下来编辑主配置文件/etc/bind/named.conf(Ubuntu)或/etc/named.conf(CentOS),该文件定义了服务器的全局参数,如监听地址、允许查询的客户端等,在options段落中,可设置listen-on port 53 { 127.0.0.1; any; };允许本地和所有IP访问,allow-query { localhost; any; };允许所有客户端查询,若需限制特定网段,可将any替换为168.1.0/24等网段地址。

然后创建区域文件,用于正向和反向解析,假设要配置example.com域的正向解析,在/etc/bind/named.conf.local(Ubuntu)或/etc/named.conf(CentOS)中添加以下区域声明:

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

反向解析区域配置类似,例如针对168.1.0/24网段:

linux 配置dns服务器-图2
(图片来源网络,侵删)
zone "1.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.192.168.1";
};

创建正向区域文件/etc/bind/db.example.com如下:

$TTL    86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                        2025100101  ; Serial
                        3600        ; Refresh
                        1800        ; Retry
                        604800      ; Expire
                        86400 )     ; Minimum
        IN      NS      ns1.example.com.
        IN      A       192.168.1.10
ns1     IN      A       192.168.1.10
www     IN      A       192.168.1.20

反向区域文件/etc/bind/db.192.168.1内容为:

$TTL    86400
@       IN      SOA     ns1.example.com. admin.example.com. (
                        2025100101  ; Serial
                        3600        ; Refresh
                        1800        ; Retry
                        604800      ; Expire
                        86400 )     ; Minimum
        IN      NS      ns1.example.com.
10      IN      PTR     ns1.example.com.
20      IN      PTR     www.example.com.

其中$TTL定义默认生存时间,SOA记录包含区域管理信息,NS记录指定域名服务器,A记录正向解析IP,PTR记录反向解析域名。

配置完成后,检查语法错误,Ubuntu中使用sudo named-checkconf检查主配置文件,sudo named-checkzone example.com /etc/bind/db.example.com检查区域文件;CentOS则使用sudo named-checkconfsudo named-checkzone,确认无误后,重启BIND服务:sudo systemctl restart bind9(Ubuntu)或sudo systemctl restart named(CentOS)。

linux 配置dns服务器-图3
(图片来源网络,侵删)

测试DNS解析功能,使用dig @192.168.1.10 example.comnslookup www.example.com 192.168.1.10进行正向解析测试,dig -x 192.168.1.10进行反向解析测试,若返回正确结果,说明配置成功。

相关问答FAQs

  1. 问:DNS服务器无法解析外部域名,只能解析本地区域,如何解决?
    答:检查/etc/bind/named.conf.options中的forwarders配置,未配置时默认不转发外部查询,添加forwarders { 8.8.8.8; 114.114.114.114; };指定上游DNS服务器,重启服务后即可解析外部域名。

  2. 问:如何配置DNS服务器的响应速度?
    答:可通过调整named.conf中的options参数优化,例如增大max-cache-size值扩大缓存(如max-cache-size 256m;),缩短min-cache-ttl(如min-cache-ttl 300;)提高缓存更新频率,或启用response-policy配置DNS响应策略,减少无效查询响应时间。

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