专栏首页blackpigletDNSMasq 域名解析配置

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

3. 参考文档

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Ceph 监控中应用 Prometheus relabel 功能

    工作环境中有三个独立的 Ceph 集群,分别负责对象存储、块存储和文件存储。搭建这几个 Ceph 集群时,我对 Ceph 重命名 Cluster name 的难...

    用户2443625
  • CephFS 使用

    之前介绍了 RBD 的使用方法,有了 RBD,远程磁盘挂载的问题就解决了,但 RBD 的问题是不能多个主机共享一个磁盘,如果有一份数据很多客户端都要读写该怎么办...

    用户2443625
  • 使用 pip 发布 Python 程序

    写过 Python 程序的小伙伴们都知道,需要 import 个非 Python 自带的软件包时,都要用到 pip 这个程序。平时我们都是用 pip,如果我们写...

    用户2443625
  • win10下配置linux子系统

    章鱼喵
  • 浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源

    例如在 chrome js console 中: alert(0.7+0.1); //输出0.7999999999999999 之前自己答的不是满意(对 陈嘉栋...

    IMWeb前端团队
  • 研究人员在大众和奥迪汽车中发现远程利用漏洞

    近日,安全研究人员发现,大众和奥迪汽车中存在多处安全漏洞,这些漏洞可能允许攻击者发起远程攻击行为。其中,部署大众汽车集团部分车型的车载信息娱乐(IVI)系统中的...

    FB客服
  • 浮点数精度问题透析:小数计算不准确+浮点数精度丢失根源

    之前自己答的不是满意(对 陈嘉栋的回答 还是满意的),想对这个问题做个深入浅出的总结

    周陆军
  • 交通预见未来(3): 如果只知道CNN和RNN 你就out了: 初识ConvLSTM

    前一阵被领域内的一位匿名大佬嘲笑现在还在看只用RNN的文章?有没有读过最新的文章,比如ConvLSTM,ResNet ?好吧,我是真的out了,原谅我非计算机专...

    深度学习与交通大数据
  • OpenStack实践(一):Ubuntu16.04下DevStack方式搭建p版OpenStack

    OpenStack部署方式很多,常见的个人部署方式有DevStack、Rdo、all-in-one、multi-node、multi-HA-node等;企业部署...

    loong576
  • js关键词变色,数组打乱,数组去重的实现和封装

    今天,把自己之前封装过的一部分小功能操作分享出现,都是一些可以说是比较常用,实现起来比较简单,代码又比较少的一些功能或操作,比如关键词变色,数组打乱,数组去重等...

    守候i

扫码关注云+社区

领取腾讯云代金券