首页 > 其他分享 >Privoxy 工具

Privoxy 工具

时间:2023-04-13 16:35:56浏览次数:32  
标签:127.0 HTTP 0.1 代理 forward Privoxy 工具

Privoxy 是一个 代理软件

简单说,就是进出你电脑的流量守门人。借由 Privoxy,我们可以控制出去的请求,还可以改写返回的响应。不必要的请求 – 比如视频广告的地址、图片广告的地址,我们可以直接 block 掉;不必要的响应内容 – 比如页面中的文字广告,我们可以借由 filter 过滤掉,不让它们在浏览器页面上显示。

可以通过代理,转发内网发起的请求,获取外网的接口数据

安装 Privoxy

Privoxy 支持的平台非常多:

针对各个平台,Privoxy 均提供有安装说明

下面简单提一下几个平台。

  1. Windows 平台

    Windows 平台下的安装通常都可视化,下载安装包,双击,然后根据提示,一路点击即可安装。

  2. Linux 平台

    多数时候可以通过仓库安装。

    比如 Ubuntu:

     
    sudo apt-get install privoxy
    

    又比如 openSUSE:

     
    sudo zypper install privoxy
    
  3. mac 平台

    mac 上如果有安装 homebrew,则可以执行 brew install privoxy 来安装 Privoxy。

实在喜欢折腾的,就下载源代码自己编译安装。

代理转发

配置文件说明

主配置文件

  对于 Windows 系统,主配置文件放置在跟 privoxy.exe 相同的目录下,文件名为 config.txt

  对于“Linux/Unix”,主配置文件放置在 /etc/privoxy 目录下,文件名为 config

  Privoxy 的配置文件,都是纯文本文件。如果某一行是以 井号 # 开头,说明这一行是注释。

如何定制 Privoxy 的“监听端口及绑定地址”

  先来说最最基本的配置——设定 Privoxy 的监听端口号和绑定的地址。

  介绍这个的目的,是让你先稍微熟悉一下——如何修改 Privoxy 的主配置文件。因为后面的定制,需要经常去修改它。

  Privoxy 的监听端口号,默认是 8118,默认绑定的地址是 127.0.0.1(这个地址代表“当前系统”)。由于默认是绑定在 127.0.0.1 这个地址,所以只有当前系统的软件才可以连接到 Privoxy 的监听端口。

  如果你希望其它操作系统的软件也可以连接到 Privoxy 的监听端口,可以修改绑定的地址,把 127.0.0.1 改为 0.0.0.0 表示绑定在“任意地址”。

  操作步骤如下:

  找到“主配置文件”,用你比较顺手的文本编辑器打开,在尾部增加如下一行

 
listen-address  0.0.0.0:8118

  如果你不喜欢 8118 这个端口号,也可以换成别的。

  修改完之后,启动 Privoxy,然后在命令行使用 netstat 命令,就可以看到多出来一个 8118 的端口。

如何定制“HTTP 代理转发”

  “HTTP 代理转发”就是说:Privoxy 把自己收到的 HTTP 请求转给另一个 HTTP 代理,再由该代理转到你最终访问的网站。

  HTTP 代理转发的语法如下(把该语法添加在“主配置文件”尾部):

 
forward  target_pattern  http_proxy:port

  语法解释:

  该命令分3段,各段之间用空格分开(可以用单个空格,也可以多个空格)

  第1段的 forward 是固定的,表示:这是 HTTP 转发

  第2段的 target_pattern 是个变量,表示:这次转发只针对特定模式的 HTTP 访问目标

  第3段的 http_proxy:port 也是变量,表示:要转发给某个 HTTP 代理(IP 冒号 端口)。如果“第3段”只写一个单独的小数点,表示直连(不走代理)。

举例1

 
forward  /  127.0.0.1:8080

上述这句表示:

把所有的 HTTP 请求都转发给本机(127.0.0.1 表示本机)的 8080 端口

target_pattern 设置为“单个斜线”,表示匹配“所有的 URL 网址”

举例2

 
forward  .google.com/  127.0.0.1:8080

上述这句表示:

如果 HTTP 请求是发送给 .google.com 这个域名的下级域名,那么就把该 HTTP 请求转发给本机(127.0.0.1 表示本机)的 8080 端口

.google.com 的写法,可以匹配如下这类域名:

www.google.com

mail.google.com

plus.google.com

(以此类推)

补充说明:

本例子中,target_pattern 变量是 .google.com/

这个写法表示:该变量只匹配域名,不匹配网页的路径。根据 Privoxy 的语法规则,最末尾的斜线可以省略。

因此,本例子也可以等价地写为:

 
forward  .google.com  127.0.0.1:8080 

举例3

 
forward-socks5 .onion localhost:9050 .

上述这句表示:

把顶级域名为 .onion 的 HTTP 请求都转发给本机(localhost 也可以用来表示本机,相当于 127.0.0.1)的 TOR SOCKS 端口

补充说明:

普通互联网的域名,顶级域名不会是 .onion

这个顶级域名,是专门用于 TOR 暗网的。因此,本例子就是用来转发 TOR 暗网的 HTTP 请求,让 Privoxy 把这类请求转给 TOR 的 SOCKS 端口。

如何定制“SOCKS 代理转发”

  所谓的“SOCKS 代理转发”,就是说:Privoxy 把自己收到的 HTTP 请求转给另一个 SOCKS 代理;如果需要的话,还可以由这个 SOCKS 代理再转给另一个 HTTP 代理。

示意图1

(先转发到 SOCKS 代理,然后转到目标站)

 
   |====>|       |====>|       |====>|
浏览器|     |Privoxy|     |SOCKS代理|     |目标网站
   |<====|       |<====|       |<====|

   |此阶段是 |       |此阶段是 |       |此阶段是 |

   |HTTP |       |SOCKS|       |HTTP |

示意图2

(先转发到 SOCKS 代理,再转发到某个 HTTP 代理,最后才转到目标站)

 
   |====>|       |====>|       |====>|      |====>|
浏览器|     |Privoxy|     |SOCKS代理|     |HTTP代理|     |目标网站
   |<====|       |<====|       |<====|      |<====|

   |此阶段是 |       |此阶段是 |       |此阶段是 |      |此阶段是 |

   |HTTP |       |SOCKS|       |HTTP |      |HTTP |

  SOCKS 代理转发,包括如下几种语法:

 
forward-socks4   target_pattern  socks_proxy:port  http_proxy:port
forward-socks4a  target_pattern  socks_proxy:port  http_proxy:port
forward-socks5   target_pattern  socks_proxy:port  http_proxy:port
forward-socks5t  target_pattern  socks_proxy:port  http_proxy:port

  语法解释:

  该命令分4段,各段之间用空格分开(可以用单个空格,也可以多个空格)

  第1段是以 forward 开头的,表示 SOCKS 转发的类型。目前支持 4 种类型。

前面3种(forward-socks4 forward-socks4a forward-socks5)分别对应不同版本的 SOCKS 协议。

最后一种 forward-socks5t 比较特殊,是基于 SOCKS5 协议版本,但是加入针对 TOR 的扩展支持(优化了性能)。只有转发给 TOR 的 SOCKS 代理,才需要用这个类型。

  第2段的 target_pattern 是个变量,表示:这次转发只针对特定模式的 HTTP 访问目标

  第3段的 socks_proxy:port 也是变量,表示:要转发给某个 SOCKS 代理(IP 冒号 端口)

  第4段的 http_proxy:port 也是变量,表示:在经由前面的 SOCKS 代理之后,再转发给某个 HTTP 代理(IP 冒号 端口)

第4段如果写成一个单独的小数点,相当于“示意图1”;如果第4段填写了具体的 IP 和端口,相当于“示意图2”。

举例1

  如果你本机安装了 TOR Browser 软件包,可以使用如下语法,把 Privoxy 收到的 HTTP 请求转发给 TOR Browser 内置的 SOCKS 代理。

 
forward-socks5  /  127.0.0.1:9150  .

根据“访问的网站”分流到不同的FQ通道

 
forward  /  .
forward  .youtube.com  127.0.0.1:8000
forward-socks5  program-think.blogspot.com  127.0.0.1:9150  .

第1行表示:因为匹配的目标是 / 表示匹配“所有的网址”。所以这条可以看成是“默认规则”。(在 Privoxy 里面,“后面的规则”会覆盖“前面的规则”,所以“默认规则”总是写在开头)。

第2行表示:凡是 .youtube.com 的下级域名都走 127.0.0.1:8000 的 HTTP 代理。

第3行表示:访问 program-think.blogspot.com 站点都走 127.0.0.1:9150 的 SOCKS 代理。(提醒一下:此行末尾的小数点别漏看了)

例如,安装SSCap4.0以后,内网不可以访问,可以修改配置文件:

 
forward-socks5 / 127.0.0.1:1080 .
forward  18.16.*.*  .

这样18.16..的内网就即可访问。

代理切换

如果想把不同的网址切换到不同的代理,就使用action功能,可以使用user.action文件,

或者自定义一个文件,在config中添加下文,这表示添加一个动作文件,文件名是pac.action。在同目录下建立文件“pac.action”,并写入配置。

 
actionsfile pac.action

示例:

 
{{alias}}
direct      = +forward-override{forward .}
ssh         = +forward-override{forward-socks5 127.0.0.1:7000 .}
gae         = +forward-override{forward 127.0.0.1:8000} 
default     = direct
#==========默认代理==========
{default}
/
#==========直接连接==========
{direct} 
.edu.cn
202.117.255.
222.24.211.70
#==========SSH代理==========
{ssh}
.launchpad.net
#==========GAE代理==========
{gae}
.webupd8.org
222.24.211.70

上面的{{alias}}部分定义了一些缩写,注意http代理和socks代理的写法不同。

后面的如{direct}部分定义对哪些地址应用这个代理。其中“/“表示全部地址。注意一个URL的域名部分只能用glob匹配,而地址部分可以用复杂的正则表达式。具体可以看Privoxy的文档

这些规则在后面的会覆盖前面的,比如222.24.211.70实际是以gae代理访问的。这样可以实现一些稍微复杂的功能

转载:https://www.cnblogs.com/hongdada/p/10787924.html

标签:127.0,HTTP,0.1,代理,forward,Privoxy,工具
From: https://www.cnblogs.com/zhang1f/p/17315292.html

相关文章

  • java故障处理(二)可视化工具
    一、JConsole:Java监视与管理控制台命令行:jconsoleJConsole是一款基于JMX的可视化监视、管理工具。它的主要功能是通过JMX的MBean(ManagedBean)对系统进行信息收集和参数动态调整。JMX是一种开放性的技术,不仅可以用在虚拟机本身的管理上,还可以运行于虚拟机之上的软件中,......
  • java故障处理(一)基础命令行工具
     一、基础命令行工具1.jps:虚拟机进程状况工具可以列出本机正在运行的虚拟机进程,并显示主类1.1.选项:选项作用-q省略主类,只显示id-l显示主类全名,或jar包路径-m显示传递给主类main方法的参数-v输出jvm启动时所有参数2.jstat:虚拟机统计信息监控用于监......
  • 电商流量分析怎么做?试试这款数据工具 DataLeap!
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群作为成熟的电商模式,货架场景可以让商家以更低的门槛入驻,让消费者完成更高销量的购买和复购。在这一场景下,运营人员每天都需要根据数据来做决策,精准识别每一份流量的效果是最重要的日常运营洞......
  • 【3D建模工具】上海道宁与McNeel为您提供强大的专业3D造型软件
     Rhino可以对NURBS曲线、曲面、实体、细分几何图形(SubD)、点云和多边形网格进行创建、编辑、分析、记录、渲染、动画制作与转换 只要硬件条件允许不受复杂度、阶数与尺寸大小的限制  Rhino7使用SubD工具可以建立有机形状使用Rhino.Inside.Revit做......
  • 河北稳控科技多通道振弦传感器无线采集仪与参数配置工具连接
    河北稳控科技多通道振弦传感器无线采集仪与参数配置工具连接VS101~VS432设备配备了专门的参数配置工具SETP来完成设备工作参数的查看和修改工作。 连接前的准备工作(1)数据接口与计算机连接使用标配的通讯线与计算机RS232接口连接。若需基于手机网络发送数据,请在开机前......
  • ansible批量管理工具学习
    ansible批量管理工具学习(一)小张的知识杂货铺 2022-12-0319:48 发表于浙江收录于合集#ansible2个centos7配置yum源mkdirbaklsmv*.repobak/wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.aliyun.com/repo/Centos-7.repoyumcleanallyummakeca......
  • 最新版本 Stable Diffusion 开源 AI 绘画工具之图生图进阶篇
    (✨目录)......
  • 50+个做自媒体的工具,总有一款满足你
    90%的博主都在用!不管你是新入门【编导、摄影、运营、互联网、导演】的还是已经摸爬滚打多年的职场老员工遇见这么齐全的【工具大全】一定要收藏起来传送门50+个做自媒体的工具,总有一款满足你......
  • 分享15个对Web开发人员有用的高效工具网站
    1.代码转图片网址:https://carbon.now.sh/使用Carbon创建和分享源代码的精美图像。它提供了多种代码风格和主题。2.JavaScript正则表达式可视化工具网址:https://jex.im/regulex/#!flags=&re=%5E(a%7Cb)*%3F%24   你是那种因为看起来复杂而不想学习正则表达式的人吗......
  • CliToolkit 工具
    目标&背景在游戏开发过程中,通常我们会为了更好的测试、校验逻辑正确性等,开发很多工具,最常见的就是GM1指令,以及一些为运营同学开发的运营工具,如:发送邮件,开启活动等等这样我们就可以将工具分为两大类游戏内建GM指令部分工具可以直接丢进UnityEditor开发运营工具(We......