linux 配置 privoxy 实现系统全局/自动代理

用 Privoxy 可以将 socks5 代理转成 http 代理,并根据要访问的地址使用不同的代理,在桌面环境下是个非常有用的软件。对于开发人员来说更为重要,比如根据不同的域名指向不同的开发环境和测试环境。这篇记录使用的过程。

1. 安装并启动

apt-get install privoxy
systemctl enable privoxy
systemctl restart privoxy

2. 配置 privoxy

privoxy 的配置目录在文件夹 /etc/privoxy下。

进入目录 /etc/privoxy,可以看到目录结构大致为:

  • config 配置文件,这个文件很长。。
  • *.action 代理规则文件
  • *.filter 过滤规则文件

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

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

filterfile default.filter
filterfile user.filter      # User customizations

然后加上自己的配置文件

actionsfile kelu.action

image-20201130180636552

当然,如果我们想全部代理也可以:

{+forward-override{forward-socks5 127.0.0.1:31080 .}}
.
/

可以指定转换后的 HTTP 代理地址,也可以使用默认端口 8118

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

另一种写法的配置文件示例:


default	= +forward-override{forward .} 
pac 	= +forward-override{forward 127.0.0.1:8080}
 
{default}
/
 
{pac}
.baidu.com
.qq.com

3. 自动生成配置文件

使用 gfwlist2privoxy 自动生成配置文件。

apt-get intall python-pip
pip install gfwlist2privoxy

wget https://raw.githubusercontent.com/gfwlist/gfwlist/master/gfwlist.txt
gfwlist2privoxy -i gfwlist.txt -f /etc/privoxy/gfwlist.action -p 127.0.0.1:31080 -t socks5

运行后便生成一个 gfwlist.action,在 privoxy 里将其配置进去即可。

actionsfile gfwlist.action

说明:

-i/--input 输入,本地 gfwlist 文件或文件 URL。这里使用上面的 gfwlist
-f/ --file 输出,即生成的 action 文件的目录。这里输出到 /etc/privoxy/gfwlist.action
-p/ --proxy 代理地址,生成后可以修改。这里是 127.0.0.1:1081
-t/ --type 代理类型,生成后也可以修改。这里是 socks5
--user-rule 用户自定义规则文件,这个文件中的规则会被追加到 gfwlist 生成的规则后面

linux 安装拼音 安装桌面版的 Linux 备忘