Jade Dungeon

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它既能屏蔽广告页可以弹出广告,任何事物都有两面性,技术也不例外,一念天堂,一念地狱,劝君自护念之。