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。