搭建DNS服务器

共享资源 5aimiku 636次浏览 3个评论

默认的情况下,我们平时上网用的本地DNS服务器都是使用电信或者联通的,但是这样也导致了不少的问题,首当其冲的就是上网时经常莫名地弹出广告。其次是部分网站域名不能正常被解析,莫名其妙地打不开,或者时好时坏(google啊,fb啊,我也躺枪了)。之前分享过一些全球公共DNS,但是很多人对自建DNS也很感兴趣,没事干也看了一下相关的资料,整理下。

安装dnsmasq:

yum install dnsmasq -y (centos)
service dnsmasq start 

编辑dnsmasq:

路径:/etc/dnsmasq.conf用winscp之类的玩意把这个下载下来,推荐使用notepad+ 编辑这类的代码,少用记事本这玩意,小心编辑完保存后整个文件都变了。

  1. 在20-40行之间找这么一行:resolv-file=,把它改成resolv-file=/etc/resolv.dnsmasq.conf同时找到另一行#strict-order,把前面注释的#去掉。
  2. 在100-120行左右找到#no-hosts,看一下#是否存在。如果不存在,手动加上。
  3. 在80-100之间找listen-address=,改成listen-address=127.0.0.1
  4. 上传替换源文件(用notepad的记得保存下,直接叉掉是不会有提示而且不会做更改的)

修改/etc/resolv.conf:

echo 'nameserver 127.0.0.1' > /etc/resolv.conf
cp /etc/resolv.conf /etc/resolv.dnsmasq.conf
echo 'nameserver 8.8.8.8' > /etc/resolv.dnsmasq.conf
echo 'nameserver 199.91.73.222' > /etc/resolv.dnsmasq.conf
cp /etc/hosts /etc/dnsmasq.hosts
echo 'addn-hosts=/etc/dnsmasq.hosts' >> /etc/dnsmasq.conf

nameserver后的ip是真正的Nameserver,可以使用一些知名的公共DNS

启动服务:/etc/init.d/dnsmasq restart

执行命令:netstat -tunlp|grep 53 可以查看Dnsmasq是不是已经正常启动

进阶用法:

智能分配DNS

打开/etc/dnsmasq.conf文件,server=后面可以添加指定的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

server=/cn/表示所有的cn域名都使用114这个公共DNS,server=/taobao.com/表示所有的taobao.com域名都用114,223.5.5.5 是阿里云的公共DNS,你可以换成其它的。

屏蔽网页广告:

将广告的URL指定本地回环IP,就可以将网页上讨厌的广告给去掉了。

address=/ad.youku.com/127.0.0.1
address=/ad.iqiyi.com/127.0.0.1

劫持:

水能载舟,亦可赛艇,平时那些讨厌的DNS可以做的事情我们当然也可以做到,这个方法的本质其实和屏蔽广告是一样的,上面是把广告劫持到本地嘛

address=/freehao123.com/123.123.123.123

本文版权:霜之哀伤 转载请注明搭建DNS服务器
喜欢 (1)or分享 (0)
5aimiku
关于作者:
一条自以为上了大学就脱离苦海的咸鱼,业余喜欢打游戏,平时喜欢折腾各种东西,喜欢ACG,喜欢宅。
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(3)个小伙伴在吐槽
  1. 厉害了 我的伤
    2016-10-17 17:03 回复
  2. 好文章!顺便过来宣传一下我的文章,里面有我整理的DNSmasq屏蔽广告的配置文件http://5aimiku.com/archives/293.html
    杨博, 卫2016-07-31 11:54 回复