DNSMasq 域名解析配置

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 OVERWRITTEN
nameserver 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 OVERWRITTEN
nameserver 10.0.0.2
nameserver 114.114.114.114

未经允许不得转载(声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:net-net@foxmail.com进行举报,并提供相关证据,工作人员会在10个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。):策信智库资讯网 » DNSMasq 域名解析配置

赞 (0)