Privoxy 安装配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Privoxy 安装配置相关的知识,希望对你有一定的参考价值。

参考技术A

使用Privoxy 将socks5代理转成http代理

操作系统 CentOS 7

用yum命令看一下,是最新版本

直接安装 privoxy

配置文件位于目录: /etc/privoxy

修改绑定地址,搜索 ==listen-address== ,修改需要绑定的IP

设置socks5 转发,搜索 ==forward-socks5t== ,去掉注释,修改对应IP

配置不走代理,直接本地转发的

由于网络不稳定,经常出现503,增加转发重试
默认值是:0

配置最大客户端的连接
默认值是:128

这个用于开启和关闭广告过滤和内容过滤,1表示开启,0表示关闭
默认值是:1

共享连接

是否保持活动的传出连接应该在不同的传入连接之间共享

拦截服务端禁止在iframe中加载的响应头,在user.action 末尾添加

只能处理http的连接

修改服务端的响应头,去掉设置cookie时的 HttpOnly ,让客户端可以通过js获取cookie
Privoxy 使用类似Perl的 s/// 操作来实现对内容的替换修改

只能处理http的连接

在user.filter文件中新增

在user.action文件中新增

浏览器配置代理指向privoxy

访问地址: http://p.p/ 可以进入到privoxy的一个管理页面

访问地址: https://check.torproject.org/ 可以进入到一个tor检查页面

Linux 客户端代理配置

socks5 to http
sock5 转 http 这里采用 privoxy 进行转换
Mac: brew install privoxy
Ubuntu: apt-get -y install privoxy
安装成功后,需要修改配置以指定 socks5 端口以及不代理的白名单,配置文件位置如下:
Mac: /usr/local/etc/privoxy/config
Ubuntu: /etc/privoxy/config
在修改之前请备份默认配置文件,这是个好习惯,备份后修改内容如下:

转发地址

forward-socks5 / 127.0.0.1:1080 .

监听地址

listen-address localhost:8118

local network do not use proxy

forward 192.168../ .
forward 10.../ .
forward 127.
../ .
其中 127.0.0.1:1080 为你的 socks5 ip 及 端口,localhost:8118 为你转换后的 http 监听地址和端口;配置完成后启动 privoxy 即可,启动命令如下:
Mac: brew services start privoxy
Ubuntu: systemctl start privoxy

Docker 加速拉取 gcr.io 镜像
对于 docker 来说,terminal 下执行 docker pull 等命令实质上都是通过调用 docker daemon 操作的;而 docker daemon 是由 systemd 启动的(就目前来讲,别跟我掰什么 service start…);对于 docker daemon 来说,一旦它启动以后就不会再接受加速设置,所以我们需要在 systemd 的 service 配置中配置它的加速。
目前 docker daemon 接受标准的终端加速设置(读取 http_proxy、https_proxy),同时也支持 socks5 加速;为了保证配置清晰方便修改,这里采用创建单独配置文件的方式来配置 daemon 的 socks5 加速,配置脚本如下(Ubuntu、CentOS):
#!/bin/bash

set-e

OS_TYPE=$1
PROXY_ADDRESS=$2

if["${PROXY_ADDRESS}"==""]; then
echo-e"33[31mError: PROXY_ADDRESS is blank!33[0m"
echo-e"33[32mUse: sudo $0 centos|ubuntu 1.2.3.4:108033[0m"
exit 1
fi

if["${OS_TYPE}"==""];then
echo-e"33[31mError: OS_TYPE is blank!33[0m"
echo-e"33[32mUse: sudo $0 centos|ubuntu33[0m"
exit 1
elif["${OS_TYPE}"=="centos"];then
mkdir /etc/systemd/system/docker.service.d ||true
tee /etc/systemd/system/docker.service.d/socks5-proxy.conf <<-EOF
[Service]
Environment="ALL_PROXY=socks5://${PROXY_ADDRESS}"
EOF
elif["${OS_TYPE}"=="ubuntu"];then
mkdir /lib/systemd/system/docker.service.d ||true
tee /lib/systemd/system/docker.service.d/socks5-proxy.conf <<-EOF
[Service]
Environment="ALL_PROXY=socks5://${PROXY_ADDRESS}"
EOF
fi

systemctl daemon-reload
systemctl restart docker
systemctl show docker --property Environment
将该脚本内容保存为 docker_proxy.sh,终端执行 bash docker_proxy.sh ubuntu 1.2.3.4:1080 即可(自行替换 socks5 地址);脚本实际上很简单,就是创建一个与 docker.service 文件同级的 docker.service.d 目录,然后在里面写入一个 socks5-proxy.conf,配置内容只有两行:
[Service]
Environment="ALL_PROXY=socks5://1.2.3.4:1080
这样 systemd 会自动读取,只需要 reload 一下,然后 restart docker daemon 即可,此后 docker 就可以通过加速端口直接 pull gcr.io 的镜像;注意: 配置加速后,docker 将无法 pull 私服镜像(一般私服都是内网 DNS 解析),但是不会影响容器启动以及启动后的容器中的网络

Terminal 加速
脚本方式
对于终端下的应用程序,百分之九十的程序都会识别 http_proxy 和 https_proxy 两个变量;所以终端加速最简单的方式就是在执行命令前声明这两个变量即可,为了方便起见也可以写个小脚本,示例如下:
sudo tee /usr/local/bin/proxy <<-EOF
#!/bin/bash
http_proxy=http://1.2.3.4:8118 https_proxy=http://1.2.3.4:8118 $*
EOF

sudo chmod +x /usr/local/bin/proxy
将上面的地址自行更换成你的 http 加速地址后,终端运行 proxy curl ip.cn 即可测试加速效果

proxychains-ng
proxychains-ng 是一个终端下的工具,它可以 hook libc 下的网络相关方法实现加速效果;目前支持后端为 http(s)/socks5(4a),前段协议仅支持对 TCP 加速;
Mac 下安装方式:
brew install proxychains-ng
Ubuntu 等平台下需要手动编译安装:

安装编译依赖

apt-get -yinstall gcc make git

下载源码

git clone https://github.com/rofl0r/proxychains-ng.git

编译安装

cd /proxychains-ng
./configure --prefix=/usr --sysconfdir=/etc
sudo make install
sudo make install-config
安装完成后编辑配置使用即可,Mac 下配置位于 /usr/local/etc/proxychains.conf,Ubuntu 下配置位于 /etc/proxychains.conf;配置修改如下:

主要修改 [ProxyList] 下的加速地址

[ProxyList]
socks5 1.2.3.4 1080
然后命令行使用 proxychains4 curl ip.cn 测试即可

Git 加速
目前 Git 的协议大致上只有三种 https、ssh 和 git,对于使用 https 方式进行 clone 和 push 操作时,可以使用第五部分 Terminal 加速方案即可实现对 Git 的加速;对于 ssh、git 协议,实际上都在调用 ssh 协议相关进行通讯(具体细节请 Google,这里的描述可能不精准),此时同样可以使用 proxychains-ng 进行加速,不过需要注意 proxychains-ng 要自行编译安装,同时 ./configure 增加 --fat-binary 选项,具体参考 GitHub Issue;ssh、git 由于都在调用 ssh 协议进行通讯,所以实际上还可以通过设置 ssh 的 ProxyCommand 来实现,具体操作如下:
sudo tee /usr/local/bin/proxy-wrapper <<-EOF
#!/bin/bash
nc -x1.2.3.4:1080 -X5 $
#connect-proxy -S 1.2.3.4:1080 $

EOF

sudo chmod +x /usr/local/bin/proxy-wrapper

sudo tee ~/.ssh/config <<-EOF
Host github.com
ProxyCommand /usr/local/bin/proxy-wrapper ‘%h %p‘
EOF
需要注意: nc 命令是 netcat-openbsd 版本,Mac 下默认提供,Ubuntu 下需要使用 apt-get install -y netcat-openbsd 安装;CentOS 没有 netcat-openbsd,需要安装 EPEL 源,然后安装 connect-proxy 包,使用 connect-proxy 命令替代

以上是关于Privoxy 安装配置的主要内容,如果未能解决你的问题,请参考以下文章

用privoxy来pac

Linux 客户端代理配置

Linux 客户端代理配置

[ArchLinux] 设置终端通过ss代理

IntelliJ IDEA 配置 Socks5 代理

Scrapy 与 Privoxy 和 Tor:如何更新 IP