Blog Logo
  • Home
  • SACC2013
  • Categories
  • Tags
  • About
  • Feed

Dnsmasq安装配置

by Ruanjf — on dns 01 Sep 2016

为了避免在内网环境下每台机子都要修改hosts文件添加域名,所以通过在路由器上配置自己搭建的DNS服务从而不用在每台机子上配置了,特别是通过移动设备访问内网应用时就方便多了(如iOS在未越狱时想修改比较困难)。这里选用Dnsmasq作为DNS服务器

安装Dnsmasq

# Ubuntu/Debian
$ apt-get install dnsmasq
# Centos/RHEL
$ yum install dnsmasq

配置Dnsmasq

注:本机IP地址为192.168.16.189

安装完后通过新建配置文件/etc/dnsmasq.d/address.conf这样可以避免修改默认配置。主要配置有:

  • 配置上游DNS,这个值可以是由路由器提供(可能内网有做其他网络配置)
  • 配置DNS监听地址,可以配置上本机127.0.0.1和IP地址192.168.16.189
  • 配置泛域名解析ip,默认支持子域名,配置格式如:address=/work.net/192.168.16.11

如果/etc/hosts中有配置也会被DNS服务器获取

完整配置如下:

# 上游DNS
server=192.168.18.1
# 本机和局域网dns可用
listen-address=127.0.0.1,192.168.16.189

address=/work.net/192.168.16.189
address=/22.work.net/192.168.16.22
address=/33.work.net/192.168.16.33

如果本机上装了Docker,容器中的应用也需要配置hosts的话还需要添加DNS服务器地址nameserver 192.168.16.189到/etc/resolv.conf中。

配置完后可通过dnsmasq --test测试配置文件是否有错误,然后通过systemctl start dnsmasq.service启动服务。

如果机子有启用防火墙的话,需要配置服务允许通过防火墙

$ firewall-cmd --zone=public --add-service=dns --permanent # 允许dns通过防火墙
$ firewall-cmd --reload # 重新载入以生效

接着通过dig测试DNS服务是否可用(最好在局域网中的其他机器上也进行测试)

$ dig @127.0.0.1 22.work.net
$ dig @192.168.16.189 22.work.net
$ nslookup 22.work.net

测试完成后添加开机自启服务systemctl enable dnsmasq.service

路由器配置

登录路由器http://192.168.1.1/(有些ip可能会不一样),找到网络配置修改首选DNS服务器地址为Dnsmasq安装的机子

参考

Dnsmasq

利用Dnsmasq部署DNS服务

Ruanjf Author

Ruanjf

ruanjiefeng@gmail.com

是我,这就是我

Comments

comments powered by Disqus
All content copyright Ruanjf © 2020 • All rights reserved.
Proudly published with Jekyll on Tuesday, 05 May 2020 at 05:34 PM UTC