dnsmasq 白名单限制 dns缓存cache设置

dns劫持以前都是黑名单模式
有需要拦截的加server劫持整个域名解析

resolv-file=/etc/resolv.conf
listen-address=192.168.192.245
#ddn-hosts=/etc/banner_add_hosts

addn-hosts=/etc/dnsmasq.d/google.host
address=/wiki.local/192.168.192.239


server=/weibo.com/10.1.1.222

或者单个address劫持单记录
address=/www.weibo.com/10.1.1.222

还可以通配模式
address=/.weibo.com/10.1.1.222

白名单模式先劫持所有域名
address=/#/10.1.1.1

开放解析的时候只需要加server指向正常的DNS服务器就行
server=/sskaje.me/10.0.0.1

dnsmasq的dns缓存cache设置

缓存的数量
cache-size=10240

如果查询的域名没ttl,则使用此设置为缓存ttl时间
neg-ttl=600

指定返回给客户端的ttl时间,小于查询域名的ttl以设置为准,服务器中缓存ttl不变,大于以域名的ttl为准,
max-ttl=600

同max-ttl类似,这个是dnsmasq服务器缓存时间设定,低于域名ttl以设定为准,否则以域名ttl为准
max-cache-ttl=3600

和max-cache-ttl相反,如果域名ttl低于设定值,强制使用设定为dnsmasq服务器的缓存时间,限制不能超过3600
min-cache-ttl=3600

总结:
max-ttl和max-cache-ttl没必要设置,想要客户端缓存时间小于域名ttl设置max-ttl,但是dnsmasql缓存时间以域名ttl为准。
想要dnsmasq缓存时间小于域名ttl可以设置max-cache-ttl,同时如果没设置max-ttl首次请求返回客户端的ttl时间以域名ttl为准,再次请求返回的ttl则是dnsmasq缓存剩余时间ttl。
如果想强制任何域名的缓存时间使用min-cache-ttl,dnsmasq限制最高为1小时,更高需重新编译,首次请求返回ttl为域名ttl,再次请求返回的ttl则是dnsmasq缓存剩余时间ttl。

posted @ 2019-04-08 15:50  Boks  阅读(6899)  评论(0编辑  收藏  举报