privoxy
构建科学环境之-用privoxy来pac
Privoxy是一个 HTTP 协议过滤代理。Privoxy 是有着先进的过滤能力和保护隐私的代理工具,它可以过滤网页内容,管理cookies,控制访问,除广告、横幅、弹出窗口等等,它同时支持单系统和多用户网络。 如你看到这个简介一样,有意思的是它既能屏蔽广告页可以弹出广告,所以,任何事物都有两面性。
除了上述功能外, privoxy很多时候结合其他的隧道工具使用,达到一些保护隐私的作用,本文简单介绍PAC。
安装
ubuntu下可直接用apt安装(mac下面可用brew安装)
sudo apt install privoxy # 安装
管理
sudo systemctl status privoxy # 查看运行状态 sudo systemctl restart|stop|start privoxy # 重启停止
配置文件 privoxy 在ubuntu下的配置文件在/etc/privoxy
下面,下面它的配置有哪些内容
> tree /etc/privoxy /etc/privoxy ├── config ├── default.action ├── default.filter ├── match-all.action ├── regression-tests.action ├── templates │ ├── blocked │ ├── cgi-error-404 │ ├── cgi-error-bad-param │ ├── cgi-error-disabled │ ├── cgi-error-file │ ├── cgi-error-file-read-only │ ├── cgi-error-modified │ ├── cgi-error-parse │ ├── cgi-style.css │ ├── client-tags │ ├── connect-failed │ ├── connection-timeout │ ├── default │ ├── edit-actions-add-url-form │ ├── edit-actions-for-url │ ├── edit-actions-for-url-filter │ ├── edit-actions-list │ ├── edit-actions-list-button │ ├── edit-actions-list-section │ ├── edit-actions-list-url │ ├── edit-actions-remove-url-form │ ├── edit-actions-url-form │ ├── forwarding-failed │ ├── mod-local-help │ ├── mod-support-and-service │ ├── mod-title │ ├── mod-unstable-warning │ ├── no-server-data │ ├── no-such-domain │ ├── show-request │ ├── show-status │ ├── show-status-file │ ├── show-url-info │ ├── show-version │ ├── toggle │ ├── toggle-mini │ ├── untrusted │ └── url-info-osd.xml ├── trust ├── user.action └── user.filter
上面这些配置就不详细介绍了,可以看官方文档 privoxy的所有功能由一系列的Action组成 (链接里有所有支持的Action) 然后,所有的Action的是否启动的配置的入口在config这个文件里面, 通过actionsfile这个指令来导入这些action
actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on. actionsfile default.action # Main actions file actionsfile user.action # User customizations
-
match-all.action
:privoxy默认所有的action都是没有启动的,那么这个文件就是明确设* 置所有的action全部启动 -
default.action
:开发者定制的一些内置规则 -
user.action
:一般,上面那两个action的配置文件是不建议被修改的,除非你是开发者或者非常熟悉privoxy,否则其他的扩展需求就在user.action里面做配置就行 如果你仅仅需要把privoxy+隧道来无障碍上网的话,那么其实可以把上面所有所有的action都注释都可以,比如我并不讨厌templae广告,犯不着再去定制哪些广告过滤策略,而且privoxy还要花额外的时间来处理这些filter和action, 那你就直接把所有的请求扔给隧道就就好了
# actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on. # actionsfile default.action # Main actions file # actionsfile user.action # User customizations forward-socks5t / 127.0.0.1:1080 .
这种情况,一般可以结合浏览器的插件来使用,可以在插件使用gfwlst.txt
来做智能路由。
当然,如果你不想在浏览器里面用插件,或者你没有条件用那种条件在客户端使用gfwlst.txt
(是的,就是你想的那个),比如你希望你的手机也可以聪明的根据网站来路由,
那可以给privoxy定制一个gfwlst.txt
的PAC
gfwlist2privoxy -i gfwlst.txt -f gfwlst.action -p 127.0.0.1:1080 -t socks5
然后在config里面注册这些个action就好了
# actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on. # actionsfile default.action # Main actions file # actionsfile user.action # User customizations # forward-socks5t / 127.0.0.1:1080 . actionsfile gfwlst.action
配置网后重启一下就好了(重启命令见上面),之后把手机设置到这个privoxy的代理地址就好。
总结
最后,如果大家有这个条件可以自由上网,大家还是不要用于来干违法或者打擦边球事,家长下决心要追查的话,是不可能逃掉的。用来学习的话,家长还是有一定的分寸的。 还有一点,privoxy+nat很容易实现定点攻击,可以把客户端所有的上网日志记录下来,用来做广告弹出和一些不合法的事情,如盗取客户端的隐私信息(如账号密码之类),所以想提醒大家出门在外,尽量不要连那种公共的wifi。
回到开篇所说,privoxy它既能屏蔽广告页可以弹出广告,任何事物都有两面性,技术也不例外,一念天堂,一念地狱,劝君自护念之。