Local ad blocker. Like Pi-hole but local and using your operating system.
Maza ad blocking 🥇 Top 1 in Hacker News
Comments: https://news.ycombinator.com/item?id=22717650
A command to squash all ads in all browsers
sudo maza start
Like Pi-hole but local and using your operating system.
Simple, native and efficient local ad blocker. Bash script compatible with MacOS, Linux, BSD and Windows Subsystem for Linux (WSL).
Index
📟 Commands 📡 Update database
maza update🔨 Start
sudo maza start🛠 Stop
sudo maza stop⚖️ Status
maza status⚙️ Install or Update 😥 Requirements
brew install gnu-sed
Then you do this.
curl -o maza https://raw.githubusercontent.com/tanrax/maza-ad-blocking/master/maza && sudo rm -rf /usr/local/bin/maza && chmod +x maza && sudo mv maza /usr/local/bin
Optional but recommended, make a backup of your hosts file.
sudo cp /etc/hosts /etc/hosts.backup🤖 Auto update of domains to be blocked
Open your cron
.
crontab -e
Add the following line at the end.
@daily maza update
🔪 Uninstall
sudo rm /usr/local/bin/maza && sudo rm -r ~/.config/maza🚫 Not blocking certain domains
Edit ~/.config/maza/ignore
and add the domains you want to ignore.
Example:
ads-twitter.com ads.twitter.com
By default, the following domains are ignored to avoid problems with the operating system.
localhost localhost.localdomain local broadcasthost ip6-localhost ip6-loopback ip6-localnet ip6-mcastprefix ip6-allnodes ip6-allrouters ip6-allhosts 0.0.0.0
Finally update Maza to apply the changes.
maza update🎯 Add custom domains to block
If you want to include your own domains to be blocked, you can add them to ~/.config/maza/custom-domains
. They must each be on one line, ignoring end slash or protocol (http
or https
).
For example:
beauty-tea.com www.expaqua.cloud ad.about.com
Then update the database to regenerate the list to include your domains.
maza update
🔒 Alternative DNS list
By default the Yoyo DNS list (Peter Lowe) is used. If you want to use another list, like Steven Black's for example, you must modify the variable in line 7.
Replace this line:
URL_DNS_LIST="https://pgl.yoyo.org/adservers/serverlist.php?showintro=0&mimetype=plaintext"
with this:
URL_DNS_LIST="https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts"
DNSMASQ
Unfortunately the hosts file does not support sub-domains (wildcards), which is necessary to correctly filter all DNS. You will need to install locally a server for that purpose, Maza supports the Dnsmasq format.
MacOS
Linux
MacOS 0 Update Maza
maza update1 Install
brew install dnsmasq2 Configure
Edit the file.
/usr/local/etc/dnsmasq.conf
Add the following line at the end.
conf-file=(your user path)/.config/maza/dnsmasq.conf
Example
conf-file=/Users/myuser/.config/maza/dnsmasq.conf
Start DNSMASQ.
sudo brew services stop dnsmasq sudo brew services start dnsmasq3 Tell your OS to use your DNS server
Delete the list of macOS DNS servers and add the 3 addresses. The first one will be your local server, and the other 2 belong to OpenDNS, which you can use any other.
127.0.0.1 208.67.222.222 208.67.220.220
Refresh your DNS cache
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder4 Restart/Start Maza
sudo maza stop sudo maza startLinux (Debian/Ubuntu) 0 Update Maza
maza update1 Install
sudo apt update sudo apt install dnsmasq2 Configure
Edit file in path.
/etc/dnsmasq.conf
Add the following line at the end.
conf-file=(your user path)/.config/maza/dnsmasq.conf
Example
conf-file=/home/myuser/.config/maza/dnsmasq.conf
Start DNSMASQ.
sudo systemctl stop dnsmasq sudo systemctl start dnsmasq sudo systemctl enable dnsmasq3 Tell your OS to use your DNS server 3.1 Gnome Shell
In Gnome Shell, open Settings->Nework
. Click in your connection.
Add your local server (dnsmasq), and the other 2 belong to OpenDNS, which you can use any other.
127.0.0.1,208.67.222.222,208.67.220.220
3.2 KDE Plasma
In KDE Plasma, open Settings->Nework->Connectios
. Click in your connection and tab ip4
.
Method
: Automatic (Only addresses).Add your local server (dnsmasq), and the other 2 belong to OpenDNS, which you can use any other.
DNS Servers
: 127.0.0.1,208.67.222.222,208.67.220.220
.4 Restart/Start Maza
sudo maza stop sudo maza startBonus: dnsmasq is in charge of solving all DNS
Add in configure file: /usr/local/etc/dnsmasq.conf
no-resolv
server=208.67.222.222
server=208.67.220.220
Bonus: dnsmasq have localhost
domains
If you want all your .localhost
domains, for example, point to localhost add in configure file: /usr/local/etc/dnsmasq.conf
or /etc/dnsmasq.conf
.
address=/.localhost/127.0.0.1
🍓 CREATE YOUR OWN PI-HOLE SERVER WITH MAZA
You can easily create your own DNS server on a Raspberry Pi, VPS or wherever you want, to connect your devices in just 10 commands thanks to Maza. Follow the tutorial.
⚠️ CAUTION
Remember to make a backup copy of /etc/hosts
in case of unforeseen circumstances, neither the project nor its author will be responsible for any possible repercussions derived from not carrying out this action.
🧑🎨 Credits
Twice a month we will interview people behind open source businesses. We will talk about how they are building a business on top of open source projects.
We'll never share your email with anyone else.