家里路由器装了广告过滤,早上还能拦住一堆弹窗广告,到了下午就开始漏网,视频网页又开始蹦出各种推广。你可能没意识到,问题不在规则本身,而在于它太久没更新——手动刷新太麻烦,其实设备早就支持「过滤规则集自动刷新设置」。
为什么规则集需要自动刷新?
像 AdBlock、Pi-hole 或路由器上的去广告功能,依赖的是外部维护的黑名单,比如 adblock-plus.org 或国内的 anti-ad.net 提供的规则列表。这些域名列表每天都在变,新的追踪器冒出来,旧的换马甲继续干。如果规则集几天不更新,过滤效果就会断崖式下降。
举个例子:你上周五更新了一次规则,周末刷剧挺清净。周一上班打开电脑,发现浏览器右下角又开始飘养生茶广告——这大概率就是新广告源没被识别,而你的规则还停留在上周。
如何开启自动刷新?以 Pi-hole 为例
Pi-hole 默认每天凌晨 2 点自动拉取一次规则更新,但如果你改过 cron 任务或用了第三方脚本,可能已经失效。检查方法很简单:
crontab -l | grep pihole-updatelists
如果看到类似下面这行,说明自动刷新已启用:
0 2 * * * /opt/pihole/pihole-updatelists --update
如果没有,可以运行 crontab -e 添加这一行,保存后系统就会按时拉取最新规则。
OpenWrt 路由器怎么设?
用 OpenWrt 装了 adbyby 或 gfwlist 插件的用户,可以在「服务」→「广告过滤」里找到「自动更新」选项。勾选「启用自动更新」,设置周期为每天或每 12 小时一次。
部分版本需要手动编辑定时任务。打开「系统」→「计划任务」,加入一行:
0 */12 * * * /etc/init.d/adbyby restart > /dev/null 2>&1
意思是每 12 小时重启 adbyby 服务,触发规则重载。注意路径可能因插件版本不同而变化,别直接照抄。
别忽视刷新失败的提示
有次我设好了自动更新,结果连续三天没生效。查日志才发现是 DNS 拦截导致下载地址解析失败。规则服务器域名被自己列进了黑名单,等于自断后路。
建议定期查看系统日志,命令行可以用:
logread | grep -i update
如果看到 failed to download rules 或 timeout,就得检查网络连通性,或者把规则源域名加进白名单。
合理设置频率,别太勤也别太懒
有人图省事设成每小时刷新一次,结果路由器 CPU 占用飙升,Wi-Fi 动不动卡顿。规则更新本质是下载文件 + 重新加载过滤引擎,频繁操作会影响性能。
普通家庭用户,每天 1~2 次足够。追新要紧的可以设在早晚高峰前自动刷新,比如早上 7 点和晚上 6 点,确保通勤路上和下班刷手机时体验干净。