dnsmasq使用配置

介绍

Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。作为域名解析服务器(DNS),dnsmasq可以通过缓存 DNS 请求来提高对访问过的网址的连接速度。作为DHCP 服务器,dnsmasq 可以用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能可以同时或分别单独实现。dnsmasq轻量且易配置,适用于个人用户或少于50台主机的网络。此外它还自带了一个 PXE 服务器。

使用dnsmasq 做为dns服务器,访问顺序:

  1. dnsmasq 服务器上的/etc/hosts文件
  2. dnsmasq 服务器上的/etc/resolv.conf
  3. dnsmasq 服务器上的/etc/dnsmasq.hosts
  4. dnsmasq 服务器上的/etc/resolv.dnsmasq.conf

配置

安装

1
2
3
4
5
6
7
# 安装
yum install -y dnsmasq
# 启动
systemctl start dnsmasq.service

# 下载dig和nslookup工具
yum install bind-utils

启用dnsmasq

步骤一

vim /etc/resolv.conf

设置dns指向本机,使接收到的dns请求转发到dnsmasq服务上

1
2
# Generated by NetworkManager
nameserver 127.0.0.1

步骤二

vim /etc/dnsmasq.conf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 定义dnsmasq从哪里获取上游DNS服务器的地址, 默认是从/etc/resolv.conf获取。
resolv-file=/etc/resolv.dnsmasq.conf

# 指定另外的hosts配置文件
addn-hosts=/etc/dnsmasq.hosts

# 表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。
strict-order

# 定义dnsmasq监听的地址,默认是监控本机的所有网卡上。局域网内主机若要使用dnsmasq服务时,指定本机的IP地址。
listen-address=192.168.153.128

# 启用泛域名解析,即自定义解析a记录,如下配置为demon.com这个域名:指向本机地址可以屏蔽广告或非法的DNS
address=/ad.youku.com/127.0.0.1
address=/ad.iqiyi.com/127.0.0.1

# 指定dnsmasq程序使用哪个DNS服务器进行解析。对于不同的网站可以使用不同的域名对应解析如下配置
# 国内指定DNS
server=/cn/114.114.114.114
server=/taobao.com/114.114.114.114
server=/taobaocdn.com/114.114.114.114
# 国外指定DNS
server=/google.com/223.5.5.5

# 为防止DNS污染,使用参数定义的DNS解析的服务器。注意:如果是阿里云服务器上配置dnsmasq要启用此项。
bogus-nxdomain=114.114.114.114

步骤三

1
systemctl start dnsmasq.service
  • 使用其它主机配置dns,地址为该dns服务器IP
  • 使用浏览器访问,测试配置效果

配置参数详解

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#监听的端口,dns默认53端口,如果设置为0,则完全禁止DNS功能
port=53
#监听地址,
listen-address=192.168.145.134

#正确的域名格式才转发
domain-needed

#设置本地域扩展,相当于域简写,如hosts配置 www 会自动加上www.zhutw.com
expand-hosts
local=/zhutw.com/

#配置上游的nameserver解析文件
#resolv-file=/etc/dnsmasq.resolv.conf
#当/etc/resolv.conf或resolv-file文件变化,不重新加载
no-poll
#不使用上游nameserver配置文件(/etc/resolv.conf和resolv-file)
no-resolv

#配置本地解析的hosts
addn-hosts=/etc/dnsmasq.hosts
#不使用/etc/hosts,开启后expand-hosts不生效
#no-hosts

#按配置顺序查询上级nameserver服务器
strict-order

#记录日志,如果打开日志,要及时清理
log-queries
log-facility=/var/log/dnsmasq.log
#启用异步日志记录,缓解阻塞,提高性能。默认队列长度为5,合理值为5-25,最大限制为100
log-async=20

#缓存地址数目,提高速
cache-size=10000
#自动加载目录配置
conf-dir=/etc/dnsmasq.d

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!