为了账号安全,请及时绑定邮箱和手机立即绑定

1分钟搭建属于你的DNS服务器

标签:
架构

有没有想过在自己的服务器上使用a.com就访问自己指定的IP,当然了,使用本地hosts文件也可以实现,但是如果在当下的集群服务环境下呢?你也想挑战管理那么多IP地扯池么,好了回到正文这里,我们使用dnsmasq对应的docker版本docker-dnsmasq

使用指南

下载镜像

docker pull docker-dnsmasq

创建最简单的配置 /opt/dnsmasq.conf

#dnsmasq config, for a complete example, see:
#  http://oss.segetech.com/intra/srv/dnsmasq.conf
#dns解析日志
log-queries
#定义主机与IP映射
address=/h0/172.17.205.28
address=/h1/172.17.205.32
...

运行容器

docker run \
    --name dnsmasq \
    -d \
    -p 53:53/udp \
    -p 8080:8080 \
    -v /opt/dnsmasq.conf:/etc/dnsmasq.conf \
    --log-opt "max-size=100m" \
    -e "HTTP_USER=admin" \
    -e "HTTP_PASS=admin" \
    --restart always \
    jpillora/dnsmasq

参数说明

名称 说明
max-size 日志最大保存
HTTP_USER 登录用户名
HTTP_PASS 登录密码

访问地扯http://localhost:8080

  • 使用admin/admin帐号密码登录。

dnsmasq界面

DNS配置

  • /etc/resolv.conf文件前面增加下面两句
  • 只增加172.17.205.28 DNS会解析失败
    nameserver 127.0.0.1          #必填
    nameserver 172.17.205.28      #必填[本机主要网卡]
    ...

    测试

  • 本机与其它机子的配置一样
  • 必填要在前面加才会生效,因为DNS解析会从上往下解析
    root@center ~# ping h1
    PING h1 (172.17.205.32) 56(84) bytes of data.
    64 bytes from 172.17.205.32 (172.17.205.32): icmp_seq=1 ttl=64 time=0.155 ms
    64 bytes from 172.17.205.32 (172.17.205.32): icmp_seq=2 ttl=64 time=0.203 ms
    ^C
    --- h1 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1000ms
    rtt min/avg/max/mdev = 0.155/0.179/0.203/0.024 ms

    增加解析

  • 点击保存即可,过几秒可自动生效
    address=/h0/172.17.205.28
    address=/h1/172.17.205.32
    address=/h2/172.17.205.33
    address=/h3/172.17.205.34
    address=/h4/172.17.205.35
    ....

注意

  • 建议保持其它机子的hostname与上面的配置一样
  • 否则有可能会出现如下问题
    root@asdf ~# ping h0
    ping: h0: Name or service not known
点击查看更多内容
12人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消