2019年12月28日星期六

在路由器上定时预解析DNS,解决加密DNS(DNS-over-TLS)解析时间长的问题

下载地址

预备条件

  • Perl 5 
  • dnsmasq

使用方法

  1. 修改/etc/dnsmasq.conf,添加以下几行以启用日志记录功能,并把DNS解析最短过期时间调整为1小时
    log-async=20
    log-queries
    log-facility=/var/log/dnsmasq.log

    min-cache-ttl=3600

  2. get_popular_websites.pl, prefetch_domains.pl, env_var三个文件下载到路由器上,一般放在/usr/bin文件夹。
  3. 修改/etc/crond/root,将cron文件的内容添加到末尾。

原理与细节

通过定时提取dnsmasq的日志文件,统计每个域名的解析次数。大于ceil(exp($today/10 + 1))即把该域名作为经常访问的域名,并加入预解析名单。其中$today为当天的日数

解决OpenWRT上搭建PPTP服务器,Android客户端无DNS解析的问题

问题出在dnsmasq的设置上。在LuCI管理界面DHCP and DNS设置里,找到