使用docker在Centos上做DNS服务器的配置

我的博客: 小呆博客

1. Docker安装DNS

1.1 安装docker

curl -sSL https://get.daocloud.io/docker | sh

1.2 启动docker服务

systemctl start docker

1.3 运行DNS容器

Docker使用sameersbn/bind搭建DNS服务器

docker run --name bind -d --restart=always --publish 53:53/tcp --publish 53:53/udp --publish 10000:10000/tcp --volume /srv/docker/bind:/data sameersbn/bind:9.16.1-20200524

测试时记得将本机的dns修改为dns服务器的地址,并且关闭ipv6的连接

运行成功访问https://ip:10000,注意此处是https非http

默认账号root,密码password

1.4 运行nginx容器

为测试提供一个域名访问网站路径

docker run --name nginx -d -p 80:80 nginx

1.5 docker相关问题解决

  • 53端口占用:

    netstat -ntlp|grep 53 
    #查出pid
    kill -9 pid
    
  • 容器启动失败:

    • 检查网络连接

    • 检查docker虚拟存储容量是否足够

    • 镜像下载完毕的情况下运行

      docker restart 容器ID
      

2.两种方式配置

  • 手动配置文件进行域名拦截

2.1 手动配置文件进行域名拦截

拦截www.getcharzp.cn 这个域名到上面启动的nginx服务中

  1. 编辑/srv/docker/bind/bind/etc/named.conf.local文件中

    vim /srv/docker/bind/bind/etc/named.conf.local
    

    新增下面内容(正向解析:域名解析为IP地址)

    zone "cn" {
            type master;
            file "/var/lib/bind/cn.hosts";
            };
    
  2. /srv/docker/bind/bind/lib下新增cn.hosts文件

    vim /srv/docker/bind/bind/lib/cscn.hosts
    

    下方的9d427dee11c8为自己docker容器的ID qq.qq.com为邮箱地址

    $ttl 38400
    cn.     IN      SOA     2bb72646050f. admin.qq.com (
                            1640000819
                            10800
                            3600
                            604800
                            38400 )
    cn.     IN      NS      2bb72646050f.
    my.cn.  IN      A       192.168.46.133
    
  3. 重启bind服务

    docker restart bind
    

2.2 通过web界面进行域名拦截

2.2.1 访问后台

账号: root ,密码: password

在这里插入图片描述

2.2.2 进入后台
  • Dashboard ==> Servers ==> BIND DNS Server

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h0EbnZVR-1640272734156)(dns/image-20211220210701753.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-71GdSmdG-1640272734157)(dns/image-20211220211009966.png)]

2.2.3 配置master zone
  • 反向解析

    • 勾选Reverse(Address to Names)
    • Domain name/Network 填入 IP
    • 输入随便一个Email address
    • 点击Create
    • 进入Zone
    • 点击Reverse Address
    • 创建后点击最后一张图的保存按钮
    • 最后到命令行输入docker restart bind

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kFfCTxr8-1640272734157)(dns/image-20211220211441400.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yWcBvZQ6-1640272734158)(dns/image-20211220211549761.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rxBj35ri-1640272734158)(dns/image-20211220211707591.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l31gT53H-1640272734158)(dns/image-20211220211810239.png)]

  • 正向解析

    • 勾选Forward(Names to Address)
    • Domain name / Network填入域名
    • 随便输入Email address
    • 点击Create
    • 点击Address
    • 输入二级域名前缀
    • 输入IP地址
    • 点击create后点击右上角保存
    • 最后到命令行输入docker restart bind

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-X26lhaSK-1640272734159)(dns/image-20211220212813074.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ugn9jSc3-1640272734159)(dns/image-20211220212904233.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-chofBpkF-1640272734159)(dns/image-20211220212955087.png)]

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zxSCq6Cq-1640272734159)(dns/image-20211220213030883.png)]

2.2.4 查看配置文件

根据手动配置文件位置去找或者点击如下图所示查看路径/配置文件内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9KSHfOHt-1640272734160)(dns/image-20211220213324835.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1ivVexSR-1640272734160)(dns/image-20211220213409639.png)]

正向解析/反向解析原理相同

3. 测试

使用另一台机去测试

首先输入下面命令配置

vim /srv/docker/bind/bind/etc/resolv.conf

在里面加入条nameserver (DNS服务器IP),放在nameserver的第一条

测试方法有多种:

  • 直接浏览器访问是否存在nginx欢迎页面
  • 使用nslookup查看是否配置成功
    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1B5JoASe-1640272734160)(dns/image-20211220213929438.png)]

配置成功后,访问其他的肯定是不行的所以要将原来的nameserver改回去或者改成nameserver 8.8.8.8

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿呆攻防

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值