简介

Tinyproxy 是一款轻量、小巧、低资源占用的 HTTP/HTTPS 代理服务,相较于 Squid、Nginx 正向代理,部署简单、配置极简,非常适合个人自用、容器内代理、内网转发、跨网络访问等场景。

本文基于 Linux 系统 + Docker 部署,同时提供原生安装、基础配置、访问控制、常见问题排查,全程可直接落地使用。

我使用的场景其实很简单,就是我的远程http代理是加密的,jellyfin不支持访问加密的http代理,所以用它在本地中转一下。

tinyproxy.conf 文件直接添加这个配置就行

Upstream http 用户名:密码@ip地址:端口号

测试是否成功

 curl --proxy http://本地IP:端口 https://ifconfig.me

返回你代理服务器的地址就是成功了


一、环境说明

  • 操作系统:CentOS 7 / CentOS 8 / Ubuntu 18.04+

  • 部署方式:优先 Docker(推荐,隔离性强、一键启停)

  • 代理端口:默认 8888

  • 适用场景:容器代理、终端全局代理、局域网设备代理转发


二、方式一:Docker 一键部署(推荐)

1. 前置要求

服务器已安装 Docker & Docker Compose,未安装可先执行:

bash

运行

# CentOS/Ubuntu 通用 Docker 快速安装
curl -fsSL https://get.docker.com | bash -s docker
systemctl start docker && systemctl enable docker

2. 启动容器(单条命令)

直接运行容器,映射端口并挂载配置文件:

bash

运行

# 创建配置目录
mkdir -p /data/tinyproxy

# 启动 Tinyproxy 容器
docker run -d \
  --name tinyproxy \
  --restart always \
  -p 8888:8888 \
  -v /data/tinyproxy:/etc/tinyproxy \
  -e TZ=Asia/Shanghai \
  dannydirect/tinyproxy

3. 查看运行状态

bash

运行

# 查看容器
docker ps | grep tinyproxy

# 查看日志
docker logs tinyproxy

三、方式二:Linux 原生安装(无 Docker 环境)

1. CentOS / RHEL 系列

bash

运行

yum install -y tinyproxy

2. Ubuntu / Debian 系列

bash

运行

apt update && apt install -y tinyproxy

3. 启停 & 开机自启

bash

运行

# 启动
systemctl start tinyproxy
# 停止
systemctl stop tinyproxy
# 重启
systemctl restart tinyproxy
# 开机自启
systemctl enable tinyproxy
# 状态查看
systemctl status tinyproxy

四、核心配置详解

配置文件路径:

  • Docker 部署:/data/tinyproxy/tinyproxy.conf

  • 原生安装:/etc/tinyproxy/tinyproxy.conf

1. 基础配置(常用修改项)

打开配置文件:

bash

运行

vi /data/tinyproxy/tinyproxy.conf

(1)监听端口 & 监听地址

conf

# 代理端口,默认 8888
Port 8888

# 允许所有IP连接(注释掉仅本地访问)
# Listen 127.0.0.1
Listen 0.0.0.0

(2)IP 访问白名单(核心安全配置)

只允许指定网段 / IP 使用代理,拒绝陌生 IP 访问

conf

# 允许本机
Allow 127.0.0.1
# 允许局域网 192.168.0.0/24 整个网段
Allow 192.168.0.0/24
# 允许单个公网/内网IP
Allow 10.0.0.100

规则:配置多个 Allow 即多白名单,不配置则默认拒绝所有外网。

(3)禁用匿名访问(账号密码认证)

开启代理密码验证,防止被蹭网:

conf

# 开启基础认证
BasicAuth user123 pass456
  • 格式:BasicAuth 用户名 密码

  • 可多行配置多组账号

(4)日志配置

conf

# 日志开关
LogLevel Info
# 日志文件路径
LogFile "/var/log/tinyproxy/tinyproxy.log"

2. 配置生效

  • Docker 部署:

    bash

    运行

    docker restart tinyproxy
    
  • 原生部署:

    bash

    运行

    systemctl restart tinyproxy
    

五、客户端使用教程

代理地址格式:

http://服务器IP:8888

1. Windows 系统代理设置

  1. 打开 设置 → 网络和 Internet → 代理

  2. 开启「使用代理服务器」

  3. 地址填写:服务器IP,端口:8888

  4. 保存后即可全局生效

2. Linux 终端临时代理

bash

运行

# 临时生效(当前终端)
export http_proxy=http://IP:8888
export https_proxy=http://IP:8888

# 取消代理
unset http_proxy https_proxy

3. 浏览器代理(插件方式)

使用 SwitchyOmega 等代理插件,新建规则:

  • 协议:HTTP

  • 服务器:你的代理 IP

  • 端口:8888

4. 容器内使用上游代理

其他 Docker 容器引用当前 Tinyproxy:

bash

运行

# 启动容器时指定代理
docker run \
  -e http_proxy=http://代理IP:8888 \
  -e https_proxy=http://代理IP:8888 \
  镜像名

六、防火墙 / 端口放行(必做)

服务器防火墙需放行 8888 端口,否则外部无法连接。

1. Firewalld(CentOS)

bash

运行

# 放行端口
firewall-cmd --permanent --add-port=8888/tcp
# 重载规则
firewall-cmd --reload
# 查看放行端口
firewall-cmd --list-ports

2. UFW(Ubuntu)

bash

运行

ufw allow 8888/tcp
ufw reload

七、测试代理是否正常

在客户端执行测试命令:

bash

运行

# Linux / Mac 终端测试
curl www.baidu.com

# 查看当前出口IP,验证代理转发成功
curl ip.sb

若返回代理服务器 IP,说明代理部署正常。


八、常见问题排查

1. 无法连接代理

  • 检查:防火墙 8888 端口是否放行

  • 检查:配置文件 Listen 0.0.0.0 是否开启

  • 检查:容器 / 服务是否正常运行

2. 连接被拒绝(Access denied)

原因:IP 不在白名单

解决:在 tinyproxy.conf 添加对应客户端 IP / 网段,重启服务。

3. 认证失败

原因:开启了 BasicAuth 但客户端未填账号密码

解决:浏览器 / 系统代理中填写配置的用户名和密码。

4. 容器重启后配置丢失

原因:未正确挂载配置目录

解决:确认 -v /data/tinyproxy:/etc/tinyproxy 挂载参数无误。


九、总结

Tinyproxy 凭借轻量、低耗、易配置的特点,是个人代理、内网转发、容器代理场景的首选。

  • 个人自用推荐 Docker 部署,一键运维、迁移方便;

  • 多设备共享务必配置 IP 白名单 + 账号密码,避免滥用;

  • 端口、防火墙、白名单是三大核心排查点。