DNSMasq
DNSMasq 主要用来解决内网 DNS 域名缓存、DHCP、网络启动和路由通告功能,本文主要是将 DNSMasq 作为内网 DNS 使用。安装环境为 Ubuntu 16.04。
1. 安装
Ubuntu 安装很简单,使用自带的 APT 安装就可以了。
$ sudo apt update $ sudo apt install -y dnsmasq
完成后,需要对配置做些修改:
$ sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak $ sudo vim /etc/dnsmasq.conf .... resolv-file=/etc/resolv.conf strict-order listen-address=<host-ip> addn-hosts=/etc/hosts.dnsmasq
需要在配置文件中新增四行,下面解释一下新增这个四行的含义:
resolv-file:从文件读取 DNSMasq 上游的 DNS 服务器配置。
strict-order:resolv-file 文件中如果指定了多个 DNS 服务器,严格安装 DNS 服务器的先后顺序查询域名。
listen-address:监听地址,配置为本机 IP 即可。
addn-hosts:从文件读取本地 DNS 域名和 IP 的对应关系,格式为
<IP> <Domain name>
。其实可以把 IP 和域名的对应关系写在 /etc/hosts 文件中,DNSMasq 默认从那里读取,但如果要支持一个域名对应多个 IP,就必须使用 addn-hosts 选项了。
/etc/hosts.dnsmasq 文件内容如下:
$ cat /etc/hosts.dnsmasq 10.0.0.1 blackpiglet.com 10.0.0.2 blackpiglet.com 10.0.0.3 blackpiglet.com
修改完成后重启 DNSMasq
$ sudo systemctl restart dnsmasq.service
2. resolv.conf 设置
上面提到了 DNSMasq 是从 /etc/resolv.conf 文件中读取上游的 DNS 服务器的,所以可能要修改该文件,但是 Ubuntu 系统里该文件很可能是自动生成的,如果是自动生成的,系统重启,该文件的修改内容无法保存。
$ cat /etc/resolv.conf# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTENnameserver 10.0.0.2 nameserver 114.114.114.114 nameserver 127.0.0.1
那么我们该怎么让修改一直有效呢?这个文件是由 resolvconf.service 来负责维护的,我们可以通过修改下面这个文件来达到我们想要的效果:
$ cat /etc/resolvconf/resolv.conf.d/head # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTENnameserver 10.0.0.2 nameserver 114.114.114.114
作者:blackpiglet
链接:https://www.jianshu.com/p/26e11c3babc2
共同学习,写下你的评论
评论加载中...
作者其他优质文章