Adblock-fast: ad-blocking service for dnsmasq, smartdns, unbound and bind/named

What I mean is that while none of these lists are enabled by default, they are pre-configured in the settings. In other words, these lists are recommended for use — you just enable what you need, and it’s supposed to work. My point is: if you recommend something, you should be confident in it. Plus, it still doesn't explain why specific entries in the list would block the update process.

P.S.
I have replaced the default URL with the one you suggested, and the package updated successfully. Thanks! Perhaps the author should consider making this change as well. Just a suggestion.

The pre-defined version had about 380000 entries. The one I posted only has 180000 due to the removal of unnecessary sub domains. Perhaps it was a memory issue, but I cannot say that with any confidence.

1 Like

No. There was a syntax error in the list itself. Unfortunately, I didn't save a screenshot. Before this incident, the list hadn't caused any crashes; the only thing I noticed was that its size would fluctuate between 9 MB and 3 MB, which was suspicious but didn't lead to failures.

@dave14305 – same github username? I want to credit you for the config update.

1 Like

I am currently using Version 1.2.2-r16. After adding a domain to the blacklist, I am still able to access it. The blacklist only takes effect after I restart OpenWrt.

Don't know if this is any good to you; read the information they're quite light especially the Combo "Alt Suggested" version I use.

Let me know what you think.

Chrome extension is in the store: https://chromewebstore.google.com/detail/adblock-fast-controller/klkdabjeohlmbcnidbealmacfjlihopo

1 Like

Looking for anyone using Adblock-fast on main snapshots with dnsmasq 2.92 to test whether allowlisting works with this dnsmasq version for an exact match of a blocked domain. I'm not on snapshots to test myself, but I've been following a similar report on another forum for another router platform where dnsmasq 2.92+ doesn't behave the same as 2.91 and earlier when using the common syntax:

server=/ads.example.com/#
local=/ads.example.com/

On the newer dnsmasq version the first entry isn't honored. Just looking to see if anyone on snapshots can reproduce this. Thanks.

1 Like

Some errors with 1.2.2-r18

(1/2) Installing adblock-fast (1.2.2-r18)
  Installing file to etc/config/adblock-fast.apk-new
  Executing adblock-fast-1.2.2-r18.post-install
  * [ DL ] Config Update: cdn.jsdelivr.net [✓]
  * [INIT] Force-reloading adblock-fast 1.2.2-r18...
  * [ DL ] Blocked List: 1Hosts - Lite (domains) [✓]
  * head: standard output: I/O error
  * [ DL ] Blocked List: Bongochong - Combined Privacy Block Lists (TLD Optimized) [✗]
  * [ DL ] Blocked List: Kboghdady - YouTube Ads DNS (domains) [✓]
  * [ DL ] Blocked List: AdguardTeam - CNAME Trackers (domains) [✓]
  * [ DL ] Blocked List: OISD - Big (adblockplus) [✓]
  * [ DL ] Blocked List: CERT Polska - Dangerous Websites (domains) [✓]
  * [ DL ] Blocked List: AdguardTeam - CNAME Clickthroughs (domains) [✓]
  * [ DL ] Blocked List: SomeoneWhoCares - Hosts (hosts) [✓]
  * [ DL ] Blocked List: WinHelp2002 MVPS - Hosts (hosts) [✓]
  * [ DL ] Blocked List: AdAway - Hosts (hosts) [✓]
  * [ DL ] Blocked List: AdguardTeam - CNAME Ads (domains) [✓]
  * [ DL ] Blocked List: AdguardTeam - CNAME Microsites (domains) [✓]
  * [ DL ] Blocked List: Yoyo.org - Hosts (hosts) [✓]
  * [ DL ] Blocked List: Hoshsadiq - NoCoin Adblock List (hosts) [✓]
  * [PROC] Sorting combined block-list [✓]
  * [PROC] Optimizing combined block-list [✓]
  * [PROC] Removing allowed domains from combined block-list [✓]
  * [PROC] Formatting combined block-list file [✓]
  * [PROC] Explicitly allowing domains in dnsmasq.servers [✓]
  * [PROC] Setting up dnsmasq.servers file [✓]
  * [PROC] Removing temporary files [✓]
  * [DNSM] Updating dnsmasq configuration [✓]
  * [DNSM] Testing dnsmasq.servers configuration [✓]
  * [DNSM] Sanity check for dnsmasq.servers TLDs [✓]
  * [DNSM] Sanity check for dnsmasq.servers leading dots [✓]
  * [DNSM] Restarting dnsmasq [✓]
  * [DNSM] Probing heartbeat.melmac.ca for 10 seconds [w][✓]
  * [STAT] adblock-fast 1.2.2-r18 is blocking 517279 domains (with dnsmasq.servers)
  * [ERROR] Failed to detect format!
(2/2) Installing luci-app-adblock-fast (1.2.2-r18)
  Executing luci-app-adblock-fast-1.2.2-r18.post-install
  * /proc/self/fd/7: /etc/uci-defaults/95_adblock-fast-api: line 21: base64: not found
1 Like

@dave14305 I very much appreciate you testing this, any feedback yet?

@sppmaster thanks for reporting, I’ll remove use of base64 in luci-app-adblock-fast 1.2.2-r18. that error affects the default token for adblock-fast API for chrome extension only.

I reported it to Simon directly and posted to the dnsmasq-discuss mailing list later. Simon replied he would look into it within a couple weeks due to being busy. But he didn’t tell me I was crazy yet.


This issue wasn't present in the previous version. Before posting, I updated the list URLs:

Hagezi - Pro: changed from https://cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/domains/pro.txt
to
https://cdn.jsdelivr.net/gh/hagezi/dns-blocklists@latest/wildcard/pro-onlydomains.txt
and in the list I added
schakal.ru - https://schakal.ru/hosts/alive_hosts.txt
replaced to
https://schakal.ru/hosts/hosts.txt

The "Enable dnsmasq domain validation" option is enabled. In previous versions, with the same configuration, the system reported a syntax error in one specific line but continued to load and function correctly. However, in the current version, it fails as shown in the attached screenshot.

AdBlock-Fast - Version 1.2.2-r16

Hello, thank you for your work, i am using AdBlock-fast on my device with OpenWrt 25.12.2 release and AdBlock-fast Version 1.2.2-r18
But i have the problem that when a device uses a custom DNS, i can access blocked pages. if i change to use the DNS of Openwrt, i can´t acess the page.
Is there a way tho check if the force_dns option is working?

Yes, the presence of the firewall object in the output of service adblock-fast info and the relevant redirects in the firewall status.

If you're using an encrypted custom DNS, that cannot be intercepted thru force_dns.

There's (unpublished yet) security advisory involving luci-app-adblock-fast if used with a specifically created non-root user with restricted ACL access only, it has been addressed in version 1.2.3-r7 (available in my binary repos). The adblock-fast itself is unaffected (but got version bumped to match luci app), it's the automated downloads/cron-related functions in the luci app which have been fixed, I would appreciate prompt testing by the community so I could merge the new code into OpenWrt repos quickly.

just installed v1.2.4-2 but the problem is im using tailscale subnet and it is giving me error failed to start and also not downloading the adblock list...is there anything we can do to fix this.

reconfigure your tailnet to NOT override your default DNS?

1 Like

Thanks for the suggestion.
On my main router (RT3200), everything works fine — adblock-fast, DoH via https-dns-proxy, and PBR policies are all functioning correctly. The issue seems to be specific to my subnet router (Cudy WR3000S) which connects to the main router via Tailscale. Since Tailscale is using a relay (DERP) instead of a direct connection on this router, DNS-based features like PBR and adblock-fast don't work as expected — the DNS queries don't reach the main router's dnsmasq in a way that properly populates the nftsets.

Is there any way to convert it to Wireguard Mesh? It should work just fine.