dnsmasq自建dns服务

背景

在公司和家开发项目, 因为用的两台电脑, 每次开发某个项目的时候, 需要域名的时候每次都要在/etc/hosts文件下手动解析, 两台电脑加上公司和本人域名比较多, 每次都这么折腾就比较麻烦, 所以就想着在自己的服务器上搭个dns服务

解决

因为服务器上之前安装了docker, 所以想着采用docker搭建, 第一是为了保持服务器干净不乱, 第二也是因为docker好管理, 比较方便等特点, 好说干就干。

  1. 这里我采用了jpillora/dnsmasq 具体的大家可以点这个链接看下文档
  2. 搭建教程比较简单
    upload successful
    如上图我们先建立一个配置文件在服务器上
    upload successful
    这里我把这个配置文件命名为dnsmasq.conf 放在了/home/ubuntu目录
    然后呢就是安装官网说的第二步了 运行docker run命令创建并运行容器
    upload successful
    详细的docker参数这里就不多做解释了, 大家自行查看docker的文档, 这里主要说下这个命令中的HTTP_USERHTTP_PASS这个主要是给你的dns服务管理界面加了个基础的登录验证, 这里我就贴上我的docker run命令
    1
    docker run  --name dnsmasq  -d  -p 53:53/udp  -p 5380:8080  -v /home/ubuntu/dnsmasq.conf:/etc/dnsmasq.conf  --log-opt "max-size=100m"  -e "HTTP_USER=panda"  -e "HTTP_PASS=panda"  --restart always jpillora/dnsmasq
    终端运行这个命令运行成功的话第二步就成功的结束了。
  3. 看下文档第三步
    upload successful
    如果你服务器的安全组和防火墙都开放了5380端口的话 你就可以直接通过IP:5380的方式在浏览器访问了, 界面如上, 具体的解析语法上面也有示例, 可以自由的在网页上编辑这个配置文件, 然后点左边的saverestart按钮重启dns服务
  4. 使用dns服务, 上面三步就已经把dns服务搭建并维护了起来, 该说下使用的问题, 以我本机mac为例子

upload successful
点开wifi下的打开网络偏好设置

upload successful
然后大家可以看到上的页面点击右下角的 高级 按钮
upload successful
然后切换到这个DNS标签页上点击左下角的➕号添加你搭建dns服务的服务器IP保存看到页面DNS服务器有你刚刚添加的IP就说明dns添加成功, 这个时候你就可以在ping一下你在dns服务上解析的域名测试下了

总结

  1. 这次搭建主要使用下docker当然也可以不使用docker方法也基本大同小异
  2. 这样在服务器上搭建dns服务的话, 家里和公司都可以使用这个dns服务了, 不用同一个域名在不同机器上的/etc/hosts文件上解析多次了