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!
- 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.
This project is released under the WTFPL. See the LICENSE.md for details.
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)
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
Read the USAGE.md file on How to Use. It has fancy screenshots and stuff, you'll like it :)
- 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.
- 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)