ubuntu自带的DNS服务
位于127.0.0.53下,直接使用这个下面的DNS服务也可以,但我们要自己设置。
可以关掉这个服务,用下面命令,发现服务已经被关闭
sudo systemctl stop systemd-resolved
可以用named命令重启服务,选择对应的配置问价,下面安装bind9后也一样
named -c ***/named.conf
安装bind9
sudo apt install bind9
创建一个权威侧zone文件/etc/bind/example.com.zone
域文件 zone file由指令directives
和资源记录resource records
组成。指令指定名称服务器执行任务或者在该区域中应用特殊设置;资源记录定义该区域的参数,并为每台主机分配身份识别。指令是可选的;资源记录是必须的,需要为区域提供名称服务。
$TTL 10M
@ IN SOA ns1.example.com admin.example.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns1.example.com.
; 这里ns1主机的ip地址可以换
ns1 A 127.0.0.1
; 这里www主机的ip地址可以换
www A 127.0.0.1
修改bind的配置文件,配置文件位于/etc/bind目录下
sudo gedit /etc/bind/named.conf
可以这么配置
logging {
channel default_log {
#这里注意提前创建log目录
file "/var/log/named/named.log" versions 10 size 200m;
severity dynamic;
print-category yes;
print-severity yes;
print-time yes;
};
channel query_log {
file "/var/log/named/query.log" versions 10 size 200m;
severity dynamic;
print-category yes;
print-severity yes;
print-time yes;
};
channel resolver_log {
file "/var/log/named/resolver.log" versions 10 size 200m;
severity dynamic;
print-category yes;
print-severity yes;
print-time yes;
};
category default {default_log;};
category queries {query_log;};
category query-errors {query_log;};
category resolver {resolver_log;};
};
options {
#这里的ip地址可以换
listen-on port 53 { 127.0.0.1; };
directory "/etc/bind";
dnssec-validation no;
#支持递归查询
recursion yes;
#转发到公共DNS优先,而不是自己去迭代查询,节省网络IO资源消耗
forward first;
#公共DNS的ip地址
forwarders {
223.5.5.5;
223.6.6.6;
};
allow-query { any; };
};
#保留的example.com域名的对应查询,用到上面配置的zone文件
zone "example.com" {
type master;
file "example.com.zone";
};
这里服务是放在127.0.0.1的53端口,
可以查看服务和端口的使用情况
netstat -tunlp
使用dig命令可以测试服务的情况
dig --help查看如何使用
直接dig某个网址,使用的不是我们的DNS服务。
dig我们刚搭的DNS服务
发现没用unreached
需要把我们搭建的DNS服务添加到/etc/resolve.conf下,如果要永久,就修改这个文件里提示的resolved.conf文件,完成后再使用127.0.0.1,发现可以了。
启动bind问题
servicectl start named //启动named服务
servicectl status named //查看是否启动成功
这里bind9可能会有一个问题,那就是启动时会报
directory '/etc/bind' is not writable,这是因为bind文件夹自身的问题,加个权限就可以了
chmod 777 bind/
这时候再启动named服务就没有问题了。