当前位置: 首页 > news >正文

Linux tinyproxy 使用教程

简介

Tinyproxy 是一款轻量级 HTTP 代理服务器,使用最少的资源,非常适合硬件有限的系统。尽管体积小,但它可以处理大量流量,而不会出现明显的性能问题。旨在处理简单的代理任务。它通常用于路由网络流量以保护隐私、缓存或访问受限资源。

它的设计初衷是快速而小巧,是嵌入式部署等用例的理想解决方案。

Tinyproxy占用空间小,并且只需要很少的系统资源。使用 glibc 时,内存占用大约为2 MB, CPU负载随着同时连接的数量线性增加(取决于连接的速度)。因此,Tinyproxy 可以在较旧的机器上运行,也可以在基于 Linux 的宽带路由器等网络设备上运行,而不会对性能产生任何明显影响。

安装

Debian/Ubuntu:
sudo apt update
sudo apt install tinyproxy
CentOS/RHEL/Fedora:
sudo yum install tinyproxy
sudo dnf install tinyproxy
MacOS
brew install tinyproxy
github 拉取源码后手动编译
./autogen.sh
./configure
make
make install

编译选项

  • --enable-debug:启用完整的调试支持
  • --enable-xtinyproxy:编译对 XTinyproxy 标头的支持
  • --enable-filter:允许 Tinyproxy 过滤掉某些域名和 URL
  • --enable-upstream:启用上游代理支持
  • --enable-transparent:允许将 Tinyproxy 用作透明代理守护程序
  • --enable-reverse:启用反向代理支持
  • --with-stathost=HOST:设置统计主机的默认名称

启动运行

启动 tinyproxy
systemctl start tinyproxy
设置开机自启动
systemctl enable tinyproxy
查看运行状态
systemctl status tinyproxy

如何配置 tinyproxy

tinyproxy 配置文件位于 /etc/tinyproxy/tinyproxy.conf

设置 tinyproxy 监听传入连接的端口(默认值:8888)
Port 8888
设置 tinyproxy 绑定到的网络接口(例如,localhost 仅供本地使用):
Listen 127.0.0.1:8888
指定 tinyproxy 应将传入连接绑定到哪个本地网络接口
# for IPv4
Bind 192.168.1.100# for IPv6
Bind 2001:db8::1# 绑定到本机
Bind 127.0.0.1
PortListenBind 比较
  • Port 仅绑定端口
  • Bind 仅绑定网络接口或IP地址
  • Listen 可以同时绑定IP地址和端口,一步到位
  • Listen 的优先级最高,会覆盖 Port 指定的端口
指定哪些 IP 地址可以使用代理
Allow 192.168.1.0/24
设置调试的日志级别

可用的级别有:CriticalErrorWarningNoticeConnectInfo

LogLevel Info
启用基本身份验证来限制访问

客户端在设置代理连接时需要输入用户名和密码

BasicAuth username password
修改代理发送的标头
AddHeader X-Proxy-Name "Tinyproxy"
通过创建过滤器列表来阻止指定的域名或URL
# 配置过滤器文件的位置
Filter "/etc/tinyproxy/filter"

/etc/tinyproxy/filter 文件配置示例:

可以使用基本正则表达式

facebook.com
example.com# 精确过滤 cnn.com^cnn\.com$# 过滤 cnn.com 的所有子域名,但不过滤 cnn.com 本身
.*\.cnn.com$# 过滤任何包含 cnn.com 的域名,例如
cnn\.com# 过滤以 cnn.com 结尾的任何域名
cnn\.com$# 过滤所有以 adserver 开头的域名
^adserver
tinyproxy 作为透明代理运行
TransparentProxy On

使用 iptables 重定向流量

sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8888
tinyproxy 使用上游代理,将请求转发到另一个代理服务器上
Upstream http proxy.example.com:8080
Upstream https proxy.example.com:8443
tinyproxy 作为反向代理服务器
ReversePath "/api" "http://backend-server.local/"
配置 tinyproy 只作为反向代理服务器

关闭正常代理

ReverseOnly Yes
使 tinyproxy 使用 cookie 来跟踪反向代理映射
ReverseMagic Yes
设置 tinyproxyPID 文件位置
PidFile "/var/run/tinyproxy/tinyproxy.pid"
指定 tinyproxy 在关闭空闲连接之前应等待的时间。
Timeout 600
限制同时连接到 tinyproxy 的客户端数量
MaxClients 100
启用 HTTPS 连接支持
ConnectPort 443
启用匿名模式来隐藏内部网络信息
Anonymous "headers"
查看 tinyproxy 日志
tail -f /var/log/tinyproxy/tinyproxy.log
使用 debug 模式启动 tinyproxy
sudo tinyproxy -d -c /etc/tinyproxy/tinyproxy.conf
设置 tinyproxy 的日志文件位置
LogFile /var/log/tinyproxy.log
添加一个包含客户端 IP 地址的标头 X-Tinyproxy
XTinyproxy Yes
查看 tinyproxy 的版本
tinyproxy -v

资源

  • GitHub源码
  • 发行版资源
  • 官网
http://www.lryc.cn/news/505714.html

相关文章:

  • 局部规划器设计思路
  • 数字图像处理技术期末复习
  • UITableView显示数据,增加数据,删除数据及移动数据行
  • 金智塔科技喜获CCF中国数字金融大会 GraphRAG竞赛二等奖
  • 方案解读:数字化扩展中如何提升多云应用安全能力?
  • “年轻科技旗舰”爱玛A7 Plus正式发布,全国售价4999元
  • oracle开窗函数笔记、over()笔记
  • 【HarmonyOS】HarmonyOS 和 Flutter混合开发 (一)之鸿蒙Flutter环境安装
  • 海外招聘丨卢森堡大学—人工智能和机器学习中的 PI 用于图像分析
  • LeetCode hot100-85
  • linux 内核数据包处理中的一些坑和建议
  • C++ 的衰退复制(decay-copy)
  • vue-cli 5接入模块联邦 module federation
  • 【Rust自学】3.6. 控制流:循环
  • 【第八节】git与github
  • win如何访问Linux数据库(本地)
  • Windows设置所有软件默认以管理员身份运行
  • 前端 计算发布时间(如“1小时前”、“3天前”等)
  • shardingjdbc 4.0.0 seata分布式事务Failed to fetch schema问题
  • 罗德与施瓦茨NRT2功率反射仪,NRT2通过式功率计
  • QLineEdit限制输入固定字节数(UTF-8编码)
  • 基于ubuntu的mysql 8.0安装教程
  • K8s ConfigMap的基础功能介绍
  • Linux——Shell
  • armsom产品编译烧录Linux固件
  • VSCode:Markdown插件安装使用 -- 最简洁的VSCode中Markdown插件安装使用
  • AI 行业发展趋势:科技创新引领未来变革
  • FB爆款打法实操经验总结
  • 微信小程序TTS解决方案
  • centos stream 8下载安装遇到的坑