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
Port、Listen、Bind 比较
Port仅绑定端口Bind仅绑定网络接口或IP地址Listen可以同时绑定IP地址和端口,一步到位Listen的优先级最高,会覆盖Port指定的端口
指定哪些 IP 地址可以使用代理
Allow 192.168.1.0/24
设置调试的日志级别
可用的级别有:Critical、Error、Warning、Notice、Connect、Info
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
设置 tinyproxy 的 PID 文件位置
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源码
- 发行版资源
- 官网
相关文章:
Linux tinyproxy 使用教程
简介 Tinyproxy 是一款轻量级 HTTP 代理服务器,使用最少的资源,非常适合硬件有限的系统。尽管体积小,但它可以处理大量流量,而不会出现明显的性能问题。旨在处理简单的代理任务。它通常用于路由网络流量以保护隐私、缓存或访问受…...
局部规划器设计思路
本文参考知乎文章:如何设计局部规划器 0 引言 局部规划器设计通用方法:生成路径——>寻找最优路径——>后处理优化 1 路径生成 四个问题: ① 如果全局路径中突然出现动态障碍物 ② 如果全局路径非常靠近障碍物 ③ 如果全局路径不容易跟踪(B样条平滑) ④ 如果全局…...
数字图像处理技术期末复习
1. 已知图像的分辨率和深度,怎么求图像的存储空间(位,字节,KB)? 题目: 已知图像的分辨率和深度,怎么求图像的存储空间(位,字节,KB)&a…...
UITableView显示数据,增加数据,删除数据及移动数据行
UITableView和html中的table有点类似的,也有header和footer和body,row。下面给出一个demo // // TableViewTestViewController.m // iosstudy2024 // // Created by figo on 2024/12/9. //#import "TableViewTestViewController.h"interfa…...
金智塔科技喜获CCF中国数字金融大会 GraphRAG竞赛二等奖
12月7日,CCF 首届中国数字金融大会GraphRAG竞赛在上海落下帷幕,金智塔科技(团队名称:塔塔向前冲)从众多参赛队伍中脱颖而出,喜获二等奖。 CCF 首届中国数字金融大会由中国计算机学会主办,中国计…...
方案解读:数字化扩展中如何提升多云应用安全能力?
越来越多企业选择上云,拥抱数字化转型。数据显示,在过去一年中,将应用托管至六种不同环境中的企业比例已经翻倍,达到令人震惊的38%。与此同时,应用和流经其的关键数据已成为日益复杂的网络攻击的首选目标,且…...
“年轻科技旗舰”爱玛A7 Plus正式发布,全国售价4999元
12月18日,备受行业瞩目的“A7上场 一路超神”爱玛旗舰新品发布会在爱玛台州智造工厂盛大举行。 作为年末“压轴产品”的“两轮豪华轿跑”爱玛A7Plus重磅上场,以“快、稳、帅、炫、智、爽”六大超神技惊艳四座,不仅践行了爱玛科技的精品战略&…...
oracle开窗函数笔记、over()笔记
文章目录 开窗函数、组函数、分析函数概念聚合函数和分析函数的区别partition by后面也可以跟多个字段 开窗函数一定要加 聚合函数、或分析函数吗,否则会报错lag()和lead()的用法lag和lead实战开窗函数可以和其他函数一起使用吗? TODO开窗函数中的count(1)是什么意…...
【HarmonyOS】HarmonyOS 和 Flutter混合开发 (一)之鸿蒙Flutter环境安装
【HarmonyOS】HarmonyOS 和 Flutter混合开发 (一)之鸿蒙Flutter环境安装 一、前言 flutter作为开源适配框架方案,已经在Android,IOS,Web,Window四大平台进行了适配,一套代码,可以同…...
海外招聘丨卢森堡大学—人工智能和机器学习中的 PI 用于图像分析
雇主简介 卢森堡大学立志成为欧洲最受推崇的大学之一,具有鲜明的国际化、多语言和跨学科特色。 她促进研究和教学的相互影响,与国家息息相关,因其在特定领域的研究和教学而闻名于世,并成为当代欧洲高等教育的创新典范。 她的核…...
LeetCode hot100-85
https://leetcode.cn/problems/coin-change/?envTypestudy-plan-v2&envIdtop-100-liked 322. 零钱兑换 已解答 中等 相关标签 相关企业 给你一个整数数组 coins ,表示不同面额的硬币;以及一个整数 amount ,表示总金额。计算并返回可以凑…...
linux 内核数据包处理中的一些坑和建议
1、获取IP头部 iph ip_hdr(skb); struct sk_buff { ...... sk_buff_data_t transport_header; /* Transport layer header */ sk_buff_data_t network_header; /* Network layer header */ sk_buff_data_t mac_header; /* Link layer header */ ...... } 1࿰…...
C++ 的衰退复制(decay-copy)
目录 1.什么是衰退复制(decay-copy) 1.1.推导规则 1.2.LWG issue 929 1.3.想象中的 decay_copy 2.decay-copy 与 auto 2.1.为什么引入衰退复制 2.2. 成为 C 23 的语言特性 3.应用场景 4.总结 1.什么是衰退复制(decay-copy࿰…...
vue-cli 5接入模块联邦 module federation
vue-cli 5接入模块联邦 module federation 模块联邦概念实现思路配置遇到的问题: 模块联邦概念 模块联邦由webpack 5最先推出的,让应用加载远程的代码模块来实现不同的Web应用共享代码片段.模块联邦分为两个角色,一个是生产者,一个是消费者.生产者暴露代码供消费者消费 (用一个…...
【Rust自学】3.6. 控制流:循环
3.6.0. 写在正文之前 欢迎来到Rust自学的第三章,一共有6个小节,分别是: 变量与可变性数据类型:标量类型数据类型:复合类型函数和注释控制流:if else控制流:循环(本文) 通过第二章…...
【第八节】git与github
目录 前言 一、 远程仓库概述 二、 创建、配置、连接推送远程仓库 2.1 在 GitHub 上创建仓库 2.2 生成 SSH Key 2.3 验证 SSH 连接 2.4 本地初始化仓库 2.5 推送本地仓库到远程 三、 管理远程仓库 3.1 查看远程仓库 3.2 提取远程仓库更新 3.3 推送更新到远程仓库 …...
win如何访问Linux数据库(本地)
对于数据库的学习,我们都是在localhost主机上进行操作,当我们在Linux系统上安装数据库时,我们就有了尝试在win上去访问Linux上的数据库的想法。 数据库中的用户: 我们都知道数据库中顶级的用户为root,在做创建用户的联…...
Windows设置所有软件默认以管理员身份运行
方法一、修改注册表 winr打开运行,输入“regedit”打开注册表; 打开此路径“计算机HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem”; 在右侧找到“EnableLUA”,将其值改为0,重启电脑。 …...
前端 计算发布时间(如“1小时前”、“3天前”等)
这样效果,在c端比较常见,通过前端也可以处理 代码如下: // 计算 小时timeAgo(createTime) {// 将 createTime 字符串转换为 Date 对象 const createDate new Date(createTime);const now new Date();const diffInSeconds Math.floor((now…...
shardingjdbc 4.0.0 seata分布式事务Failed to fetch schema问题
报错 12-18 15:18:35.931 [ERROR] [i.s.r.d.s.s.cache.AbstractTableMetaCache:63 ] [traceId:][spanId:] - get table meta of the table wh_stock_log error: Failed to fetch schema of xxx java.sql.SQLException: Failed to fetch schema of wh_stock_logat io.seata.r…...
RoPE → Attention 完整
好的,我帮你把之前的 “Transformer 输入 → RoPE → Attention” 全流程整理成一个完整的、连贯的文档。每一步都包含 数学表达 PyTorch 示例代码,方便直接参考或实现。Transformer 前向 RoPE 全流程1️⃣ 输入:Token → Embedding 数学表…...
小白程序员必看!从零理解并动手搭建智能体,附收藏指南
小白程序员必看!从零理解并动手搭建智能体,附收藏指南 本文深入浅出地讲解了智能体的定义、运行逻辑及搭建方法,适合小白和程序员学习。文章从智能体的标准定义入手,通过腾讯元宝的实例,阐述了智能体的核心运行逻辑——…...
seo推广外包需要多少投入_seo推广外包如何避免被算法惩罚
SEO推广外包需要多少投入_SEO推广外包如何避免被算法惩罚 在当今数字化经济时代,SEO(搜索引擎优化)推广已经成为企业提升网站流量和品牌知名度的重要手段。随着搜索引擎算法的不断更新,企业在进行SEO推广外包时,不仅需…...
VEGA_SH1106嵌入式OLED驱动库:SH1106与XFP1116-07A适配指南
1. VEGA_SH1106库概述:面向XFP1116-07A型1.3英寸OLED显示模块的嵌入式驱动框架VEGA_SH1106是一个专为XFP1116-07A规格1.3英寸单色OLED显示屏设计的轻量级嵌入式驱动库。该库基于Adafruit SH1106图形库(Adafruit-GFX-Library)进行适配与裁剪&a…...
跨设备同步:OpenClaw+千问3.5-9B多终端配置指南
跨设备同步:OpenClaw千问3.5-9B多终端配置指南 1. 为什么需要跨设备同步OpenClaw配置 去年冬天,我在MacBook Pro上配置了一套基于OpenClaw千问3.5-9B的自动化工作流,用于处理日常的文档整理和会议纪要生成。但当我想在家用Windows台式机上继…...
贾子 Kucius 的证伪主义批判与学术评价体系重构:文明持续运行的新范式
贾子 Kucius 的证伪主义批判与学术评价体系重构:文明持续运行的新范式摘要 贾子 Kucius 系统批判了波普尔证伪主义作为西方中心论话语霸权的“证死你,证伟我”双标本质,揭示其逻辑悖论与认知殖民机制。他提出以“文明持续运行能力”替代“可证…...
别再死磕公式了!用Diffusers库5分钟搞懂Stable Diffusion的CFG引导(附代码避坑)
5分钟实战:用Diffusers库玩转Stable Diffusion的CFG参数调优 你是否曾经盯着Stable Diffusion生成的图片皱眉头——明明输入了详细的提示词,结果却像在开盲盒?别急着怀疑人生,问题可能出在那个神秘的guidance_scale参数上。今天我…...
单线程 Redis 的高性能之道
引言Redis 以单线程模型处理网络请求与命令操作,却能在高并发场景下保持惊人的吞吐能力。这背后离不开三大基石:全内存存储、高效数据结构(哈希表、跳表等)以及 epoll 多路复用机制,让单线程能够高效处理海量连接。 随…...
H5动态公共导航栏
CommonNavBar.vue: <template><divclass"common-nav-bar":style"navBarStyle"><!-- 状态栏占位,可以按项目需要删除或调整高度 --><div class"status-bar-placeholder"></div><!-- 主导…...
2026届学术党必备的六大AI科研工具解析与推荐
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 一键生成论文功能通过借助先进人工智能算法得以达成,它可依照用户输入的标题&am…...
