Dnsmasq安装与配置-搭建本地DNS服务器

 

一、Dnsmasq的作用
1、Dnsmasq作为本地DNS服务器安装方便,操作简单,改动的地方也不是很多,如果用国内的VPS来搭建本地DNS,响应的速度会更快,也更稳定。
2、Dnsmasq的功能强大,反DNS劫持、加快解析速度、屏蔽广告、控制内网DNS、强制域名跳转到特定IP上等这些功能在我们的实际的生活中都是很有用的。

二、Dnsmasq安装和配置
0、执行以下命令在VPS上安装Dnsmasq:
yum install dnsmasq -y
service dnsmasq start
1、Dnsmasq的配置文件是放在 /etc/dnsmasq.conf 中。
2、打开编辑,配置:resolv-file=/etc/resolv.dnsmasq.conf(可以是 /etc/resolv.conf的复制),表示dnsmasq 会从这个指定的文件中寻找上游dns服务器。同时取消 strict-order 前面的注册#号。
3、检查一下no-hosts前面是不是已经有了#号,默认的情况下是有的,dnsmasq 会首先寻找本地的 hosts 文件再去寻找缓存下来的域名, 最后去上游dns 服务器寻找。
4、设置:listen-address=127.0.0.1,表示这个 dnsmasq 本机自己使用有效。注意:如果你想让本机所在的局域网的其它电脑也能够使用上Dnsmasq,应该把本机的局域网IP加上去:listen-address=192.168.1.123,127.0.0.1
5、设置 addn-hosts=/etc/dnsmasq.hosts ,该文件复制于 /etc/hosts

三、相关配置
1、修改dhclient的配置:
vim /etc/dhcp/dhclient.conf
# 找到下面的内容,并进行修改
prepend domain-name-servers 127.0.0.1; # 把这一行前面的注释去掉

2、修改resolv.conf的配置:
vim /etc/resolv.conf

# 注意:我的resolv.conf文件的内容不会因为ADSL拨号而被改写
# 因为dnsmasq会接管本机的DNS解析请求,所以把127.0.0.1的地址放在最前面
# Nameserver 可以用谷歌、V2EX等公共的DNS。
nameserver 127.0.0.1
nameserver xxx.xxx.xxx.xxx
nameserver xxx.xxx.xxx.xxx
search lan

修改完毕后,把这个文件复制到 /etc/resolv.dnsmasq.conf

四、Dnsmasq启动
1、修改好 dnsmasq.conf 后,执行以下命令设置Dnsmasq开机启动并启动Dnsmasq服务:
chkconfig dnsmasq on
/etc/init.d/dnsmasq restart
执行命令:netstat -tunlp|grep 53 可以查看Dnsmasq是不是已经正常启动

2、看看DNS的解析需要的时间,前后2次的数据对比:
测试:dig www.freehao123.com,第一次是没有缓存,所以时间是200多。
第二次再次测试,因为已经有了缓存,所以查询时间已经变成了0.

 

五、Dnsmasq使用
1、本地DNS。将Dnsmasq作为本地DNS服务器使用,直接修改电脑的本地DNS的IP地址即可。
2、应对ISP的DNS劫持。输入一个不存在的域名,正常的情况下浏览器是显示无法连接,DNS劫持会跳转到一个广告页面。先随便nslookup 一个不存在的域名,看看ISP商劫持的IP地址。
3、接着编辑/etc/dnsmasq.conf文件,将:bogus-nxdomain=123.123.123.123 加入进去,后面的IP是刚刚查询到的DNS劫持IP地址。
4、重启dnsmasq,再尝试打开不存在的域名,这时浏览器就会显示正常的无法连接页面了。
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劫持”。

 

清除Ubuntu的DNS缓存

DNS缓存可以加快网站IP的解析速度,所以大多数系统都支持DNS缓存。DNS的缓存时间是24小时,也就是每隔24小时DNS缓存将被自动清除。如果某些网站更新了DNS信息,而本机又没到自动清除的时间,这时,我们就要手动清除DNS缓存,最简单的方法如下。

在终端中运行如下命令,以清除DNS缓存:

$sudo /etc/init.d/dns-clean start

文章出自:免费资源部落 http://www.freehao123.com/

原文链接:,转发请注明来源!

发表评论