一、背景
手上有墙外的VPS可用,部署了shadowsocks(以下简称ss),从墙外使用rsync拉文件或是IOS(未越狱)想出墙时。都比较麻烦。于是看上了Privoxy这货。可以把socks5转换为HTTP代理,也就是俗称的APN。
步骤如下:
- 国外VPS机器分别安装ss服务端和客户端
- 客户端直接连本机服务端
- 部署Privoxy将ss客户端生成的sock5代理转成HTTP代理
- rsync或IOS端直接连接国外VPS上的HTTP代理。
PS:如果手头还有国内VPS的话最好是客户端和Privoxy都在国内VPS上。代理这块就比较少被检验。
ss的安装和配置这里就不叙述了,因为过程和配置比较简单。这篇主要还是说说负责 Privoxy 安装与设置吧。
二、安装
Privoxy 是一个轻量级的代理服务,不需要大量的内存进行缓存,是开源项目,官方介绍如下:
Privoxy是一款带过滤功能的代理服务器,针对HTTP、HTTPS协议,经常跟Tor组合使用。通过Privoxy的超级过滤功能,用户从而可以保护隐私、对网页内容进行过滤、管理cookies,以及拦阻各种广告等。Privoxy可以用作单机,也可以应用到多用户的网络。
你可以在 这里 选择适合你的版本,目前基本可以算常用桌面全版本(Unix众,Win,MacOS)。这里我选择了源码安装的方式。
# 添加一个用户给 Privoxy echo 'privoxy:*:7777:7777:privoxy proxy:/no/home:/no/shell' >> /etc/passwd # 分配个组给 Privoxy echo 'privoxy:*:7777:' >> /etc/group # 开始编译安装... autoheader autoconf ./configure # (--help to see options) make # (the make from GNU, sometimes called gmake) make -s install # (to really install, -s to silence output)
默认安装后相应的配置在 /usr/local/etc/privoxy 目录下
# 运行 /etc/init.d/privoxy start
三、定制
根据我们的需求来定制一下配置(将ss的sock5转换为HTTP代理)。
配置HTTP代理端口
vi /usr/local/etc/privoxy/config #找到listen-address,配置HTTP代理的端口 listen-address 127.0.0.1:31904
向对应端口转发
vi /usr/local/etc/privoxy/config # 找到forward-socks5,配置要转发的端口,及特地规则。具体使用场景可以参考官方配置里写上。 # 这里我们配置全局转发,目前是49879端口(ss客户端) forward-socks5t / 127.0.0.1:49879 .
配置完了,重启下privoxy
/etc/init.d/privoxy restart
四、关于用户认证
有不少人发邮件有问这个用户认证的事。从官方文档说明来看,privoxy本身是不支持用户认证的。但支持认证的转发。在以下场景可以用得到
当用privoxy来代理了其他需要认证的代理时,就可以按以下配置来设置认证转发。
# 生成用户名和密码对应的base64密文 perl -e "use MIME::Base64; print encode_base64('用户名:密码');" # 修改config文件,添加actionsfile user.action,编辑 user.action 文件中的 alias proxy = +forward-override{forward 127.0.0.1:808} +add-header{Proxy-authorization: Basic <auth>} # 也可以IP段过滤, 打开配置,找到 permit-access,里面有对应的配置模板。
五、如何使用HTTP代理
RSYNC代理
export RSYNC_PROXY='IP:PORT'
IOS上使用 > 设置-WIFI-点中你连接的WIFI旁边的(i)进入WIFI设置-最下方HTTP代理-输入对应信息
六、FAQ
按上面的配置好了,还是连接不上 PS:检查一下端口和防火墙有没有添加上对应的规则
欢迎补充。