文科生 / 网管 / 看书写字 / 动漫 / 不爱国

Privoxy 使用指南

2018.10.04

Privoxy:系统全局的代理管理工具。

简介精简版

Privoxy 是个很朴素但很强大的工具,基本功能和 switchyomega 类似:根据规则来处理请求流向——但不仅限于影响浏览器,我理解它介于 iptables 和switchyomega 之间。可以把接收到的请求,根据规则转发到下一次代理:比如 1080 常用来翻墙,那么 google 就走1080,百度不需要翻墙就直连。还可以根据规则屏蔽广告和垃圾站点。

简介罗嗦故事版

电脑联网了,就像在大山里的村庄有了一条通往市里的路,我们发起的所有请求,都会通过这条路走出去。有一天你发现这条路走下去,到另一个方向的城市会南辕北辙走不通,但是这条路附近呢又有另一个村子,到那边就能通了,所以你在路上开了一条小路去那个村子借道:第一个城市就是我们平常的请求比如百度淘宝知乎,第二条路走下去可能是谷歌脸书推特油管,也有可能是公司的内网环境,另一个村子就是 vpn,它或许是墙外的节点,或许是公司里那个看门的。


这些路怎么走通往哪里,你知道了,但其他村民可能不知道,他们走到岔路口不知道它是通往哪里的,所以你就立了个路牌了做指向。Privoxy 是这个路牌,switchyomega 也是这个路牌,proxifier 也是路牌之一 ( mac 和 Windows 可用,有 GUI 和请求的详细日志,要花钱的 )。这样理解的话,所有类型的 vpn 该怎么用就都好配置了。


不建议盲目开全局,虽然它可能经常是管用的,但实际上所有流量都走了 " 另一个村子 " 再绕回来,天寒地冻路远不说,而且像网易这样的 " 店面 ",绕一下它可能就不接待你了( 他只认你哪里来的 )。

安装

各个 Linux 发行版源里都有,直接包管理器装即可。

mac 可以 brew install privoxy ,然后用 brew sevices 子命令管理。( 官方也有提供安装包 )

Windows, 官方同样给了包和安装文档,但是等有空再写吧(其实基本就不想弄了…

配置

debian 装 privoxy ,它的配置文件里注释写的跟论文一样长,最开始的时候就被吓退了。

~ λ k -h /etc/privoxy
 config                      # 主配置文件
 default.action
 default.filter
 gfwlist.action              # 自己生成的,用了 gfwlist 清单
 match-all.action 
 regression-tests.action 
 templates 
 trust 
 user.action
 user.filter

config 文件处理 :

sudo echo 'actionsfile gfwlist.action' >>/etc/privoxy/config
# 让 privoxy 加载 gfwlist.action

gfwlist.action 文件:

这个项目可以很方便的帮忙生成这个配置: https://github.com/zfl9/gfwlist2privoxy

curl -4sSkLO https://raw.github.com/zfl9/gfwlist2privoxy/master/gfwlist2privoxy
sudo mv gfwlist2privoxy /usr/local/bin && sudo chmod a+x /usr/local/bin/gfwlist2privoxy
# 放到 "PATH" 里保留,常用的

bash gfwlist2privoxy 127.0.0.1:1080
#  注意将 127.0.0.1:1080 替换为你的 socks5 地址

sudo mv -f gfwlist.action /etc/privoxy/
# gfwlist.action 移动到 privoxy 配置文件目录
sudo systemctl restart privoxy
# 重启一下确保配置生效

自定义配置:

如果你有公司的vpn,git 仓库或者其他办公站点也需要走代理,可以很方便的加一个配置。

sudo touch /etc/proxy/autovpn.action
sudo echo 'actionsfile autovpn.action' >>/etc/privoxy/config

# 以下注释可以删除

sudo cat > /etc/proxy/autovpn.action <<EOF
{{alias}}
alauda = +forward-override{forward-socks5 127.0.0.1:5087 .}
# alias 是定义别名的意思,可以在此处定义转发规则
{alauda}
.alauda.io
.alaudatech.com
# 引用别名,在其后紧跟需要适配这个规则的域名
# 支持泛域名,比如 .baidu.com 可以匹配 www.baidu.com,tieba.baidu.com
EOF

sudo systemctl restart privoxy

浏览器和终端使用Privoxy:

  • chrome、firefox 有 switchyomega 这个插件可以处理转发规则,配置也简单,但需要各自配置,使用 Privoxy 可以集中在一个地方处理。修改浏览器的代理,使用 http localhost 8118 即可。

  • 终端

    export  http_proxy=http://localhost:8118
    export  https_proxy=http://localhost:8118
      
    # 可以将以上两行写入 .zshrc 或者 .bashrc
    
  • mate 桌面环境

mate desktop 提供了一个很方便的选项:首选项—> 互联网和网络—> 网络代理,直接配置后即可全局。


最后,根据国际惯例 —— Fu*k,GFW!