专栏首页电光石火Linux安装DNSmasq搭建自己的公共DNS

Linux安装DNSmasq搭建自己的公共DNS

DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。自己搭建公共DNS更加灵活,如果是在本地搭建,还可以大幅提高解析速度。

安装DNSmasq

可以下载软件包编译安装,不过一般Linux软件仓库已经提供了DNSmasq,相关命令如下:

#centos安装
yum -y install dnsmasq
#如果是ubuntu系统
apt-get -y install dnsmasq

配置DNSmasq

DNSmasq配置文件再/etc/dnsmasq.conf,我们需要修改几个参数,分别为:

  • resolv-file=/etc/resolv.dnsmasq.conf 这个参数表示 dnsmasq 会从这个指定的文件中寻找上游 dns 服务器
  • 取消注释的 strict-order ,表示严格按照 resolv-file 文件中的顺序从上到下进行 DNS 解析, 直到第一个成功解析成功为止
  • 注释掉 no-hosts, 默认情况下这是注释掉的, dnsmasq 会首先寻找本地的 hosts 文件再去寻找缓存下来的域名, 最后去上游 dns 服务器寻找.
  • 设置 listen-address=0.0.0.0, 0.0.0.0改成服务器公网IP

我们来整理下上面我们修改了那些配置内容

#需要新建一个resolv.dnsmasq.conf文件,这个是配置上游DNS,也就是真正的公共DNS
vi /etc/resolv.dnsmasq.conf
#内容如下
nameserver 119.29.29.29
nameserver 1.2.4.8
#修改/etc/dnsmasq.conf
#上游DNS路径
resolv-file=/etc/resolv.dnsmasq.conf
#取消strict-order注释
strict-order
#监听地址0.0.0.0对所有网络有效
listen-address=0.0.0.0

使用方法

DNSmasq可以设置不同的域名指定不同的DNS进行解析,修改/etc/dnsmasq.conf文件即可,若不对域名设置DNS,则从上游DNS获取记录。

#指定淘宝使用114 DNS进行解析
server=/taobao.com/114.114.114.114
#google指定8.8.8.8进行解析
server=/google.com/8.8.8.8

也可以对指定的域名进行解析,相当于就是本地hosts指向,可以利用这个功能实现广告屏蔽等效果。也是需要修改/etc/dnsmasq.conf文件,DNSmasq也可以对域名进行泛解析,填写*.xiaoz.me,这样的格式即可。

#将广告域名指向到127.0.0.1实现广告屏蔽
address=/ad.youku.com/127.0.0.1
address=/ad.iqiyi.com/127.0.0.1
#对xiaoz.me进行泛解析
address=/*.xiaoz.me/192.168.20.138

启动与测试

#启动
/etc/init.d/dnsmasq start
#停止
/etc/init.d/dnsmasq stop
#重新启动
/etc/init.d/dnsmasq restart

防火墙开启53端口

#编辑防火墙规则
vi /etc/sysconfig/iptables
#增加以下两条规则
-A INPUT -p udp -m state --state NEW --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT
#重新加载防火墙让上面的规则生效
service iptables restart

用dig命令检查域名解析

dig www.ilkhome.cn

附上我本机的配置文件内容:

/etc/resolv.conf内容如下

nameserver 127.0.0.1 

/etc/resolv.dnsmasq.conf内容如下

nameserver 114.114.114.114 
nameserver 8.8.8.8 

/etc/dnsmasq.conf内容如下

listen-address=10.80.108.121,127.0.0.1 
resolv-file=/etc/resolv.dnsmasq.conf 
addn-hosts=/etc/dnsmasq.hosts 

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux安装DNSmasq搭建自己的公共DNS

    DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。自己搭建公共DNS更加灵活,如果是在本...

    似水的流年
  • centos 6.5查看和设置时区及时间同步校准

    使用date命令查看时区 [root@ltt1 ~]# date -R Thu, 28 Sep 2017 00:31:54 +0800 我们国家的东八区(+08...

    似水的流年
  • ActiveMQ安装部署

    JMS(Java Messaging Service)是Java平台上有关面向消息中间件的技术规范,它便于消息系统中的Java应用程序进行消息交换,并且通过提供...

    似水的流年
  • Linux安装DNSmasq搭建自己的公共DNS

    DNSmasq是一个小巧且方便地用于配置DNS和DHCP的工具,适用于小型网络,它提供了DNS功能和可选择的DHCP功能。自己搭建公共DNS更加灵活,如果是在本...

    似水的流年
  • DNSmasq的使用(一)

    DNSmasq是一个用于配置DNS和DHCP的轻便工具,适合小型网络,利用得当可以防污染,防劫持,消除广告,还可以搭配其他软件实现更多功能

    Huramkin
  • Linux中的DNS客户端配置

    最近在搞MGR+Consul的MySQL高可用,在使用Consul域名服务的时候,会用到Linux操作系统中的DNS客户端配置,这块儿的知识之前只是在用...

    AsiaYe
  • 本地dns的更新:dnsmasq的使用 原

    最近各种ad服务挂掉的情况连连出现,一个域名解析需要花上3秒钟,业务上黄花菜都凉了,有的/etc/resolv.conf里面就配置一个nameserver,一点...

    domain0
  • 高阶函数

    其实高阶函数是函数式编程里面的一些概念,更深入的讲其实是来源于数学里面的一些概念,这里用Python来说明一些常见的概念,如果感兴趣可以学习别的函数式编程的语言...

    云深无际
  • 在大数据的世界中蓬勃发展

    大数据文摘
  • 在递归函数中因不正确使用公共变量而形成死循环

    昨天碰到了挺郁闷的错误,我写的一个递归函数,形成了死循环。代码如下: '递归删除频道,参数:频道ID Sub DeleteBoard(bid)     '删除...

    大石头

扫码关注云+社区

领取腾讯云代金券