您的位置:

Ubuntu配置DNS

一、安装DNS工具

首先需要安装DNS工具,比较常用的有bind9和dnsmasq,我们以bind9为例,使用以下命令进行安装:

sudo apt-get update
sudo apt-get install bind9

安装完成后,可以使用以下命令查看版本号:

named -v

二、配置主要文件

配置bind9主要需要修改3个文件:

  • named.conf.options
  • named.conf.local
  • db.[domain]

1. named.conf.options

这个文件主要用于指定DNS服务器的IP地址,以及其他一些配置信息。使用以下命令打开文件:

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

修改以下配置:

options {
  directory "/var/cache/bind";

  // Forwarding
  forwarders {
    8.8.8.8;
    //更多的DNS服务器IP地址
  };

  dnssec-validation auto;

  // listen-on-v6 { any; };
};

在forwarders中可以设置多个DNS服务器的IP地址,这样在本地DNS服务器无法解析时,就会向其他DNS服务器进行查询。

2. named.conf.local

这个文件主要用于指定区域文件的路径,以及其他一些配置信息。使用以下命令打开文件:

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

修改以下配置:

zone "[domain]" {
  type master;
  file "/etc/bind/db.[domain]";
};

[domain]是你需要解析的域名,比如example.com。

3. db.[domain]

这个文件用于指定域名对应的IP地址。使用以下命令创建文件并添加以下配置:

sudo nano /etc/bind/db.[domain]
$TTL 604800
@ IN SOA [domain]. admin.[domain]. (
            1 ; Serial
            604800 ; Refresh
            86400 ; Retry
            2419200 ; Expire
            604800 ) ; Negative Cache TTL
    ;
    IN NS [nameserver]. [domain].
[hostname] IN A [ipaddress]

[hostname]是需要解析的主机名,[ipaddress]是对应的IP地址。注意最后一行需要以.结尾。

三、启动DNS服务

完成以上配置后,使用以下命令启动DNS服务:

sudo service bind9 start

需要注意的是,如果DNS服务无法启动,可以使用以下命令查看具体错误信息:

sudo tail -f /var/log/syslog

四、测试DNS解析

在完成以上步骤后,可以使用以下命令进行测试:

dig [hostname].[domain]

如果返回结果中包含对应的IP地址,则说明DNS解析成功。

五、自定义解析规则

如果需要自定义解析规则,可以在/etc/bind/named.conf.local文件中添加以下配置:

zone "[domain]" {
  type master;
  file "/etc/bind/db.[domain]";

  // Custom DNS rules
  // ...
};

添加自定义规则后,需要使用以下命令重启DNS服务:

sudo service bind9 restart

六、管理DNS缓存

DNS服务器会缓存解析结果,以提高查询效率。如果需要手动刷新缓存,可以使用以下命令:

sudo rndc flush

需要注意的是,这会使得所有缓存的解析结果全部失效。

七、注意事项

在配置DNS服务时,需要注意以下几点:

  • 确保DNS服务器的端口53未被防火墙封锁。
  • 在修改文件后,需要使用sudo service bind9 restart命令重启DNS服务。
  • 创建的域名需要在DNS注册商处进行解析。
  • 使用dig命令测试时,可以使用+trace选项追踪DNS解析的过程。