Improve your security and privacy by blocking ads, tracking and malware domains.
Clone or download
Latest commit 7a839d7 Nov 30, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
resources 2.0.0 Nov 30, 2018
.gitignore Removed Firebase Jul 14, 2018
.gitlab-ci.yml Added multiple build platforms Nov 1, 2018
BSDmakefile Build alternative formats dynamically and support parallel jobs Oct 31, 2018
LICENSE.md Update license year Feb 11, 2018
Makefile Added lint and installcheck targets and some fixes Nov 1, 2018
README.md 2.0.0 Nov 30, 2018
hblock 2.0.0 Nov 30, 2018
package.json 2.0.0 Nov 30, 2018

README.md

Build Website License


Improve your security and privacy by blocking ads, tracking and malware domains.

Table of contents

What is this for?

This POSIX-compliant shell script, designed for Unix-like systems, gets a list of domains that serve ads, tracking scripts and malware from multiple sources and creates a hosts file (alternative formats are also supported) that prevents your system from connecting to them.

Is it safe to use?

Absolutely, this script selects only the domain names for each source, so if a domain name is redirected to a rogue server your system will not be affected. In the worst scenario you can lose access to a legitimate domain name due a false positive, but you can reverse it by adding that domain to the whitelist.

Nightly builds

I provide nightly builds of the hosts file and other formats, including installers for Windows (batch file) and Android (flashable zip).

URL
https://hblock.molinero.xyz

Installation

curl -o /tmp/hblock 'https://raw.githubusercontent.com/hectorm/hblock/v2.0.0/hblock' \
  && echo 'fc2d59f38d3db4c1d39def1f2360299472ae209fb1d60b28121d8727d38bf7a8  /tmp/hblock' | shasum -c \
  && sudo mv /tmp/hblock /usr/local/bin/hblock \
  && sudo chown root:root /usr/local/bin/hblock \
  && sudo chmod 755 /usr/local/bin/hblock

Note: you can use this Systemd timer to regularly update the hosts file for new additions.

Optionally, it is possible to use NPX to run hBlock without installation

npx hblock

Usage

Script arguments

You can also change the default behavior using these options:

Usage: hblock [options...]
 -O, --output <FILE>
        Output file location
        (default: "/etc/hosts" file)
 -H, --header <FILE>
        Content to be included at the beginning of the output file
        (default: HBLOCK_HEADER environment variable,
        "/etc/hblock.d/header" file or builtin value)
 -F, --footer <FILE>
        Content to be included at the end of the output file
        (default: HBLOCK_FOOTER environment variable,
        "/etc/hblock.d/footer" file or builtin value)
 -S, --sources <FILE>
        Newline separated URLs used to generate the blocklist
        (default: HBLOCK_SOURCES environment variable,
        "/etc/hblock.d/sources.list" file or builtin value)
 -W, --whitelist <FILE>
        Newline separated domains to be removed from the blocklist
        (default: HBLOCK_WHITELIST environment variable,
        "/etc/hblock.d/whitelist.list" file or builtin value)
 -B, --blacklist <FILE>
        Newline separated domains to be added to the blocklist
        (default: HBLOCK_BLACKLIST environment variable,
        "/etc/hblock.d/blacklist.list" file or builtin value)
 -R, --redirection <REDIRECTION>
        Redirection for all entries in the blocklist
        (default: 0.0.0.0)
 -T, --template <TEMPLATE>
        POSIX BREs replacement applied to each entry
        \1 = <DOMAIN>, \2 = <REDIRECTION>
        (default: \2 \1)
 -C, --comment <COMMENT>
        Character used for comments
        (default: #)
 -b, --backup [DIRECTORY]
        Make a time-stamped backup in <DIRECTORY>
        (default: output file directory)
 -l, --lenient
        Match all entries from sources, regardless of their IP
        (default: 0.0.0.0, 127.0.0.1 or none)
 -r, --enable-regex-whitelist
        Use POSIX BREs instead of fixed strings
 -i, --ignore-download-error
        Do not abort if a download error occurs
 -c, --color <auto|true|false>
        Colorize the output
        (default: auto)
 -q, --quiet
        Suppress non-error messages
 -v, --version
        Show version number and quit
 -h, --help
        Show this help and quit

Run preview

asciicast

Sources

Name Primary Mirror
adaway.org URL URL
AdBlock NoCoin List URL URL
AdGuard - Simplified URL URL
disconnect.me - Ad URL URL
disconnect.me - Malvertising URL URL
disconnect.me - Malware URL URL
disconnect.me - Tracking URL URL
EasyList URL URL
EasyPrivacy URL URL
ETH Phishing Detect URL URL
FadeMind - add.2o7Net URL URL
FadeMind - add.Dead URL URL
FadeMind - add.Risk URL URL
FadeMind - add.Spam URL URL
KADhosts URL URL
malwaredomainlist.com URL URL
malwaredomains.com - Immortal domains URL URL
malwaredomains.com - Just domains URL URL
matomo.org - Spammers URL URL
mitchellkrogza - Badd-Boyz-Hosts URL URL
pgl.yoyo.org URL URL
ransomwaretracker.abuse.ch URL URL
someonewhocares.org URL URL
spam404.com URL URL
StevenBlack URL URL
winhelp2002.mvps.org URL URL
ZeroDot1 - CoinBlockerLists URL URL
zeustracker.abuse.ch URL URL

Disclaimer

This script, by default, replaces the /etc/hosts file of your system. I am not responsible for any damage or loss, always make backups.

License

See the license file.