Skip to content

NodeJS Proxy for blocking adverts on the interwebz (with support for Adblock Plus filter lists and /etc/hosts files)

License

Notifications You must be signed in to change notification settings

ernests/adblock-proxy

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NodeJS AdBlock Proxy

NodeJS Proxy for blocking adverts on the interwebz (with support for Adblock Plus filter lists and /etc/hosts files). This project aims to make the interwebz even moar awesome!

Why using a NodeJS based AdBlock Proxy?

  • It's blazing fast. Seriously, forget other Proxy implementations.
  • It's written in JavaScript !!!!111eleven.
  • A few hours on Facebook, reddit, stackoverflow uses around 15MB amount of memory (whilst having over 20k blocked hosts and urls with n rulesets):
  • If you still don't believe it, get over it and use something else. I don't care.

License

This project is released under the WTFPL. See the LICENSE.md for details.

Installation

Note: You can change the suggested installation folder to whereever you want to install it. Just make sure you change the paths in the bash commands accordingly.

  • Download and install the newest available stable release of NodeJS from nodejs.org.

  • Download this project via zip-file and extract its contents to /opt/adproxy.

  • Navigate to the folder in your Shell (or PowerShell) and execute:

cd /opt/adproxy; # change if you used a different folder
nodejs ./bin/proxy; # will start a proxy on defaulted settings (localhost:8080)

Settings

If you want to use customized parameters, these are the supported parameters and their functionality:

  • --host= where ip is an IPv4 or IPv6 address (e.g. 192.168.0.1)
  • --port= where port is a valid port number (e.g. 8080)
  • --public=true will allow using the proxy from other hosts (defaulted). Use --public=false to only allow connections using the given ip.
  • --protocol=http will spawn an HTTP based proxy. Supported protocols are http, socks5.
# Example usage of customized parameters
nodejs ./bin/proxy --host=192.168.0.1 --port=8080 --public=false --protocol=http

How To Use

Read the USAGE.md file on How to Use. It has fancy screenshots and stuff, you'll like it :)

Features

  • HTTP Proxy
  • Host config files support (aka /etc/hosts)
  • Adblock Plus filter list support ("without element hiding")
  • Use the ./update.sh (requires wget) to update all filter lists from predefined sources.

Work-in-progress (aka still not working)

  • HTTPS Proxy (automatic SSL certificate issueing, maybe via sniffing (aka nulling bug))
  • SOCKS5 Proxy
  • Support for ABP rules with $variable identifiers (requires HTML code parsing, which would slow down proxy)

About

NodeJS Proxy for blocking adverts on the interwebz (with support for Adblock Plus filter lists and /etc/hosts files)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 94.0%
  • Shell 6.0%