背景
在公司和家开发项目, 因为用的两台电脑, 每次开发某个项目的时候, 需要域名的时候每次都要在/etc/hosts
文件下手动解析, 两台电脑加上公司和本人域名比较多, 每次都这么折腾就比较麻烦, 所以就想着在自己的服务器上搭个dns
服务
解决
因为服务器上之前安装了docker
, 所以想着采用docker
搭建, 第一是为了保持服务器干净不乱, 第二也是因为docker
好管理, 比较方便等特点, 好说干就干。
- 这里我采用了jpillora/dnsmasq 具体的大家可以点这个链接看下文档
- 搭建教程比较简单
如上图我们先建立一个配置文件在服务器上
这里我把这个配置文件命名为dnsmasq.conf
放在了/home/ubuntu
目录
然后呢就是安装官网说的第二步了 运行docker run
命令创建并运行容器
详细的docker
参数这里就不多做解释了, 大家自行查看docker
的文档, 这里主要说下这个命令中的HTTP_USER
和HTTP_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
- 看下文档第三步
如果你服务器的安全组和防火墙都开放了5380
端口的话 你就可以直接通过IP:5380
的方式在浏览器访问了, 界面如上, 具体的解析语法上面也有示例, 可以自由的在网页上编辑这个配置文件, 然后点左边的save
和restart
按钮重启dns
服务 - 使用
dns
服务, 上面三步就已经把dns
服务搭建并维护了起来, 该说下使用的问题, 以我本机mac
为例子
点开wifi
下的打开网络偏好设置
然后大家可以看到上的页面点击右下角的 高级 按钮
然后切换到这个DNS
标签页上点击左下角的➕号添加你搭建dns
服务的服务器IP
保存看到页面DNS服务器
有你刚刚添加的IP
就说明dns
添加成功, 这个时候你就可以在ping
一下你在dns
服务上解析的域名测试下了
总结
- 这次搭建主要使用下
docker
当然也可以不使用docker
方法也基本大同小异 - 这样在服务器上搭建
dns
服务的话, 家里和公司都可以使用这个dns
服务了, 不用同一个域名在不同机器上的/etc/hosts
文件上解析多次了