经常使用于测试使用,安装环境为MacOSphp
1、Dnsmasq介绍html
Dnsmasq 提供 DNS 缓存和 DHCP 服务功能。做为域名解析服务器(DNS),dnsmasq能够经过缓存 DNS 请求来提升对访问过的网址的链接速度。做为DHCP 服务器,dnsmasq 能够用于为局域网电脑分配内网ip地址和提供路由。DNS和DHCP两个功能能够同时或分别单独实现。dnsmasq轻量且易配置,适用于我的用户或少于50台主机的网络。此外它还自带了一个 PXE 服务器。linux
2、Dnsmasq的主要做用浏览器
1)将Dnsmasq做为本地DNS服务器使用,直接修改电脑的本地DNS的IP地址便可。缓存
2)应对ISP的DNS劫持(反DNS劫持),输入一个不存在的域名,正常的状况下浏览器是显示没法链接,DNS劫持会跳转到一个广告页面。先随便nslookup 一个不存在的域名,看看ISP商劫持的IP地址。服务器
3)智能DNS加快解析速度,打开/etc/dnsmasq.conf文件,server=后面能够添加指定的DNS,例如国内外不一样的网站使用不一样的DNS。网络
国内指定DNSdom
server=/cn/114.114.114.114 server=/taobao.com/114.114.114.114 server=/taobaocdn.com/114.114.114.114
国外指定DNS测试
server=/google.com/8.8.8.8
3、dnsmasq解析流程网站
dnsmasq先去解析hosts文件, 再去解析/etc/dnsmasq.d/下的*.conf文件,而且这些文件的优先级要高于dnsmasq.conf,咱们自定义的resolv.dnsmasq.conf中的DNS也被称为上游DNS,这是最后去查询解析的;
若是不想用hosts文件作解析,咱们能够在/etc/dnsmasq.conf中加入no-hosts这条语句,这样的话就直接查询上游DNS了,若是咱们不想作上游查询,就是不想作正常的解析,咱们能够加入no-reslov这条语句。
4、dnsmasq配置参数及说明
1)dnsmasq常常修改的比较重要参数说明
具体参数 |
参数说明 |
---|---|
resolv-file |
定义dnsmasq从哪里获取上游DNS服务器的地址, 默认从/etc/resolv.conf获取。 |
strict-order |
表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。 |
listen-address |
定义dnsmasq监听的地址,默认是监控本机的全部网卡上。 |
address |
启用泛域名解析,即自定义解析a记录,例如:address=/long.com/192.168.115.10 访问long.com时的全部域名都会被解析成192.168.115.10 |
bogus-nxdomain |
对于任何被解析到此 IP 的域名,将响应 NXDOMAIN 使其解析失效,能够屡次指定 一般用于对于访问不存在的域名,禁止其跳转到运营商的广告站点 |
server |
指定使用哪一个DNS服务器进行解析,对于不一样的网站可使用不一样的域名对应解析。 例如:server=/google.com/8.8.8.8 #表示对于google的服务,使用谷歌的DNS解析。 |
2)查看配置文件语法是否正确,可执行下列命令
dnsmasq -test 显示: dnsmasq: syntax check OK.
3)DNS 缓存设置
要在单台电脑上以守护进程方式启动dnsmasq作DNS缓存服务器,编辑/etc/dnsmasq.conf,添加监听地址:
listen-address=127.0.0.1
若是用此主机为局域网提供默认 DNS,请用为该主机绑定固定 IP 地址,设置:
listen-address=192.168.x.x
这种状况建议配置静态IP
多个ip地址设置:
listen-address=127.0.0.1,192.168.x.x
4)启动守护进程
设置为开机启动:
systemctl enable dnsmasq
当即启动 dnsmashq:
systemctl start dnsnsmasq
须要重启网络服务以使 DHCP 客户端重建一个新的 /etc/resolv.conf
查看dnsmasq是否启动正常,查看系统日志:
journalctl -u d