天天看点

树莓派瞎玩~9~dns服务器安装dnsmasqdnsmasq的基本配置关于resolv.confresolv.conf 被重写的解决方案修改hosts

树莓派瞎玩~9~dns服务器

  • 安装dnsmasq
  • dnsmasq的基本配置
  • 关于resolvconf
  • resolvconf 被重写的解决方案
  • 修改hosts

点击这里查看DNSMASQ文档

安装dnsmasq

pi@raspberrypi:~ $ sudo apt-get install -y dnsmasq
           

dnsmasq的基本配置

  1. listen-address: 监听地址,listen-address=127.0.0.1,表示这个 dnsmasq 本机自己使用有效。注意:如果你想让本机所在的局域网的其它电脑也能够使用上Dnsmasq,应该把本机的局域网IP加上去:listen-address=192.168.1.123,127.0.0.1
  2. strict-order: 按照resolv.conf中nameserver顺序依次使用,本行被注释后会随机的调用nameserver
  3. cache-size: 缓存解析条数,默认是150
本节参考 简单的配置dnsmasq作为本地dns缓存层 和 Dnsmasq安装与配置-搭建本地DNS服务器 更干净更快无广告DNS解析

关于resolv.conf

dnsmasq.conf

中,默认注释了

no-resolv

,因此可以通过设置

resolv.conf

配置DNS服务器。

!!经过测试,这个文件每次重启都会被系统重写,因此只适合临时存放!!

resolv.conf

文件主要的作用是DNS客户机配置文件,设置DNS服务器的IP地址及DNS域名。

/etc/resolv.conf

文件功能:DNS客户机配置文件,设置DNS服务器的IP地址及DNS域名

相关文件:/etc/host.conf

文件格式:

domainname 域名

search 域名

nameserver Primary_DNS_Server_IP_address

nameserver Second_DNS_Server_IP_address

该文件是由域名解析器(resolver,一个根据主机名解析IP地址的库)使用的配置文件,示例如下:

search luckcy.com

nameserver208.164.186.1

nameserver208.164.186.2

“search domainname.com”表示当提供了一个不包括完全域名的主机名时,在该主机名后添加domainname.com的后缀;“nameserver”表示解析域名时使用该地址指定的主机为域名服务器。其中域名服务器是按照文件中出现的顺序来查询的。

其中domainname和search可同时存在,也可只有一个;nameserver可指定多个

示例文件内容:

search luckcy.com

nameserver 202.118.66.6

本节引用自Richard Shen运维/架构

配置开始

sudo nano /etc/resolv.conf
           

修改其中的DNS服务器,第一个DNS服务器设置为本机,使DNS查询首先解析DNSMASQ

# Generated by resolvconf
nameserver 
nameserver 
nameserver 
           

resolv.conf 被重写的解决方案

在dnsmasq配置文件中,有如下一段叙述,通过从另一个文件中查找DNS的上游服务器。

# Change this line if you want dns to get its upstream servers from
# somewhere other that /etc/resolv.conf
resolv-file=/etc/resolv_xiaobai.conf
           

建立

resolv_xiaobai.conf

,加入上游DNS服务器

树莓派瞎玩~9~dns服务器安装dnsmasqdnsmasq的基本配置关于resolv.confresolv.conf 被重写的解决方案修改hosts

重启树莓派测试,域名被正确解析

树莓派瞎玩~9~dns服务器安装dnsmasqdnsmasq的基本配置关于resolv.confresolv.conf 被重写的解决方案修改hosts

修改hosts

dnsmasq.conf

中,默认注释了

no-hosts

,这代表

dnsmasq

会首先寻找本地的

hosts

文件,然后去寻找缓存下来的域名,最后去上游dns服务器查找。

sudo nano /etc/hosts
           

hosts 原始内容

127.0.0.1       localhost
::1             localhost ip6-localhost ip6-loopback
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters

127.0.1.1       raspberrypi
           

可以按照这种格式加入任意域名的解析

继续阅读