explaingit

tinyproxy/tinyproxy

5,835CAudience · ops devopsComplexity · 4/5LicenseSetup · moderate

TLDR

Tinyproxy is a lightweight HTTP and HTTPS proxy server for Linux, designed for small networks that need to share an internet connection and filter web traffic without the overhead of a full-featured proxy.

Mindmap

mindmap
  root((tinyproxy))
    Features
      HTTP and HTTPS
      URL filtering
      Reverse proxy
      Transparent proxy
    Build
      From source tarball
      Autoconf configure
    Use Cases
      Small office proxy
      Traffic filtering
      Upstream chaining
    Platform
      Linux
      POSIX systems
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Set up a shared web proxy for a small office or home network so all devices route traffic through one machine.

USE CASE 2

Block specific websites or domains on your network using Tinyproxy's URL filtering feature.

USE CASE 3

Run a reverse proxy to forward incoming requests to a backend server.

USE CASE 4

Set up a transparent proxy via firewall rules so clients don't need any manual configuration.

Tech stack

CMakeAutoconf

Getting it running

Difficulty · moderate Time to first run · 30min

Building from git requires running an extra script to generate the configure file before the standard compile-and-install steps.

Free to use and modify, but any modified versions you distribute must also be released under the same GPL license.

In plain English

Tinyproxy is a small, lightweight proxy server for Linux and other POSIX systems. A proxy server sits between your computer (or a group of computers on a local network) and the internet, forwarding web requests on their behalf. Tinyproxy is designed specifically for situations where you need that functionality without the resource overhead of a full-featured proxy. The tool is written in C and released under the GNU General Public License. It handles HTTP and HTTPS traffic. One of its notable behaviors is connection buffering: when a web server sends a fast response, Tinyproxy will receive the full response and then relay it to the client at whatever speed the client can handle. This smooths out mismatches in connection speed between the server side and the client side. Tinyproxy supports several optional features that can be enabled at compile time. These include domain and URL filtering (blocking access to specific sites), support for chaining connections through another upstream proxy, transparent proxying (where the proxy works automatically via firewall rules without clients needing to know about it), and reverse proxying (where the proxy forwards incoming requests to a backend server rather than outgoing requests to the internet). Building it from source follows the standard Linux build process: run a configuration script, compile, then install. The release tarballs come with the configure script pre-generated, so building from a release is straightforward. Building from the git repository requires running one additional script first to generate that configure script. For small networks that need to share an internet connection and restrict traffic to web requests only, Tinyproxy is a minimal option. It is not aimed at large-scale deployments where a heavier proxy would be more appropriate.

Copy-paste prompts

Prompt 1
I want to set up Tinyproxy on a Linux machine as a shared web proxy for my home network. Walk me through building from source, writing a basic config file, and starting the service.
Prompt 2
Using Tinyproxy, how do I configure domain filtering to block a list of websites for every client on my network?
Prompt 3
How do I configure Tinyproxy as a transparent proxy using iptables so devices on my network use it automatically without setting a proxy address manually?
Prompt 4
I want to chain Tinyproxy through an upstream proxy. How do I configure the upstream proxy setting in tinyproxy.conf?
Open on GitHub → Explain another repo

← tinyproxy on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.