CentOS 7 搭建 TinyProxy 代理

article/2025/10/8 19:23:08

Tinyproxy是一个轻量级的用于POSIX操作系统的http/https代理守护进程。在设计之初就遵循着更快并且更小的原则。在相关的运用案例中,它是一种理想的解决方案,例如在一个需要全部HTTP代理特性的嵌入式部署的案例中。然而,对于需要更大的代理案例来说,它是不可用的。

Tinyproxy本身是小巧的,几乎不需要占用系统资源。安装后,内存占用通常在2M左右,CPU负载随同步连接的数量线性增加(取决于连接的速度)。因此,Tinyproxy可以在一台旧机器上运行,也可以在网络设备上运行,比如基于linux的宽带路由器,而不会对性能产生任何明显的影响。

安装环境:阿里云CentOS7 香港服务器

1. 安装 TinyProxy

Red Hat Enterprise Linux或其衍生产品(如CentOS)上,可以通过运行yum install tinyproxyEPEL存储库安装Tinyproxy

yum -y install tinyproxy

2. 配置 TinyProxy

vim /etc/tinyproxy/tinyproxy.conf

修改 Port 端口,默认为 8888

Port 12801

注释掉 Allow,表示允许所有人访问代理

#Allow 127.0.0.1

隐藏掉Via请求头部,去掉下面的注释

DisableViaHeader Yes

更多配置项,下面是列举一些配置文件默认的,不需要配置:

PidFile "/var/run/tinyproxy/tinyproxy.pid"

LogFile "/var/log/tinyproxy/tinyproxy.log"

LogLevel Info

MaxClients 100

MinSpareServers 5

MaxSpareServers 20

StartServers 10

3. 启动 TinyProxy

systemctl start tinyproxy.service

更多命令如下:

systemctl restart tinyproxy.servicesystemctl stop tinyproxy.servicesystemctl status tinyproxy.servicesystemctl enable tinyproxy.service

4. 关闭防火墙或开放端口访问

方式1:关闭防火墙

/etc/init.d/iptables stop

方式2:开放端口访问

iptables -A INPUT -p tcp --dport 12801 -j ACCEPT

重启防火墙

/etc/init.d/iptables restart

注意:若采用的阿里云、腾讯云、AWS等云服务器,记得要在安全策略里开放端口号

5. 验证生效

1)命令行测试验证(服务器本地测试)

使用TinyProxy拉取google.com的页面信息:

curl -x 127.0.0.1:12801 google.com

可以看到成功拉取了谷歌的页面信息,说明我们的配置是成功。

2)Firefox测试(本机测试)

打开火狐浏览器,选择:选项-网络代理-设置,进入配置界面,根据下图进行配置:

配置完成后,我们使用百度搜索IP,搜索结果如下:

IP地址是我们服务器的地址,说明代理正常访问。然而,如果我们访问谷歌,会得到如下页面:

 

我们无法访问谷歌,不但如此,其他类似的网站我们也是无法访问的。这是为什么?首先,我们看下面的图,当我们想要访问外网的时候,这个请求数据包必然会经过防火墙的检查:

现在我们使用代理,但是依然需要经过防火墙的检查:

由于客户端与TinyProxy之间的请求数据是没有加密的,所以我们无法通过检查。

有人可能疑问,HTTPS是加密的请求,那么为什么不能绕过防火墙呢?

这是因为客户端在进行加密通信以前,需要进行连接握手。在连接握手时,身份认证证书信息(即服务器的公钥)是明文传输的,墙此时就会阻断特定证书的加密连接。

 

参考链接:

https://segmentfault.com/a/1190000011532677

http://blog.51cto.com/tianshili/1733869

http://tinyproxy.github.io/

理解$hadow$ocks与Privoxy原理


http://chatgpt.dhexx.cn/article/BFG9ie4d.shtml

相关文章

使用TinyProxy搭建代理服务器

背景 办公电脑所在网络无法连接外网,机房服务器可以连接外网,通过服务器代理上网; 一、CentOS下TinyProxy安装–搭建代理服务器 TinyProxy是个轻量级简单的HTTP/HTTPS代理程序,GitHub和官网,安装方式这里主要介绍两…

centos7 搭建 tinyProxy代理

文章转载于:https://www.cnblogs.com/gezp/p/14962924.html 一、简介 Tinyproxy是一个轻量级的用于POSIX操作系统的http/https代理守护进程。在设计之初就遵循着更快并且更小的原则。在相关的运用案例中,它是一种理想的解决方案,例如在一个需…

使用TinyProxy搭建代理

本次基于Ubuntu 18.04搭建 0x01.下载TinyProxy(服务器) 步骤一:安装TinyProxy sudo apt install tinyproxy 步骤二:如 安装后提示 Use apt autoremove to remove them.错误 ,请先执行 sudo apt autoremove 命令,再执行sudo a…

Ubuntu tinyproxy

安装 yum install tinyproxy #失败 dnf install tinyproxy #失败yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm #成功 ubuntu 新系统 #设置密码 sudo passwd #登录 su #更新系统 apt-get update apt-get upgrade#安装tinyproxy apt-g…

利用tinyproxy云服务器配置成代理服务器

云服务配置成代理服务器 什么是正向代理? 简而言之就是: 隐藏自己的客户端,通过一个代理服务器来对目标服务器进行访问。服务器端不知道是你在对他进行请求访问。 如果一个服务器限制了ip来源,可以尝试使用正向代理来进行访问。 实战: 云服务器IP &…

腾讯云服务器Ubuntu、Centos7配置为代理服务器,使用tinyproxy

1.安装tinyproxy 1.1Ubuntu系统 apt-get install tinyproxy 1.2Centos7系统​​​​​​​ yum -y install tinyproxy 2.修改tinyproxy配置 vi /etc/tinyproxy/tinyproxy.conf 主要有两处配置 2.1端口配置 注意需要在你的防火墙中开启你设置的端口号 这是默认端口号…

轻量级的开源代理服务器Tinyproxy安装与配置

TinyProxy Tinyproxy 是一个面向 POSIX 系统开发的轻量级的开源 HTTP/HTTPS 代理守护进程,其从底层开始进行设计,保证了在高速的同时体积依然很小。它很适合用于需要完整 HTTP 代理特性,但系统资源又不足以运行大型代理的场景,比…

最新TinyProxy联通卡 停机卡tiny免流模式

tiny模式,默认接点,具体自测 首先下载tiny:https://wwa.lanzous.com/iV6Qdm8qgre 打开tiny,点击右上角将模式复制粘贴进去,完成保存,先查询现有的流量,然后下载一个小软件,过一段时…

java 取交集方法retainAll

java 取交集方法retainAll 有两个集合newCoures和oldCourses,判断这两个集合是否包含相同的对象或元素, 可以使用retainAll方法:oldCourses.retainAll(newCoures)。 如果存在相同元素,oldCourses中仅保留相同的元素。 如果不存…

Java List retainAll 记录坑

描述 我们知道使用List的retainAll方法可以获取两个集合的交集&#xff0c;但是在某些情况下方法的返回值并非我们想象那样。 现象 先看两个例子&#xff1a; public static void main(String[] args) {List<String> a new ArrayList<>();a.add("READ&quo…

关于ArrayList中的retainAll的一些思考

思考 我们都知道&#xff0c;比较两个对象的是否相同&#xff0c;一般是先通过hashcode方法比较hash值是否相等&#xff0c;如果相同&#xff08;哈希碰撞&#xff09;然后通过equals进行比较各个属性值是否相同&#xff0c;如果都相同&#xff0c;那么才是真正的相同。 我们…

java集合中retainAll方法

我们先来看看retainAll的源码 public boolean retainAll(Collection<?> c) {return batchRemove(c, true); } private boolean batchRemove(Collection<?> c, boolean complement) {//获得当前对象的所有元素final Object[] elementData this.elementData;//w…

Java取交集方法retainAll()

1 retainAll方法示例 如何判断一个集合与另外一个集合中有相同的元素 例如A.retainAll(B); 如果AB中有相同的元素&#xff0c;那么A中会保留相同的元素&#xff0c;将不同的元素移除 如果AB中没有相同的元素&#xff0c;那么会返回[] 当A中的元素有变化时会返回true&#…

Java中取多个集合的交集——retainAll()

Java中取多个集合的交集 集合 Collection 接口中定义了 retainAll()方法 retainAll() Retains only the elements in this set that are contained in the specified collection (optional operation). In other words, removes from this set all of its elements that are …

测试工程师面试题答案分类详解

数据库最基本的增&#xff0c;删&#xff0c;改&#xff0c;查&#xff0c; 假设表结构为&#xff1a; create table student( sid number, sname varchar2(50) ) 1.增加&#xff1a;insert into student values(1,张三) 2.删除&#xff1a;delete from student 3.…

软件测试工程师面试题及答案

软件测试工程师试题 一、填空 1、软件测试阶段的基本任务应当是根据软件开发各阶段的 和程序的 &#xff0c;精心设计一批“高产”的测试用例&#xff0c;利用这些测试用例 &#xff0c;找出软件中潜藏的各种错误和缺陷。 2、测试用例不仅要选用合理的测试输入数据&…

测试笔试题

做了几套题&#xff0c;个别题竟然错了。汗颜。摘录下&#xff1a; 1.有关字节换算的 字节 byte&#xff1a;8个二进制位为一个字节(B)&#xff0c;最常用的单位&#xff0c;字节也就是B。 1KB (Kilobyte 千字节)1024B 1MB (Megabyte 兆字节 简称“兆”)1024KBA 1GB (Giga…

测试工程师面试题

选择题 进行兼容性测试的目的在于&#xff08;&#xff09; A、测试程序在不同的平台上可以正常运行B、测试程序与平台上的其他程序可以同时正常运行C、测试数据格式在不同应用程序之间可以通用D、以上选项都正确 某个 Android 应用耗电问题严重&#xff0c;以下那个是可能的…

软件测试工程师面试题汇总

小编热衷于收集整理资源&#xff0c;记录踩坑到爬坑的过程。希望能把自己所学&#xff0c;实际工作中使用的技术、学习方法、心得及踩过的一些坑&#xff0c;记录下来。也希望想做软件测试的你一样&#xff0c;通过我的分享可以少走一些弯路&#xff0c;可以形成一套自己的方法…