linux使用dnsmasq搭建DNS服务器

介绍:什么是DNS服务器就不说了,至于搭建dns服务器,在linux上有很多的服务可以搭建的,比如:bind、dnsmasq、unbound....等;

直接上干货:

搭建环境:redhat7.0,yum源挂载的是redhat7.0的光盘;

一、Dnsmasq安装
?? ?yum install dnsmasq -y

二、Dnsmasq配置

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

2、编辑/etc/dnsmasq.conf

找到下列参数修改或添加:

?? ?resolv-file=/etc/resolv.dnsmasq.conf ??? ??? ? //会从这个文件中寻找上游dns服务器
?? ?strict-order ? ? ? ? ? ? ?? ??? ??? ??? ??? ? //去掉前面的#
?? ?addn-hosts=/etc/dnsmasq.hosts ? ? ? ? ? ? ? ?//在这个目录里面ip和域名dnsmasq?
?? ?listen-address=127.0.0.1,172.22.10.50?? ???//监听地址

3、修改/etc/resolv.conf

? ? ? ? /etc/resolv.conf 定义了本机的dns地址(在本身不是dns服务器之前),将该文件内容注释并添加??nameserver 127.0.0.1? ,使用本机作为dns服务器;

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

? ? ? ? 默认没有??/etc/resolv.dnsmasq.conf ,需要按照dnsmasq配置文件中参数定义的路径创建;

? ? ? ? touch /etc/resolv.dnsmasq.conf

? ? ? ? echo ‘nameserver 114.114.114.114‘ > /etc/resolv.dnsmasq.conf? ? ? ?

? ? ? ? * 以 114.114.114.114 为上游的dns服务器;

? ? ? ? resolv.dnsmasq.conf 中设置的是真正的nameserver,可以用电信、联通等公共的DNS

5、创建 /etc/dnsmasq.hosts 文件

? ? ? ? ? ?touch /etc/dnsmasq.hosts

? ? ? ? ? ?vim 编辑 /etc/dnsmasq.hosts 文件,添加ip对应的域名,例如:

? ? ? ? ? ? ? ? ? ? ? ? ?192.168.111.111? ? ? ?xpt.redhat.cn

? ? ? ? ? ? 这样,当客户端要求解析 xpt.redhat.cn 时,会解析为192.168.111.111 ;

三、Dnsmasq启动

1、设置Dnsmasq开机启动并启动Dnsmasq服务:
? ? systemctl start dnsmasq.service
?? ?systemctl enable dnsmasq.service

2、netstat -tunlp | grep 53 查看Dnsmasq是否正常启动:
?? ?# netstat -tlunp|grep 53
?? ?tcp ? ? ? ?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 ? ? ? ? ? ? ? ? ? ? ? :::
? ? ? ?

如果有防火墙的话还需要打开防火墙:

?firewall-cmd --add-service=dns? ? ? ? //允许防火墙临时放行dns服务;

firewall-cmd --add-service=dns --permanent? ? ? ? //允许dns通过,永久生效;

#####? 到此处,一个简单的dns服务器就搭建成功了,主要是理解配置文件中参数定义的文件路径都是什么作用;

可以使用 自己的windows电脑做测试,将自己windows的dns修改成搭建dns服务器的ip;

运行cmd,使用host 或者nslookup命令都可以:

? ? ? ? ? ? ? hsot???xpt.redhat.cn

? ? ? ? ? ? ? nslookup???xpt.redhat.cn

工作流程:

? ? ? ? ? windows向dns服务器发送请求解析?xpt.redhat.cn ,dns服务器接收到之后先去?/etc/dnsmasq.hosts 文件中寻找有误匹配的ip、域名,如果有则返回域名对应的ip,如果没有则向?/etc/resolv.dnsmasq.conf 中定义的上级dns服务器发送请求解析;

下面是对dns服务器配置进一步的深入:

1.对参数的解释:
?? ?resolv-file?? ??? ??? ?定义dnsmasq从哪里获取上游DNS服务器的地址, 默认是从/etc/resolv.conf获取。
?? ?strict-order?? ??? ?表示严格按照resolv-file文件中的顺序从上到下进行DNS解析,直到第一个解析成功为止。
?? ?listen-address?? ??? ?定义dnsmasq监听的地址,默认是监控本机的所有网卡上。
?? ??? ??? ??? ??? ??? ??? ?局域网内主机若要使用dnsmasq服务时,指定本机的IP地址。
?? ?address?? ??? ??? ??? ?启用泛域名解析,即自定义解析a记录,如下配置为demon.com这个域名:
?? ??? ??? ??? ??? ??? ??? ?address=/demon.com/127.0.0.1 ?#访问demon.com时的所有域名都会被解析成127.0.0.1
?? ?server?? ??? ??? ??? ?指定dnsmasq程序使用哪个DNS服务器进行解析。对于不同的网站可以使用不同的域名对应解析如下配置
?? ??? ??? ??? ??? ??? ??? ?server=/google.com/8.8.8.8 ? ?#表示对于google的服务,使用谷歌的DNS解析。
?? ?bogus-nxdomain?? ??? ?为防止DNS污染,使用参数定义的DNS解析的服务器。注意:如果是阿里云服务器上配置dnsmasq要启用此项。

############## dns服务器的优化 ################

一、应对ISP的DNS劫持
1.输入一个不存在的域名,正常的情况下浏览器是显示无法连接,DNS劫持会跳转到一个广告页面。
?? ?先随便 nslookup 一个不存在的域名,看看ISP商劫持的IP地址。?? ??? ?
2.接着编辑/etc/dnsmasq.conf文件,将:bogus-nxdomain=123.123.123.123 加入进去,
?? ?后面的IP是刚刚查询到的DNS劫持IP地址;
3.重启dnsmasq,再尝试打开不存在的域名,这时浏览器就会显示正常的无法连接页面了。

二、智能DNS加快解析速度。
?? ?打开/etc/dnsmasq.conf文件,server=后面可以添加指定的DNS,例如国内外不同的网站使用不同的DNS。
?? ??? ?#国内指定DNS
?? ??? ?server=/cn/114.114.114.114
?? ??? ?server=/taobao.com/223.5.5.5
?? ??? ?server=/taobaocdn.com/114.114.114.114
?? ??? ?#国外指定DNS
?? ??? ?server=/google.com/8.8.8.8
?? ??? ?server=/cn/表示所有的cn域名都使用114这个公共DNS,
?? ??? ?
三、屏蔽网页广告。
?? ?将指广告的URL指定127这个IP,就可以将网页上讨厌的广告给去掉了。
?? ?address=/ad.youku.com/127.0.0.1
?? ?address=/ad.iqiyi.com/127.0.0.1?? ?

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

五、内网DNS。
?? ?首先将局域网中的所有的设备的本地DNS设置为已经安装Dnsmasq的服务器IP地址。
?? ?然后修改已经安装Dnsmasq的服务器Hosts文件:/etc/hosts,指定域名到特定的IP中。

原文地址:http://blog.51cto.com/13577495/2293863

时间: 2024-08-17 10:15:44

linux使用dnsmasq搭建DNS服务器的相关文章

Linux下快速搭建DNS服务器

一.术语解释:TTL Time To Live 缓冲保留时间ORIGIN 属于哪个域@ 代指域IN 开头需要空格SOA 一行记录类型的开始参数:forwarders {} 指向自己无法解析的域名跳转到外部dns服务测试方法:host 域名(host IP) 使用nslookup方法测试 使用dig @ns ip或域名测试邮件服务 dig 域名 mxmx 邮件交换记录 IN MX 10 域名------------------------------------------------------

CentOS6.6下bind搭建DNS服务器

我们通过浏览器访问互联网需要输入网址,而这个网址是我们比较容易记忆的,互联网上的服务器却并不能识别这一串有意义的地址,互联网之间的通信是靠ip地址来实现的,ip地址是数字组成的,对于我们日常访问都需要输入一串数字,这是一件很痛苦的事情,所以才有了上面说的有意义的网址,那么网址是如何转换成IP地址的呢?这就是DNS服务器的作用了. DNS全称是Domain Name System域名系统,那么域名又是什么呢?域名就是我们容易记忆的的一串字符,如果想拥有自己的域名则需要向域名代理商进行注册,代理商会

Linux下搭建DNS服务器

一.修改Linux主机名 1.hostname 主机名 [[email protected] named]# hostname ifs.com 2.vi /etc/hosts [[email protected] named]# vi /etc/hosts 127.0.0.1 ns.ifs.com ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6 ~ 3.vim /etc/sysconfi

Linux搭建DNS服务器

DNS相关概念 DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串.通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析).DNS协议运行在UDP协议之上,使用端口号53. 作用:解析域名 区域:正向区域.反向区域 记录: A记录 MX记录:搭建邮件服务器 PTR记录:反向记录,出现在反向区域中 CNAME记录:别名记录 NS记录:DNS授权服

详解Linux 6&7上搭建DNS服务器

整个hteret大家庭中连接了数以亿计的服务器个人主机,其中大部分的网站,部件等服务器都使用了域名形式的地址,如www.google.com.mail 163.com 等.很显然这种地址形式要比使月01231317202103 7A 的户地址形式更加直观而且更容易被用户记住. DNS系统在网络中的 作用处是维护着一个地址数现连,其中记录了各种主机城名与户地址的技关系上内便光安户租序现供正向的地址解析服务正向解析根据域名查IP 地址即将指定的域名解析为相对应的P地址,域名的正向解 析是DNS服务器

Linux Red hat 5 DNS服务器搭建(一)域名缓存服务器

Linux Red hat 5 DNS服务器多实验详细搭建 所需软件包: ? bind-9.3.3-7.el5.i386.rpm ? 提供主要程序及相关文件 ? bind-utils-9.3.3-7.el5.i386.rpm ? 提供对dns服务器的测试工具(如nslookup.dig等) ? bind-chroot-9.3.3-7.el5.i386.rpm ? 提供一个伪装的根目录以增强其安全性(var/named/chroot/) ? caching-nameserver-9.3.3-7.e

Linux DNS (2)搭建DNS服务器

注意:实验很简单,环境很重要.大家在做实验的时候一定要注意环境的配置,不然实验做的再好最后的结果也和我们想的要的结果不一样的. 首先我们先准备环境: 虚拟机一个 RedHat5.9系统两个操作系统 我们把他们的网路连接在同一个"VMnet"里 配置IP地址,都配置在一个网段的IP. 注释: DNS有几点要注意的 DNS可以一个域名对应很多IP DNS可以一个IP对应很多域名 注意:首先要关闭防火墙和selinux [[email protected] ~]#  /etc/init.d/

Linux下搭建DNS 服务器

CentOS6.6下DNS服务器的搭建 Linux下的DNS的软件包为bind,有如下几个软件包: bind           #DNS服务的主程序 bind-utils # 工具,包含dig,nslookup等网络诊断工具. bind-chroot      # 修改named 的root目录,这样named被入侵后,黑客也被限制在指定的目录下,不能切换到/,避免造成更大的破坏.[下面的演示中,为了简单起见就没安装该组件] # 安装bind软件包 yuminstall bind bind-u

LINUX中搭建DNS服务器,实现正向、反向以及访问不同DNS解析

实现目标: 搭建DNS服务器 1)新浪服务器(dns.sina.com) dns.sina.com -->192.168.4.5 www.sina.com-->1.2.3.40 news.sina.com-->1.2.3.45 2)搜狐服务器(dns.sohu.net) dns.sohu.com-->192.168.4.6 movie.sohu.net-->5.6.7.80 study.sohu.net-->5.6.7.85 客户机测试: 向192.168.4.5能查询