Tinyproxy 介绍与选型指南

轻量级 HTTP/HTTPS 正向代理 Tinyproxy 的定位、架构与功能特性溯源介绍,附与 Squid/Privoxy/Dante 的量化选型对比。

TinyproxyTinyproxyHTTP 代理Linux2026/10/22

Tinyproxy 介绍与选型指南

目标:基于官方公开资料溯源介绍轻量级 HTTP/HTTPS 正向代理 Tinyproxy 的定位、核心架构、功能特性与选型依据,帮助读者判断「轻量代理网关」场景下该选谁。本文为认知篇,全部版本号、日期与社区数据均联网实查官方渠道并标注来源与查询日期 2026-10-22,不做本地实测;快速开始一节给出官方标准用法,逐行实测回显沉淀于本专栏安装指南篇。

一、信息基准

本文全部事实性数据的来源与查询日期(2026-10-22):

数据项来源说明
项目定位与特性描述Tinyproxy 官方站点 https://tinyproxy.github.io/GitHub Pages 托管的官方网站
最新稳定版 1.11.3(2026-03-07 发布)与发布注记、源码包 sha512GitHub Releases https://github.com/tinyproxy/tinyproxy/releases溯源主渠道(见下述站点迁移说明)
社区活跃度(Stars 约 6k、Forks 766)shields.io 徽章实时读取 GitHub 数据查询日期 2026-10-22
代码最近提交 2026-09-21仓库 master 分支 commit Atom 源查询日期 2026-10-22
许可证 GPL-2.0GitHub 仓库页 license 字段(SPDX:GPL-2.0)GNU GPL v2 或以上(官方站点表述)
同类对比参照本站《Squid 7.7 介绍与选型指南》《Privoxy 4.2.0 介绍与选型指南》详见文末站内链接

⚠️ 溯源渠道说明:Tinyproxy 早期的官方站点与 Bug 跟踪(banu.com、bugzilla.banu.com)已失效多年,官方 1.10.0 发布注记中也明确提及该站已不存在;因此本文版本、安全修复与发布信息一律以 GitHub(tinyproxy/tinyproxy)与 GitHub Pages 官方站点为准,查询日期 2026-10-22。

二、软件概述

Tinyproxy 是一个轻量级 HTTP/HTTPS 代理守护进程(proxy daemon),面向 POSIX 操作系统。官方站点对其的定位是「为资源受限场景设计的快速而小巧的 HTTP 代理」:在 glibc 环境下内存占用约 2 MB,CPU 负载随并发连接数线性增长,因此可以直接跑在老旧服务器、网络设备或嵌入式环境上而几乎不影响整机性能(来源:tinyproxy.github.io,查询日期 2026-10-22)。

项目由 GNU GPL(版本 2 或以上)授权发行,源码遵循 KISS 原则、结构简单,官方明确把「易于修改、适合作为自定义 Web 代理的基础」作为卖点之一。工程形态上它是一个标准的单文件配置(tinyproxy.conf)+ systemd 托管的守护进程,主流发行版(Debian/Ubuntu、RHEL 系、Alpine 等)仓库均有打包,安装即用。

在代理形态上,Tinyproxy 以正向代理为主(客户端显式配置代理地址出网),同时内置透明代理与反向代理模式,通过 CONNECT 方法转发 HTTPS 流量且不改动隧道内容。版本主线当前为 1.11.x:最新稳定版 1.11.3 于 2026-03-07 发布(来源:GitHub Releases,查询日期 2026-10-22)。

三、核心架构

Tinyproxy 的架构可以用「单文件配置 + 单进程多线程 + 无状态转发」概括:

3.1 进程模型

主进程以 root 身份启动并绑定监听端口(默认 8888),随后按配置中的 User/Group 降权到普通用户运行;每来一个客户端连接就由线程池处理,线程数量上限由 MaxClients 控制(Ubuntu 包默认 100)。它是「单进程 + 多线程」模型,没有独立的管理进程,也没有主备/集群概念——高可用靠外部负载均衡或 DNS 轮询。

3.2 请求处理链路

一个客户端请求在 Tinyproxy 内部依次经过:

  1. 访问控制(ACL):Allow/Deny 规则按顺序匹配客户端来源 IP,命中放行、默认拒绝(一旦配置了 Allow 行);
  2. 认证(可选):BasicAuth 启用后校验 Proxy-Authorization,失败返回 407;
  3. 方法分流:
    • 普通 HTTP 请求 → 按配置决定是否注入 Via、X-Tinyproxy、AddHeader 自定义头,可再经 Anonymous 白名单剥离敏感头;
    • CONNECT 请求 → 校验 ConnectPort 端口白名单,通过后建立 TCP 隧道原样转发(HTTPS 内容对代理不可见);
  4. 上游路由(可选):配置 Upstream 规则后按「最后一条命中规则生效」的语义,把请求转给上级 HTTP/SOCKS4/SOCKS5 代理或对特定域直连;
  5. 过滤(可选):Filter 规则文件按域名/URL 拦截,返回 403 并记录日志。

3.3 配置与观测面

  • 配置:唯一入口是 tinyproxy.conf(Ubuntu 位于 /etc/tinyproxy/tinyproxy.conf),无热加载,修改后需重启服务生效;没有 nginx -t 式的配置预检查命令,排障靠 tinyproxy -d 前台运行直接看报错行号。
  • 观测:六个级别的日志(Critical→Info)写入文件或 syslog;内置统计页——请求主机名 tinyproxy.stats(StatHost 默认值)时返回运行时统计;错误页模板(default.html 等)可按状态码自定义。
  • 无管理 API:不提供 REST/gRPC 管理接口,一切运维动作都落在配置文件与 systemd/journald 上。

3.4 发行版包形态

以 Ubuntu 22.04 为例,apt 包提供:/usr/bin/tinyproxy 主程序、/lib/systemd/system/tinyproxy.service 服务单元、/etc/logrotate.d/tinyproxy 日志轮转、/usr/share/tinyproxy/*.html 错误页与统计页模板,安装即自启。上游源码(GitHub Releases 提供 tar.gz/bz2/xz 并公布 sha512)默认安装到 /usr/local 前缀,可与发行版包共存。

四、功能特性

以下特性均出自官方站点特性页与 GitHub Releases 发布注记(查询日期 2026-10-22):

  • 极小资源占用:glibc 下内存约 2 MB,CPU 随连接数线性增长;
  • HTTPS 转发:通过 CONNECT 方法原样转发 HTTPS 流量,不改动任何隧道内容(可用 ConnectPort 限制可连目标端口);
  • 透明代理:可不配置客户端直接在网关上拦截转发;
  • 反向代理:通过 ReversePath 把多个站点映射到同一站点树,支持 ReverseMagic/ReverseBaseURL;
  • 自定义请求头:AddHeader 向出站 HTTP 请求注入自定义头(仅 HTTP,HTTPS 隧道内容不可见);
  • 隐私控制:Anonymous 白名单决定哪些请求头允许通过,实现匿名代理;
  • 代理认证:BasicAuth(1.10.0 起支持)为代理加 Basic 认证门槛;
  • 上游代理:Upstream 规则支持 http/socks4/socks5 类型(SOCKS 上游 1.10.0 起支持)与按域/网段分流直连;
  • 多监听地址:1.10.0 起支持多条 Listen 同时绑定多个地址;
  • 域名/URL 过滤:Filter 规则文件 + 正则类型可选(1.11.1 新增 fnmatch 类型);
  • 可观测:六级日志、内置统计页、可自定义错误页。

💡 技术拓展:同为「正向代理」,业界常见选项按协议层可分为 HTTP 代理(Squid、Privoxy、Tinyproxy)与 SOCKS 代理(Dante、3proxy 等)两类。HTTP 代理工作在应用层、能理解并改写 HTTP 头(因此可做认证、注入、过滤),HTTPS 则以 CONNECT 隧道透传;SOCKS 代理工作在会话层、对流量内容完全无感知、协议更通用但无法做 HTTP 级控制。本文主角 Tinyproxy 属于前者中的极简派;SOCKS 场景应另选 Dante 等专用实现。

五、快速开始(最小可用示例)

以下为 Ubuntu 22.04 上的官方标准用法(发行版仓库安装路径),完整逐行实测回显、日志排障与源码编译方案见本专栏《Ubuntu 22.04 安装 Tinyproxy 指南》:

apt-get update && apt-get install -y tinyproxy
systemctl is-active tinyproxy
curl -s -x http://127.0.0.1:8888 -o /dev/null -w "%{http_code}\n" http://example.com

三步含义:安装发行版包(自动注册 systemd 服务并开机自启)→ 确认服务 active → 本机走 8888 代理请求外网返回 200 即为可用。放行局域网客户端只需在 /etc/tinyproxy/tinyproxy.conf 追加一行 Allow <网段>(如 Allow 10.89.65.0/24)并重启服务;每个参数的实测行为与生产模板见本专栏《Tinyproxy 配置参数详解》,日常命令与 curl 验证手法见《Tinyproxy 常用 CLI 命令与验证方法详解》。

六、适用场景与限制

6.1 典型适用场景

  • 内网共享出网网关:几十到几百客户端规模的内网统一出口,配 ACL + 认证收紧滥用;
  • 低配/嵌入式设备:路由器、ARM 小主机、老旧服务器上的常驻代理(2 MB 内存量级几乎无压力);
  • CI/自动化任务的出口代理:给构建机、爬虫、采集脚本提供可控出网入口,日志可审计;
  • 链式上游/分流出口:用 Upstream 按域或网段把流量引到不同上级代理(含 SOCKS5),实现一机多出口;
  • 透明网关代理:配合 iptables/nftables 做不配置客户端的透明转发。

6.2 能力边界与限制

  • 无缓存:不做任何内容缓存与加速,需要缓存代理(CDN 前置、带宽节省)选 Squid;
  • 无内容改写/广告过滤:只有域名/URL 级黑白名单,没有 Privoxy 那种规则级内容改写;
  • 无管理 API 与 Web UI:一切靠配置文件 + systemd,不适合需要在线管控面板的团队;
  • 单机架构:无原生集群/高可用,多实例需外部调度;
  • HTTPS 盲区:隧道内容不可见,AddHeader/Anonymous 等 HTTP 头特性对 HTTPS 流量无效;
  • 版本碎片:发行版仓库版本明显落后上游(Ubuntu 22.04 为 1.11.0,上游 1.11.3),且部分新指令(如 BasicAuthRealm)在旧版会直接解析报错,跨版本迁移配置需逐条核对。

七、同类选型对比

对比对象:Squid(全功能缓存代理)、Privoxy(内容过滤代理)、Dante(SOCKS 服务器)。均为开源自托管组件,定位相邻但侧重不同:

维度TinyproxySquidPrivoxyDante
一句话定位极轻量 HTTP/HTTPS 正向代理全功能缓存/正向+反向代理隐私增强与内容过滤代理SOCKS4/5 服务器
协议层HTTP 1.0/1.1 + CONNECTHTTP/HTTPS/FTP + ICP 等HTTP/HTTPS(CONNECT 受限)SOCKS(会话层,协议无关)
缓存无有(核心卖点)无无
内容级过滤/改写无(仅域/URL 黑白名单)部分(ICAP/ACL)有(核心卖点,规则引擎)无
代理认证Basic多种(Basic/Negotiate/Kerberos…)Basic用户名/密码
上游代理http/socks4/socks5 按规则分流cache_peer 层级转发代理(forward-socks 等)无(自身即 SOCKS 服务端)
透明代理支持支持支持不适用
反向代理支持(简单映射)支持( accel 模式,能力强)不作为重点不适用
内存量级官方口径约 2 MB数十 MB 起步,随缓存增长数 MB 量级数 MB 量级
许可证GPL-2.0+GPL-2.0+GPL-3.0+BSD 类
社区数据(查询 2026-10-22)GitHub Stars 约 6k、Forks 766、最近提交 2026-09-21GitHub 镜像仓库 Stars 约 3.1k以官方 SourceForge 项目页为准以官方仓库为准
最新版本节奏1.11.3(2026-03-07)7.7(详见站内 Squid 篇)4.2.0(详见站内 Privoxy 篇)1.4.x 系列

关键差异与选型建议:

  • 要小、要省、要快上线:Tinyproxy 是默认答案——发行版一条 apt 命令、2 MB 内存、单文件配置,正向代理场景里部署成本最低;
  • 要缓存/带宽优化/大规模并发:选 Squid,缓存与 ACL 体系成熟,代价是更重的资源与配置负担;
  • 要去广告/改内容/强隐私:选 Privoxy,规则引擎独一档,常与 Tinyproxy/Squid 链式组合使用;
  • 要 SOCKS 协议出口(数据库工具、SSH 动态转发等非 HTTP 客户端):HTTP 代理不适用,选 Dante 或 3proxy;
  • 组合打法:Tinyproxy(入口+ACL+认证)→ Upstream 指向 Privoxy(过滤)或 Squid(缓存)的链式架构,兼顾轻量入口与重处理能力。

若需进一步阅读同类组件的完整实测系列,见站内文档:《Squid 7.7 介绍与选型指南》、《Privoxy 4.2.0 介绍与选型指南》。

八、参考链接