使用bind实现DNS服务

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服务就没有问题了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值