局域网搭建DNS服务器

使用 DNSmasq 部署家庭网络的公共 dns

Posted by 果果 on July 28, 2021

使用 DNSmasq 部署家庭网络的公共 dns 和个性化的局域网内的 dns 域名服务

一.使用场景:

软路由(10.10.10.1)作为家里的中心网络服务器和网关设备,本地搭建了很多服务,很多服务需要输入 host 时, 如果不做 dns 域名解析,那么每次都要输入 10.10.10.1 这一串很长的字符串,很麻烦。若是在局域网中的每台机 器上 各自配置 hosts 文件那也很麻烦。所以就萌生了在软路由上使用 DNSmasq 来作为本地的唯一 dns 域名解析 服务的想法。而且,k2p 作为 ap 接入的路由器,在配置了 dns 地址是 10.10.10.1 后也可以实现任何接入的终端 得到正确的域名解析。现在我本地的软路由、k2p、Thinkpad(7 * 24h working) 均已部署好对应的简短且个性的域名。

二.简介

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

三.搭建步骤:

  • 1.首先安装 DNSmasq
    #centos安装
    yum -y install dnsmasq
    #如果是ubuntu系统
    apt-get -y install dnsmasq
    
  • 2.编辑配置文件
    /etc/dnsmasq.conf
    

    在文件末添加如下几行

  • resolv-file 是指定 DNSmasq 解析的文件
  • strict-order 参数是让 DNSmasq 严格的从 resolv.dnsmasq.conf 这个文件中寻找上游 dns 服务器
  • listen-address 是监听的地址,本机 127.0.0.1 和 自己所在局域网的 10.10.10.1
    resolv-file=/etc/resolv.dnsmasq.conf
    strict-order
    listen-address=127.0.0.1,10.10.10.1
    
  • 3.vim /etc/resolv.conf,设置成 nameserver 127.0.0.1
  • 4.vim /etc/resolv.dnsmasq.conf。这里设置公共 dns
    nameserver 119.29.29.29
    nameserver 223.5.5.5
    nameserver 223.6.6.6
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    nameserver 180.76.76.76
    
  • 5.vim /etc/dnsmasq.conf 增加如下行
    addn-hosts=/etc/dnsmasq.hosts
    
  • 6.把 Linux 系统的 /etc/hosts 拷贝过来,设置局域网内共享的自定义的域名解析服务
    cp /etc/hosts /etc/dnsmasq.hosts
    
  • 7.编辑 /etc/dnsmasq.hosts,在文件末尾添加个性化的自定义的域名
    10.10.10.1 home.to
    10.10.10.2 k2p.to
    10.10.10.3 tp.to
    
  • 8.管理dnsmasq服务
    /etc/init.d/dnsmasq reload
    /etc/init.d/dnsmasq restart
    
  • 9.这时候可以 ping 一下 home.to
    ping home.to
    

    end.