分享

搭建本地DNS教程

 金刚光 2019-08-12

相信大家把现在的阿里DNS/114DNS/谷歌DNS都用烦了,今天,我就教教大家如何搭建一个自己的DNS服务器

DNS服务简介

1.DNS(Domain Name System)域名系统

在Internet中使用IP地址来确定计算机的地址,这种以数字表示的IP地址不容易记忆。为了便于对网络地址的管理和分配,人们采用了域名系统,引入了域名的概念。通过为每台主机建立IP地址与域名之间的映射关系,用户可以避开难记的IP地址,而使用域名来唯一标识网络中的计算机。域名和IP地址之间的关系,就像是某人的姓名和身份证号码之间的关系,显然,记住名字比记住身份证号码容易的多。

2.主机名和域名的区别:

主机名是内网的名字;域名是外网的名字。

主机名和域名其实是两个完全可以不同的名字,但是有很多软件(如邮件系统postfix)会默认认为它们一致。

在DNS中,域名包括根域、顶级域、二级域和主机名。

全世界共有13台DNS根域服务器。

顶级域:由Internet名称授权机构管理,有两种常见的类型。如下:

组织域:

.com(商业) 、 .org (组织) 、 .edu(教育) 、 .gov (政府) 、 .net(通讯) 、 .mil(军事) 、 .info(信息)

国家或地区顶级域:

Cn(中国) 、 hk(中国香港) 、 uk(英国) 等

FQDN=主机名.DNS后缀(FQDN,Fully Qualified Domain Name,完全合格的域名/全称域名)

3.域名解析过程

从查询方式分类

递归查询:客户端得到结果只能是成功或失败

迭代查询:DNS服务器如有客户机请求数据则返回正确地址

DNS服务器没有请求数据则返回一个指针

从查询内容分类

正向解析:根据主机名称(域名)查找对应的 IP 地址反向解析:根据 IP 地址查找对应的主机域名

一、服务器环境

必须为centos6.x的 环境 centos7.x不能按照本教程 centos5.x未测试

二、安装并启动DNSMASQ

yum install -y dnsmasqservice dnsmasq start

三、dnsmasq配置

1、Dnsmasq的配置文件路径为:/etc/dnsmasq.conf

# ll -d /etc/dnsmasq.conf -rw-r--r-- 1 root root 21237 Feb 23 00:17 /etc/dnsmasq.conf

2、编辑/etc/dnsmasq.conf

resolv-file=/etc/resolv.dnsmasq.conf //dnsmasq 会从这个文件中寻找上游dns服务器strict-order //去掉前面的#addn-hosts=/etc/dnsmasq.hosts //在这个目里面添加记录listen-address=127.0.0.1,192.168.1.123//监听地址 如果想对所有计算机服务,则为0.0.0.0

3、修改/etc/resolv.conf

echo 'nameserver 127.0.0.1' > /etc/resolv.conf

4、创建resolv.dnsmasq.conf文件并添加上游dns服务器的地址

touch /etc/resolv.dnsmasq.confecho 'nameserver 119.29.29.29' > /etc/resolv.dnsmasq.conf

5、创建dnsmasq.hosts文件

cp /etc/hosts /etc/dnsmasq.hostsecho 'addn-hosts=/etc/dnsmasq.hosts' >> /etc/dnsmasq.conf

提示:resolv.dnsmasq.conf中设置的是真正的Nameserver,可以用电信、联通等公共的DNS。

三、DNSmasq启动

1、设置Dnsmasq开机启动并启动Dnsmasq服务:

chkconfig dnsmasq on/etc/init.d/dnsmasq restart

2、netstat -tunlp|grep 53 查看Dnsmasq是否正常启动:

# netstat -tlunp|grep 53tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 2491/dnsmasq tcp 0 0 :::53 :::* LISTEN 2491/dnsmasq udp 0 0 0.0.0.0:53 0.0.0.0:* 2491/dnsmasq udp 0 0 :::53 :::* 2491/dnsmasq

3、dig smallxu.me,第一次是没有缓存,所以时间是400多

4、第二次再次测试,因为已经有了缓存,所以查询时间已经变成了2.

为了防止故意进行DNS劫持,这里不贴出

四、DNSMASQ的配置

1、本地DNS使用

这里我们本地DNS可以使用服务器中配置的IP,这样我们本机就使用到自己的DNS,备用DNS可以用一个第三方公用DNS。

2、屏蔽网站/广告

vi /etc/dnsmasq.conf

如果我们需要屏蔽某个网站或者广告,可以修改上面的文件

address=/itbulu.com/127.0.0.1address=/smallxu.me/127.0.0.1

比如我希望无法打开这两个网站,就在配置文件中添加指定的IP或者其他劫持的IP,比如我们打开某个网站被指定到其他的服务器或者网站中,就这样被劫持的。同样的,我们也可以将广告目录屏蔽。

添加后 smallxu.me和itbulu.com将会被解析到127.0.0.1

第五、Dnsmasq配置和使用总结

Dnsmasq实际功能不仅仅局限在上面的搭建我们本地需要的DNS服务器功能,如果真就这么简单的用法,那我们也没有必要用一台服务器配置。使用点第三方公共DNS还是没有问题的,有点广告也无妨。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多