标签 - DNS

Linux DNS    2019-08-29 15:14:58    50    0    0

Dnsmasq 首先会查找 /etc/hosts 文件,如果没有查找到,会查询本地 DNS 缓存记录,如果还是未找到对应的记录,则会将请求装发到 /etc/resolv.conf 文件中定义的上游 DNS 服务器中,从而实现对域名的解析。

默认情况下,Dnsmasq 会从 /etc/dnsmasq.conf 读取配置项,我们也可以使用 -C 的启动参数来指定配置文件。下面介绍一下常用的 DNS 和 DHCP 服务的配置参数。

通用配置项

  1. # 服务运行的网卡,如果有多个话,可在再次添加一条记录
  2. interface=eth1
  3. interface=wlan0
  4. # 指定服务不在以下网卡上运行
  5. except-interface=eth0
  6. # 指定监听的 IP 地址,多个 IP 地址可用 `,` 分割(默认是监听所有网卡)
  7. listen-address=192.168.8.132
  8. # 开启日志选项,记录在 /var/log/debug 中
  9. log-queries
  10. # 指定日志文件的路径,路径必须存在,否则会导致服务启动失败
  11. log-facility=/var/log/dnsmasq.log
  12. # 异步log,缓解阻塞。
  13. log-async=20

DNS 服务配置参数

  1. # 指定 DNS 服务的端口(默认53),设置为 0 表示关闭 DNS 服务,只使用 DHCP 服务
  2. port=53
  3. # 指定一个 hosts 文件,默认是从 /etc/hosts 中获取
  4. addn-hosts=/etc/banner_add_hosts
  5. # 表示不使用 /etc/hosts 配置文件来解析域名
  6. no-hosts
  7. # 指定上游 DNS 服务列表的配置文件,默认是从 /etc/resolv.conf 中获取
  8. resolv-file=/etc/dnsmasq.d/upstream_dns.conf
  9. # 表示严格按照上游 DNS 服务列表一个一个查询,否则将请求发送到所有 DNS 服务器,使用响应最快的服务器的结果
  10. strict-order
  11. # 不使用上游 DNS 服务器的配置文件 /etc/resolv.conf 或者 resolv-file 选项
  12. no-resolv
  13. # 不允许 Dnsmasq 通过轮询 /e