已经研究过bind的缓存dns服务器,今天研究下了dnsmasq的dns缓存,发现dnsmasq的配置上要简单得多,比bind上复杂的配置要让新手好上手些,毕竟是本地用太麻烦以后不好维护,好了。看操作吧。
系统:CentOS 5.4
ip:192.168.1.166
需要的软件:dnsmasq
1.安装dnsmasq(centos可以直接用yum安装,或者直接在光盘里找)
yum -y install Dnsmasq
2.配置
cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
vi /etc/dnsmasq.conf
dnsmasq.conf里的内容:
#找到
#resolv-file=
#改为
resolv-file=/etc/resolv.dnsmasq.conf
保存退出后
cp /etc/resolv.conf /etc/resolv.dnsmasq.conf
vi /etc/resolv.conf
只保留一条记录:
nameserver 127.0.0.1
再修改resolv.dnsmasq.conf
vi /etc/resolv.dnsmasq.conf
添加
nameserver 8.8.8.8
当然你也可以添加opendns的地址,这个看个人习惯.
3.启动
chkconfig dnsmasq on;service dnsmasq start
4.修改iptables配置
iptables -t nat -A PREROUTING -i eth0 -p upd --dport 53 -j REDIRECT --to-port 53
上面这句是转发eth0接口的域名解析,然后再把53端口开启,不然内网的域名解析都会发不出去.
iptables -A RH-Firewall-1-INPUT -p udp -m udp --dport 53 -j ACCEPT
iptables -A RH-Firewall-1-INPUT -p tcp -m tcp --dport 53 -j ACCEPT
service iptables save;service iptables restart
5.验证
好了可以找台Windows电脑,在dns服务器地址里加上192.168.1.166,删除其他的dns这样避免解析不准确性.
ps:最后大家可以去试试双网卡搭建dnsmasq,其中一个ip是内网,另外一个ip是公网的做法.