Dnsmasq 介绍与使用

Dnsmasq的主要作用

(1)将Dnsmasq作为本地DNS服务器使用

Dnsmasq 会缓存上游 DNS 服务的查询记录,从而可以提高访问过的网址的连接速度。

(2)应对ISP的DNS劫持(反DNS劫持),输入一个不存在的域名,正常的情况下浏览器是显示无法连接,DNS劫持会跳转到一个广告页面。先随便nslookup 一个不存在的域名,看看ISP商劫持的IP地址。

(3)智能DNS加快解析速度,打开/etc/dnsmasq.conf文件,server=后面可以添加指定的DNS,例如国内外不同的网站使用不同的DNS。

默认情况下,Dnsmasq 会从 /etc/dnsmasq.conf 读取配置项,我们也可以使用 -C 的启动参数来指定配置文件。

通用配置

# 服务运行的网卡,如果有多个话,可在再次添加一条记录
interface=eth1
interface=wlan0
# 指定服务不在以下网卡上运行
except-interface=eth0
# 指定监听的 IP 地址,多个 IP 地址可用 `,` 分割(默认是监听所有网卡)
listen-address=192.168.8.132
# 开启日志选项,记录在 /var/log/debug 中
log-queries
  
# 指定日志文件的路径,路径必须存在,否则会导致服务启动失败
log-facility=/var/log/dnsmasq.log
 
# 异步log,缓解阻塞。
log-async=20
DNS 服务配置参数
# 指定 DNS 服务的端口(默认53),设置为 0 表示关闭 DNS 服务,只使用 DHCP 服务
port=53
# 指定一个 hosts 文件,默认是从 /etc/hosts 中获取
addn-hosts=/etc/banner_add_hosts
# 表示不使用 /etc/hosts 配置文件来解析域名
no-hosts
# 指定上游 DNS 服务列表的配置文件,默认是从  /etc/resolv.conf 中获取
resolv-file=/etc/dnsmasq.d/upstream_dns.conf
# 表示严格按照上游 DNS 服务列表一个一个查询,否则将请求发送到所有 DNS 服务器,使用响应最快的服务器的结果
strict-order
# 不使用上游 DNS 服务器的配置文件 /etc/resolv.conf 或者 resolv-file 选项
no-resolv
# 不允许 Dnsmasq 通过轮询 /etc/resolv.conf 或者其他文件来动态更新上游 DNS 服务列表
no-poll
# 表示对所有 server 发起查询请求,选择响应最快的服务器的结果
all-servers
# 指定 dnsmasq 默认查询的上游服务器
server=8.8.8.8
server=114.114.114.114
# 指定 .cn 的域名全部通过 114.114.114.114 这台国内DNS服务器来解析
server=/cn/114.114.114.114
# 给 *.apple.com 和 taobao.com 使用专用的 DNS
server=/taobao.com/223.5.5.5
server=/.apple.com/223.6.6.6
# 增加一个域名,强制解析到所指定的地址上,dns 欺骗
address=/taobao.com/127.0.0.1
# 设置DNS缓存大小(单位:DNS解析条数)
cache-size=500
分享你的喜爱