Linux下用dnsmasq做DNS服务器

Eave 2015.04.26 16:49

dnsmasq是一个很实用的小工具,解决局域网的需求看来非常合适,特别是网关和防火墙上。

它同时也可以作为一个dns查询服务器,虽然不如bind等完善,但基本功能也够用了

它可以提供如下几个实用的功能:

1、提供dns服务

2、优先使用本地自定义dns

3、提供dhcp服务

它能解决局域网的如下问题:

1、局域网有很多机器希望使用一份一样的hosts定义一批名称对应的ip,你需要经常维护这份列表

2、你希望局域网的人访问某个域名时,拦截下来到指定的ip,做缓存节省带宽或者其它用途都可以

3、禁止某个域名的正常解析

一、启用Linux的ip转发功能

编辑/etc/sysctl.conf文件

查找

net.ipv4.ip_forward = 0

修改为

net.ipv4.ip_forward = 1

使配置生效

sysctl -p

二、安装dnsmasq

yum -y install dnsmasq

三、修改配置文件

vim /etc/dnsmasq.conf

四、修改以下两处配置

# DNS服务器的地址
resolv-file=/etc/resolv.conf

# IP以及与IP相对应的域名
addn-hosts=/etc/hosts

五、删除多余的文件夹

rm -rf /etc/dnsmasq.d

六、设置开机启动dnsmasq

systemctl enable dnsmasq.service

将IP以及与IP相对应的域名写入/etc/hosts,重启dnsmasq服务。

将路由器的DNS地址改为该服务器的IP地址,这样就可以不用改变本地的hosts文件来访问部分域名了。

systemctl start dnsmasq.service