2017年4月17日星期一

dnsmasq配置dns解析

建议使用dnsmasq
dnsmasq配置
# 不加载本地的 /etc/hosts 文件
#no-hosts
# 指定 resolv-file 文件路径,默认/etc/resolv.conf
#resolv-file=/etc/resolv.conf
# 不读取 resolv-file 来确定上游服务器
#no-resolv
# 不缓存未知域名缓存,默认情况下dnsmasq缓存未知域名并直接返回为客户端。
no-negcache
# 重启后清空缓存
clear-on-reload
# 默认为150,即最多分配150个ip地址出去,最大1000个ip
#dhcp-lease-max=150
# 指定IP地址,可以多次指定,路由器不可开启!!!!!!!!!!!!!!!!!!!。
listen-address=127.0.0.1
#缓存大小
cache-size=80000
# 本地 hosts 文件的缓存时间,通常不要求缓存本地,这样更改hosts文件后就即时生效。
local-ttl=36000
#dns服务器
server=8.8.8.8
server=8.8.4.4
# Include all files in a directory which end in .conf
conf-dir=/etc/dnsmasq.d
# 添加读取额外的 hosts 文件路径,可以多次指定。如果指定为目录,则读取目录中的所有文件。
addn-hosts=/etc/dnsmasq.hosts.d




5、智能DNS加快解析速度。打开/etc/dnsmasq.conf文件,server=后面可以添加指定的DNS,例如国内外不同的网站使用不同的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
6、server=/cn/表示所有的cn域名都使用114这个公共DNS,server=/taobao.com/表示所有的taobao.com域名都用114,223.5.5.5 是阿里云的公共DNS,你可以换成其它的。
7、屏蔽网页广告。将指广告的URL指定127这个IP,就可以将网页上讨厌的广告给去掉了。

address=/ad.youku.com/127.0.0.1
address=/ad.iqiyi.com/127.0.0.1
8、指定域名解析到特定的IP上。这个功能可以让你控制一些网站的访问,非法的DNS就经常把一些正规的网站解析到不正确IP上。

address=/freehao123.com/123.123.123.123
9、内网DNS。首先将局域网中的所有的设备的本地DNS设置为已经安装Dnsmasq的服务器IP地址。然后修改已经安装Dnsmasq的服务器Hosts文件:/etc/hosts,指定域名到特定的IP中。
10、例如想让局域网中的所有用户访问www.freehao123.com时跳转到192.168.0.2,添加:192.168.0.2 www.freehao123.com在Hosts文件中既可,整个过程也可以说是“DNS劫持”。

------------------------------------------------


2. 安装 dnsmasq

  1. 用 Homebrew 安装 dnsmasq
$ brew install dnsmasq
  1. 配置 dnsmasq
$ cp /usr/local/opt/dnsmasq/dnsmasq.conf.example /usr/local/etc/dnsmasq.conf
我的 dnsmasq 配置如下

listen-address=127.0.0.1
no-hosts
no-dhcp-interface=
cache-size=32768
server=127.0.0.1#1053
# Include all files in a directory which end in .conf
conf-dir=/usr/local/etc/dnsmasq.d


mkdir /usr/local/etc/dnsmasq.d
//创建配置目录
 
 wget -4 --no-check-certificate -O /usr/local/etc/dnsmasq.d/accelerated-domains.china.conf https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf
//为国内常用网站取消DNS加密


基于域名的泛解析配置放置在 /usr/local/etc/dnsmasq.d 中
  1. 设置 dnsmasq 自启动
复制启动配置到 /Library/LaunchDaemons
$ sudo cp -fv /usr/local/opt/dnsmasq/*.plist /Library/LaunchDaemons
设置文件权限
$ sudo chown root /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist
启动 pdnsd 服务
$ sudo launchctl load /Library/LaunchDaemons/homebrew.mxcl.dnsmasq.plist

3. 配置系统 DNS

把Mac系统的DNS改为127.0.0.1。

#. dnsmasq 泛解析

DNSMASQ的泛解析规则如下
address=/baidu.com/1.1.1.1
这意味着,*.baidu.com/* 都将被引导至IP为1.1.1.1的 DNS 解析。

#. 用于国内的加速列表配置

在 GitHub 上找到了用于国内域名和 CDN 的加速配置,地址如下 dnsmasq-china-list

没有评论:

发表评论