Simple-adblock: fast, lean and fully uci/luci configurable AdBlocking

Yes. According to my system logs and kernel logs, the filesystem on the USB flash drive is mounted way before the network interfaces are enabled.

Voila: https://github.com/stangri/source.openwrt.melmac.net/commit/18db2e78cc73725453178edf59947f39c5884a90

IPKs are available from my repo. Make sure to update both principal and luci app!

PS. Apparently readlink doesn't sanitize as well as I thought it does, I'll have to rewrite a piece of code.

1 Like

chrome_fO6I3pux77
The 'Force Re-Download' button isn't working.

Can you post your simple-adblock config?


config simple-adblock 'config'
	option allow_non_ascii '0'
	option canary_domains_icloud '0'
	option canary_domains_mozilla '0'
	option compressed_cache '0'
	option config_update_url 'https://cdn.jsdelivr.net/gh/openwrt/packages/net/simple-adblock/files/simple-adblock.conf.update'
	option curl_retry '3'
	option download_timeout '10'
	option debug '0'
	option dns 'dnsmasq.servers'
	option dns_instance '0'
	option force_dns '1'
	list force_dns_port '53'
	list force_dns_port '853'
	option parallel_downloads '1'
	option procd_trigger_wan6 '0'
	option procd_boot_wan_timeout '60'
	option verbosity '2'
	list blocked_hosts_url 'https://adaway.org/hosts.txt'
	list blocked_hosts_url 'https://cdn.jsdelivr.net/gh/hoshsadiq/adblock-nocoin-list/hosts.txt'
	list blocked_hosts_url 'https://pgl.yoyo.org/as/serverlist.php?hostformat=hosts&showintro=1&mimetype=plaintext'
	list blocked_hosts_url 'https://winhelp2002.mvps.org/hosts.txt'
	list blocked_hosts_url 'https://someonewhocares.org/hosts/hosts'
	list blocked_domains_url 'https://cdn.jsdelivr.net/gh/AdguardTeam/cname-trackers@master/combined_disguised_trackers_justdomains.txt'
	list allowed_domain 'cdn.jsdelivr.net'
	list allowed_domain 't.co'
	list allowed_domain 's.youtube.com '
	option config_update_enabled '1'
	option enabled '1'


That (successful start with 0 domains blocked from your screenshot) is definitely an unexpected behaviour given your config file. Are there still logs about how it happened (logread -e simple-adblock)?

Does stop/start from WebUI work? Does restart (or service simple-adblock dl) work from the command line?

The logs are gone as I had to reboot the device. The service simple-adblock dl command works fine from the command line, but the stop/start feature from the WebUI doesn't seem to be working.

If it happens again, I'll make sure to run the logread -e simple-adblock command.

Thank you @stangri. When will it be added to the official OpenWrt package repository?

I'd like to have it tested for a bit before merging changes to OpenWrt packages. Have you tested the latest version?

Hi, i'm new to simple-adblock...
i want to block access to some websites like facebook and youtube.
but dont know how... need help

I'm facing this same issue. If I restart my device, I have to run service simple-adblock dl over SSH, as clicking on the force redownload button in LuCI does nothing for me.

Log entries look something like this from logread -e simple-adblock:

Thu Apr  6 10:13:55 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 166250
<removed a few thousand other "bad address" warnings for readability>
Thu Apr  6 10:13:55 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168524
Thu Apr  6 10:13:55 2023 daemon.info dnsmasq[1]: read /var/run/simple-adblock/dnsmasq.servers - 0 addresses

I'm running simple-adblock version 1.9.4-4. Here is my current configuration:

config simple-adblock 'config'
	option allow_non_ascii '0'
	option canary_domains_icloud '0'
	option canary_domains_mozilla '0'
	option config_update_url 'https://cdn.jsdelivr.net/gh/openwrt/packages/net/simple-adblock/files/simple-adblock.conf.update'
	option debug '0'
	option dns 'dnsmasq.servers'
	option dns_instance '0'
	option force_dns '1'
	list force_dns_port '53'
	list force_dns_port '853'
	option procd_trigger_wan6 '0'
	option config_update_enabled '1'
	option verbosity '1'
	list allowed_domains_url 'https://raw.githubusercontent.com/anudeepND/whitelist/master/domains/whitelist.txt'
	list allowed_domains_url 'https://raw.githubusercontent.com/anudeepND/whitelist/master/domains/referral-sites.txt'
	list allowed_domains_url 'https://raw.githubusercontent.com/anudeepND/whitelist/master/domains/optional-list.txt'
	option compressed_cache '1'
	option parallel_downloads '0'
	list blocked_domain 'download.com'
	list blocked_domain 'download.cnet.com'
	list blocked_domain 'softonic.com'
	list blocked_domain '9minecraft.net'
	list blocked_domain 'mc-mod.net'
	list blocked_domain 'minecraft-dl.com'
	option download_timeout '30'
	option curl_retry '5'
	list blocked_domains_url 'https://raw.githubusercontent.com/badmojr/1Hosts/master/Lite/domains.txt'
	list blocked_domains_url 'https://phishing.army/download/phishing_army_blocklist.txt'
	list blocked_domains_url 'https://raw.githubusercontent.com/nextdns/piracy-blocklists/master/streaming-audio'
	list blocked_domains_url 'https://raw.githubusercontent.com/nextdns/piracy-blocklists/master/streaming-video'
	list blocked_domains_url 'https://raw.githubusercontent.com/nextdns/piracy-blocklists/master/torrent-websites'
	list allowed_domain 'telemetry.mozilla.org'
	option enabled '1'

I'm on the road for a bit, but when I can have a look at it, those "bad addresses" examples would definitely help.

Looking again at system logs, the errors seem to occur for each line in the servers config file?

Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168950
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168951
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168952
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168953
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168954
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168955
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168956
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168957
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168958
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168959
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168960
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168961
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168962
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168963
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168964
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168965
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168966
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168967
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168968
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168969
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168970
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168971
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168972
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168973
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168974
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168975
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168976
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168977
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168978
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168979
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168980
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168981
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168982
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168983
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168984
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168985
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168986
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168987
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168988
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168989
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168990
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168991
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168992
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168993
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168994
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168995
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168996
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168997
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168998
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 168999
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 169000
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 169001
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 169002
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 169003
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 169004
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 169005
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 169006
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 169007
Sun Apr  9 17:55:48 2023 daemon.err dnsmasq[1]: bad address at /var/run/simple-adblock/dnsmasq.servers line 169008
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: read /var/run/simple-adblock/dnsmasq.servers - 0 addresses
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: read /tmp/hosts/dhcp.cfg01411c - 51 addresses
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: read /tmp/hosts/odhcpd - 6 addresses
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq-dhcp[1]: read /etc/ethers - 0 addresses
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: using nameserver 203.12.12.12#53
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: using nameserver 2404:e80::1337:af#53
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzzyyzzzyyyzyyzyyyzzyyzyzzzzzzzzyyzzyyyyyzyzyyzzyzpol7196.cmkaarten.nl
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzznewclub3739.32-b.it
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzys.haha5.cn
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzxmcp.com
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzxedr.xyz
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzx.gaznf.xyz
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzx.chainreact.xyz
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzwwijnvyy3u2.biz.id
Sun Apr  9 17:55:48 2023 daemon.info dnsmasq[1]: using 169007 more local addresses
Sun Apr  9 17:55:49 2023 daemon.info dnsmasq[1]: using nameserver 203.12.12.12#53
Sun Apr  9 17:55:49 2023 daemon.info dnsmasq[1]: using nameserver 2404:e80::1337:af#53
Sun Apr  9 17:55:49 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzzyyzzzyyyzyyzyyyzzyyzyzzzzzzzzyyzzyyyyyzyzyyzzyzpol7196.cmkaarten.nl
Sun Apr  9 17:55:49 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzznewclub3739.32-b.it
Sun Apr  9 17:55:49 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzys.haha5.cn
Sun Apr  9 17:55:49 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzxmcp.com
Sun Apr  9 17:55:49 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzxedr.xyz
Sun Apr  9 17:55:49 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzx.gaznf.xyz
Sun Apr  9 17:55:49 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzx.chainreact.xyz
Sun Apr  9 17:55:49 2023 daemon.info dnsmasq[1]: using only locally-known addresses for zzwwijnvyy3u2.biz.id
Sun Apr  9 17:55:49 2023 daemon.info dnsmasq[1]: using 169007 more local addresses

The config structure looks something like this within dnsmasq.servers:

server=/zychadam.pl/
server=/zycie-sprawia.eu/
server=/zyciegwiazd-pudelek24h.pl/
server=/zyciegwiazd-wpinformacje.pl/
server=/zycieneizl.cyou/
server=/zycienieuslaneluksusem.website/
server=/zyciewazne.click/
server=/zyciewpolsce.pl/
server=/zyciezdnianadzien.cyou/
server=/zyciezycie.cam/
server=/zycsmieszne.site/
server=/zyczyca.icu/
server=/zyesfgko.link/
server=/zyf03k.xyz/
server=/zygk.com/
server=/zygmunt.fenikssbrk.warszawa.pl/
server=/zygmunt.gabrielazuzanna.info.pl/
server=/zygmuntkoprowicz.pl/
server=/zygomasbeaches.guru/
server=/zyh.sitify.top/
server=/zyje-czas.click/
server=/zyjemytym.eu/
server=/zyjesiedlatakichhchwil.website/
server=/zyjetym.eu/
server=/zyl2vx.webwave.dev/
server=/zypenetwork.com/
server=/zyrwfd.xyz/
server=/zys.cl/
server=/zysheptany.com/
server=/zysk-dlyty.xyz/
server=/zytakarpecka.pl/
server=/zywnosciowa-pl.work/
server=/zyxwvutsrqponmlkjihgfedcbazyxwvutsrqponmlkjihgfedcbazyxwvutsrqp.de/
server=/zyzlk.com/
server=/zz.bdstatic.com/
server=/zz33zgbj8a.jewulski.pl/
server=/zz3r0.com/
server=/zz3v1x.webwave.dev/
server=/zz888666.com/
server=/zz8ndr7uul.jewulski.pl/
server=/zzaa.com.au/
server=/zzad.com/
server=/zzcb7i.webwave.dev/
server=/zzcraigtown.buzz/
server=/zzfalmada.com/
server=/zzhc.vnet.cn/
server=/zzkadra-kwbbelchatow.com.pl/
server=/zzltuq.webwave.dev/
server=/zzmalwo.pl/
server=/zzscpzldvf.vein04wus.club/
server=/zzsqqx.shopjapan.co.jp/
server=/zzwwijnvyy3u2.biz.id/
server=/zzx.chainreact.xyz/
server=/zzx.gaznf.xyz/
server=/zzxedr.xyz/
server=/zzxmcp.com/
server=/zzys.haha5.cn/
server=/zzznewclub3739.32-b.it/
server=/zzzyyzzzyyyzyyzyyyzzyyzyzzzzzzzzyyzzyyyyyzyzyyzzyzpol7196.cmkaarten.nl/

And having manually tinkered with dnsmasq before, it doesn't even look like invalid syntax at all to me so I am very confused by the error spam I'm seeing in logs.

If possible try adguardhome package oisd and other user filters are working with no errors

Does simple-adblock store its blocklists entirely in RAM? I want to update the blocklists three times daily by using this cronjob: 0 6,12,18 * * * /etc/init.d/simple-adblock dl. However, I am concerned that such frequent updates may cause excessive wear on my router's flash storage, especially when I am using that larger blocklists.

It is my understanding that simple-adblock generates a DNS server configuration file based on the downloaded blocklists. Is the generated DNS server configuration file stored in RAM too?

Hello,

I'm trying to use the HAGEZI block lists, and he has several lists and different formats, I'm using the hostnames lists although he has dnsmasq lists, should I stay with the hostnames?

also I notice one his light list is 621845 host and when it loads in my client only loads 114614 domains (with dnsmasq.servers). I added more time to the download "60" secs but is there any way to load them?

Everything looks valid to me, I have no idea why dnsmasq is complaining. Which version of dnsmasq is that?

There's an option to store compressed cache in a user-selected directory. Everything else is stored in RAM.

Domains list is the best. Dnsmasq lists are good if you only want to use that one list and nothing else.

After download, simple-adblock optimizes the list by removing the unneeded 3rd/4th level domains when using compatible dnsmasq option.

More details are in README for all questions answered here (except the first one).

1 Like

I'm running version 2.86, as per:

~# dnsmasq --version
Dnsmasq version 2.86  Copyright (c) 2000-2021 Simon Kelley
Compile time options: IPv6 GNU-getopt no-DBus UBus no-i18n no-IDN DHCP no-DHCPv6 no-Lua TFTP no-conntrack no-ipset no-auth no-cryptohash no-DNSSEC no-ID loop-detect inotify dumpfile

As far as I'm aware that's the latest version, at least for me on OpenWrt 22.03.3.

I've been using a more recent dnsmasq because I need the nft sets suppport, so I can't test 2.86, but I've had simple-adblock redownload the lists I use and I haven't had dnsmasq complain.

The message comes from trying to read a hosts file with an invalid IPv4 or IPv6 address. This format needs to be considered a conf file instead of a hosts file.

https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=blob;f=src/cache.c;hb=52e6ad2761e4e39c3e89fe3b8d68b98cf538a27c#l1239