谈谈privoxy:关于广告过滤和自动代理切换

谈谈privoxy:关于广告过滤和自动代理切换转载自品略图书馆 http www pinlue com article 2020 04 0206 031010213243 htmlprivoxy 广告过滤和自动代理切换最初用 Privoxy 是因为七星庐的文章强大的代理调度器代理 Privoxy 用作代理切换 后来顺便也用起它广告过滤的功能 能实现这两个功能的软件 插件很多 而且用起来往往比 privoxy 来的方便 比如 foxpro

转载自品略图书馆 http://www.pinlue.com/article/2020/04/0206/0310102132438.html

privoxy:广告过滤和自动代理切换

最初用Privoxy是因为七星庐的文章强大的代理调度器代理Privoxy,用作代理切换,后来顺便也用起它广告过滤的功能。

能实现这两个功能的软件/插件很多,而且用起来往往比privoxy来的方便,比如foxproxy和adblock。我之所以用privoxy是因为以下原因:

作为系统的全局自动代理切换器。GNOME和环境变量的代理设置不是对任何软件都管用,PAC也不是哪里都行

广告过滤可用于任何浏览器,并且容易定制,改改网页什么的

配置是繁琐些,但用起来确实不错。

安装用源里的就可以,默认是作为系统服务启动的。装好后请将浏览器代理设置为127.0.0.1:8118,以便测试。地址栏输入“p.p”可以查看配置、文档、调试等等。

代理切换

本部分内容主要来自七星庐的文章,更详细的解释请看原文链接。配置文件在/etc/privoxy目录下。编辑其中的config文件,加入一行

actionsfile pac.action

这表示添加一个动作文件,文件名是pac.action。在同目录下建立文件“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.cn202.117.255.222.24.211.70#==========SSH代理=========={ssh}.launchpad.net#==========GAE代理=========={gae}.webupd8.org222.24.211.70

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

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

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

广告过滤

广告过滤用的文件要多些,可能还需要filter文件。先看一个最基本的只使用action文件和block动作的广告过滤。直接编辑user.action文件,添加

{+block}.5622.cn/.*\.swf$

这样5622.cn和所有flash都被阻止了。如果你还想看某些flash视频,可以在后面再-block,这会覆盖前面的设置,如

{-block}static.youku.com/.*\.swf$

配合filter文件和action文件,可以实现对网页内容的替换,从而屏蔽某些不想要的内容。先编辑config文件,去掉”filterfile user.filter”这行的注释,然后在同目录下建立user.filter文件,写入

FILTER: iframes@</head>@<style type=”text/css”>\n iframe {display:none; !important}\n</style>\n$0@

这样就定义了一个名为“iframe”的过滤器。之后再编辑user.action文件,添加

{+filter{iframe}}.filestube.com

这表明对filestube应用“iframe”这个过滤器。filter书写复杂些

除了过滤广告,还能做做地址转向,比如

{+redirect{s@^http://[^/]*/.*?&q=(.*)@http://www.google.com/search?hl=en&q=$1@}}.google.com.hk/search{+redirect{s@^http://[^/]*(/$|$)@http://www.google.com/ncr@}}.google.com.hk/$

其它内容

以普通用户启动

先关掉privoxy服务,可以用sysv-rc-conf或者直接删掉/etc/init.d/privoxy文件。然后将/etc/privoxy目录的内容复制到家目录下,比如~/.privoxy。编辑config文件,将“confdir /etc/privoxy”改为

confdir /home/用户名/.privoxy

然后用下面命令启动

privoxy –no-daemon $HOME/.privoxy/config

有身份验证的代理

先获得“用户名:密码”的base64编码,方法如下

perl -e “use MIME::Base64; print encode_base64(“用户名:密码”);”

然后这样写alias

proxy = +forward-override{forward 127.0.0.1:808} +add-header{Proxy-authorization: Basic <auth>}

将<auth>替换为上面得到的base64编码的用户名和密码

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233958.html原文链接:https://javaforall.net

(0)
上一篇 2025年6月8日 下午12:01
下一篇 2025年6月8日 下午12:22


相关推荐

  • C++线程池实现_java线程池状态

    C++线程池实现_java线程池状态在计算机程序中,线程是一种很重要的资源,使用的恰当可以极大的提高程序的效率,也就是多线程的使用,但是多线程会让应用程序变得异常复杂,会占用大量的系统资源。就像QQ表情一样,每一个QQ表情的闪动都需要构建一个线程,如果用户使用了大量的表情(GIF),将会有多少个线程在运行,系统的性能将大大减少,甚至导致死机。在这种情况下,多线程变得不太合适了,那么什么机制适用于这种情况下呢,这就是线程池。通常情

    2026年3月10日
    3
  • python程序的热部署实现[通俗易懂]

    python程序的热部署实现[通俗易懂]pytho程序的热部署知乎上面的回答真正意义上的代码热部署应该是类似erlang那样的,将代码更新到节点后不停服务,不断连接的自动应用新代码。autoreload(代表django的autoreload)什么的还是会造成业务瞬间中断。我感觉是可以从wsgi容器级别上实现,比如更新代码后检测到文件变更,然后通知容器创建新的wsgiapplication的实例,之后所有新的请求都发送到新的wdgi…

    2022年5月11日
    43
  • 最佳的MongoDB客户端管理工具

    最佳的MongoDB客户端管理工具最佳的 MongoDB 客户端管理工具

    2026年3月18日
    2
  • 获取和分析Dump的几种工具简介[通俗易懂]

    获取和分析Dump的几种工具简介[通俗易懂]最近在进一步学习support技能的时候,了解到分析Dump的重要性,经过学习,做一些笔记。一、什么是Dump文件。Dump文件时进程的内存镜像。可以把程序的执行状态保存到Dump文件中。Dump文件分为内核模式Dump和用户模式Dump。其中内核模式Dump是操作系统创建的崩溃转储,例如蓝屏Dump。而在我们调试或Troubleshooting过程中使用的Dump是用户模式Dump,又分为F…

    2022年10月2日
    5
  • FreeCMS视频教程 远程发布静态页面

    FreeCMS视频教程 远程发布静态页面

    2022年2月21日
    49
  • 摩尔斯电码对应表

    摩尔斯电码对应表对应字母和数字如下 数字对应中文 零壹贰叁肆伍陆柒捌玖

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号