Home network with I2P, cache and proxy (Squid, Tinyproxy, Unbound)
- Squid: is a caching proxy for the Web supporting HTTP, HTTPS, FTP, and more. It reduces bandwidth and improves response times by caching and reusing frequently-requested web pages. Squid has extensive access controls and makes a great server accelerator. It runs on most available operating systems, including Windows and is licensed under the GNU GPL. http://www.squid-cache.org/
- Tinyproxy: is a light-weight HTTP/HTTPS proxy daemon for POSIX operating systems. Designed from the ground up to be fast and yet small, it is an ideal solution for use cases such as embedded deployments where a full featured HTTP proxy is required, but the system resources for a larger proxy are unavailable. Tinyproxy is distributed using the GNU GPL license (version 2 or above). https://tinyproxy.github.io/
- Unbound: is a validating, recursive, caching DNS resolver (for Home Networks). It is designed to be fast and lean and incorporates modern features based on open standards. To help increase online privacy, Unbound supports DNS-over-TLS and DNS-over-HTTPS which allows clients to encrypt their communication. In addition, it supports various modern standards that limit the amount of data exchanged with authoritative servers. These standards do not only improve privacy but also help making the DNS more robust. The most important are Query Name Minimisation, the Aggressive Use of DNSSEC-Validated Cache and support for authority zones, which can be used to load a copy of the root zone. https://nlnetlabs.nl/projects/unbound/about/

Code: Select all
# /etc/squid/conf.d/local_forwarding.conf
cache_peer 127.0.0.1 parent 8888 7 no-query default
never_direct allow all
Code: Select all
# /etc/tinyproxy/tinyproxy.conf
Port 8888
upstream socks5 127.0.0.1:9050 ".onion"
upstream http 127.0.0.1:4444 ".i2p"
Code: Select all
# /etc/resolv.conf
nameserver 127.0.0.1
Code: Select all
# /etc/environment
http_proxy="http://127.0.0.1:3128/"
https_proxy="http://127.0.0.1:3128/"
ftp_proxy="http://127.0.0.1:3128/"
no_proxy="127.0.0.1"