polipo|privoxy实现 Linux 系统全局|自动代理

  |  

操作系统为 Ubuntu。

polipo 实现全局代理

  1. 安装 polipo:
    1
    2
    apt-get update
    apt-get install polipo
  2. polipo 的配置文件 /etc/polipo/config 初始内容只有 logSysloglogFile 两项。
    添加以下内容:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # SS 的代理地址
    socksParentProxy = "127.0.0.1:1081"
    # 类型
    socksProxyType = socks5
    # 转换为 HTTP 之后的端口
    proxyPort = 8123
    # 下面的就不清楚了
    chunkHighMark = 50331648
    objectHighMark = 16384
    serverMaxSlots = 64
    serverSlots = 16
    serverSlots1 = 32
    proxyAddress = "0.0.0.0"
  3. 接下来把代理地址添加到环境变量。在 /etc/profile 添加以下内容:
    1
    2
    export http_proxy="http://127.0.0.1:8123"
    export https_proxy="http://127.0.0.1:8123"
  4. 重新载入:
    1
    source /etc/profile
  5. 启动 polipo:
    1
    service polipo start
  6. 测试一下:
    curl www.google.com

privoxy 实现全局和自动代理

privoxy 可以配置 .action 格式的代理规则文件。通过控制规则文件实现全局和自动代理。

action 文件可以手动编辑,也可以从 gfwlist 生成。
下面将先介绍 privoxy 的安装配置,再介绍 action 文件的生成。

  1. 安装配置

    1
    2
    apt-get update
    apt-get install privoxy
  2. 进入目录 /etc/privoxy,可以看到目录结构大致为:

  • config 配置文件,这个文件很长。。
  • *.action 代理规则文件
  • *.filter 过滤规则文件
  • trust
  • templates/
  1. 开始修改配置文件。

privoxy 有 filter (过滤)的功能,可以用来实现广告拦截。不过这里只希望实现自动代理,在配置文件中把 filter 部分注释掉:

1
2
# filterfile default.filter
# filterfile user.filter # User customizations

可以指定转换后的 HTTP 代理地址,这里直接使用默认端口 8118:

1
2
listen-address  127.0.0.1:8118
listen-address [::1]:8118

配置代理

  1. 如果代理规则直接写在配置文件 config 中,那么代理规则和本地 SS 代理地址是写在一起的:
    1
    2
    # / 代表匹配全部 URL,即全局代理
    forward-socks5 / 127.0.0.1:1081 .

1
2
# 根据规则自动代理
forward-socks5 .google.com 127.0.0.1:1081 .

注意!每行最后还有一个点。

  1. 自定义方式配置 如下
    我们将使用自定义的 action 文件,所以把默认的 action 文件注释掉,并添加自定义文件:
    1
    2
    3
    4
    5
    6
    # 默认的 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
    # 自定义 action 文件
    actionsfile my.action
    新建 action 文件 my.action,内容如下:
    1
    2
    3
    4
    # 这一行表示本 action 文件中所有条目都使用代理
    {+forward-override{forward-socks5 127.0.0.1:1081 .}}
    # 添加一条规则
    .google.com

把 privoxy 转换后的地址 http://127.0.0.1:8118 添加到环境变量,可以参照 polipo 部分。

使用

1
2
service privoxy start
curl www.google.com

注意: 配置文件 config 或 action 文件修改后不需要重启 privoxy。

操作系统 centos

polipo

  1. 下载
    wget https://copr-be.cloud.fedoraproject.org/results/jasonbrooks/polipo/epel-7-x86_64/polipo-1.1.1-2.fc22/polipo-1.1.1-2.el7.centos.x86_64.rpm
  2. 安装
    yum install polipo-1.1.1-2.el7.centos.x86_64.rpm
  3. 配置
    vim /etc/polipo/config
1
2
3
4
5
6
socksParentProxy = "localhost:9050"
socksProxyType = socks5 # 这里Polipo提供了把他接管的http送到socks5的方法
diskCacheRoot = "" # 这一行跟上两行不挨在一起,往下面找找,如果不需要Tor,仅仅用Polipo的话,这三行可以不用打开

chunkHighMark = 50331648 # 这两行是控制使用的内存大小,打开即可
objectHighMark = 16384
  1. 运行
    systemctl start polipo

使用注意

  1. 环境变量的配置 很多教程都只添加了 http_proxy 一项,但是实际使用中发现也需要设置 https_proxy
  2. 另外,关于地址的写法,只写 127.0.0.1:8123 时,遇到过有软件不能识别的情况,改为写完整的地址 http://127.0.0.1:8123/ 就不会有问题了。

文档

Privoxy教程
使用Privoxy将socks5代理转为http代理
polipo/privoxy 实现 Linux 系统全局/自动代理

文章目录
  1. 1. 操作系统为 Ubuntu。
    1. 1.1. polipo 实现全局代理
    2. 1.2. privoxy 实现全局和自动代理
      1. 1.2.1. 配置代理
      2. 1.2.2. 把 privoxy 转换后的地址 http://127.0.0.1:8118 添加到环境变量,可以参照 polipo 部分。
      3. 1.2.3. 使用
  2. 2. 操作系统 centos
    1. 2.1. polipo
    2. 2.2. 使用注意
  3. 3. 文档