linux 使用 privoxy 进行 PAC 代理

linux 下的命令,大多不支持 PAC 形式代理,只支持 http/socks 代理形式。因此为了使用 PAC 文件做代理,必须要通过三方软件来转发这部分代理的流量。 privoxy 是一个支持 PAC 代理的程序,可以根据不同规则选择代理线路,我们可以使用它来作为代理软件转发客户端流量。 privoxy 官方网站:www.privoxy.org

测试环境:centos6 + centos7 。

一、安装 privoxy

安装 privoxy 的方式有以下几种:

  1. rpm 包方式安装或源码包下载编译安装
  2. 使用 yum 命令一键安装

方式 1 可以在官方网站找到源码包和安装包,安装相对麻烦一些,centos 系统推荐使用原生的包管理工具 yum 来安装,前提是要安装 epel 源,国内 epel 源可以选择阿里云的源,下载速度快 (使用方式参考Epel 镜像帮助) 。

使用 yum 安装 privoxy 的:

安装好后,启动进程:

添加到开机启动:

二、配置 privoxy 以支持 PAC

privoxy 的配置文件目录是/etc/privoxy/,在目录下添加文件 pac.action,内容:

配置简单说明:

  • alias 段:定义转发规则,目前是定义了两种。 default 表示默认规则,后面的 forward . 表示默认走本机。 pac 表示自定义的 pac 规则,后面的 forward 10.66.83.23:8080 表示通过 10.66.83.23:8080 的 HTTP 代理出去。
  • default 段:匹配默认规则的地址,/表示默认的,如果没有匹配其他规则就匹配这个规则。
  • pac 段:需要进行代理转发的域名,下面的地址会通过上面定义的代理地址转发出去。

以上配置的意思就是,*.baidu.com 和*.qq.com 域名通过 10.66.83.23:8080 代理,其他的默认走本机代理。其他需要代理的地址也可以加在下面。

然后在主配置文件中 config 添加修改:

程序默认监听端口是 8118,默认只支持本地的代理,如果需要更改的话改以下配置:

没有特殊要求的话可以使用默认配置,改完后启动 privoxy 进程就可以了。

注意:进程启动后,如果修改了 pac 规则,需要重新启动进程才能生效。

三、配置系统

给本机设置代理环境变量:

然后使用 wget 或者 curl 命令测试即可!要注意的是环境变量只对当前终端生效,退出当前会话后就没有了。如果希望每次登录都生效,则需要把这两个命令放到~/.bashrc 或者/etc/profile 中。

四、原理说明

开启 privoxy 代理后,流量会全部发到 privoxy,然后 privoxy 来决定流量走哪。配置了 PAC 规则的走指定线路,没有配置的走本机。

发表评论