果然已经换成Polipo了.(不过主页上还是写着Privoxy)
试用了一下,Polipo没有Privoxy那么复杂的过滤功能,小巧,配置也很简单.
如主页所介绍的,Polipo是面向个人或小型组织使用的轻量级缓存代理,主要功能有代理,缓存和网页服务器

下面来简单讲一下如果安装使用.
1 下载安装包
下载安装包有两个途径:



Tor安装包中的Polipo安装好就可以用了,同样官方的下载解包到任意地方就可以了
可以看到解包出来的文件很少,除了一大堆版权,说明,配置文件之外,就是一个主程序Polipo.exe和一个dll文件.
但是因为Polipo最初是设计用于Linux的.直接运行会使用默认配置文件,路径为'~/.polipo'或者'/etc/polipo/config',
但Windows上是一定没有这样的路径的.所以我们必须要用 -c 参数来指定配置文件路径才能正常运行,比如:
polipo -c polipo.conf
配置文件使用绝对路径或相对路径均可.至于文件名,随你喜欢用什么名字.
2 配置Polipo
下面对如何简单配置Polipo作为转换Http到Sock5
2.1) 后台运行
Polipo默认情况是前台命令行窗口运行,大概不会有人喜欢老开着一个命令行窗口,而且不小心关掉的话,Polipo也会随之关掉.


有兴趣的朋友可以自己试试,我的建议是不要再配置文件中设置这个选项
至于后台运行的方法,下文有述.
2.2) Log
如果我们希望后台运行的话,当遇到异常情况的时候便需要log来分析原因.在配置文件中写入如 logFile = "log.txt" 这样的字段便可以.
其次,Log的详细程序由logLevel设置.logLevel的值需要在源码中找,我已经将其改成logLevel.txt放在我的包里面了.
L_ERROR 0x1
L_WARN 0x2
L_INFO 0x4
L_FORBIDDEN 0x8
L_UNCACHEABLE 0x10
L_SUPERSEDED 0x20
L_VARY 0x40
D_SERVER_CONN 0x100
D_SERVER_REQ 0x200
D_CLIENT_CONN 0x400
D_CLIENT_REQ 0x800
D_ATOM_REFCOUNT 0x1000
D_REFCOUNT 0x2000
D_LOCK 0x4000
D_OBJECT 0x8000
D_OBJECT_DATA 0x10000
D_SERVER_OFFSET 0x20000
D_CLIENT_DATA 0x40000
D_DNS 0x80000
D_CHILD 0x100000
D_IO 0x200000
LOGGING_MAX 0xFF
在我提供的包中,等级设置为0x40 记录大多数的错误信息.
2.3) 管理界面
在浏览器中打入 http://localhost:port/polipo/ 便可以进入网页管理界面,比如 http://127.0.0.1:8118/polipo/
2.4) 代理端口设置
使用proxyAddress和proxyPort来指定代理的地址和端口,端口默认为8123,在我的配置文件中,将其改为8118.跟Tor的默认设置保持一致.
proxyAddress = "127.0.0.1"
proxyPort = 8118
2.5) 访问控制
使用allowedClients和allowedPorts来指定允许的代理请求,因为一般情况下我们是单机使用,设置为如下便可.
allowedClients = 127.0.0.1
allowedPorts = 1-65535
2.6) 转发
设置socksParentProxy和socksProxyType转发到SOCKS5代理,为了无缝跟Tor切换,这里我的SSH是绑定到9050端口.
socksParentProxy = "localhost:9050"
socksProxyType = socks5
2.7) 重启关闭
一般来说,前台运行(命令行窗口)只要关闭窗口就可以关掉了,而后台运行就比较麻烦,必须要杀进程才行.
而且后台运行会有同时运行多个实例的问题,虽然在配置文件中声明PidFile来记录pid,一旦发现这个文件存在便拒绝运行.

下面来讲讲如何改善在Windows上的使用方法
2.8) 后台运行
之前提过,虽然配置文件提供了后台运行开关,但就我而言没有作用,所以我整理了一下后台运行的方法

借助vbs可以实现后台运行,写一个vbs脚本,只用两行
Set wshell=wscript.createobject("wscript.shell")
wshell.run "polipo -c polipo.conf",0 (这里-c参数后的配置文件请按照自己情况自行修改)
只要点击这个脚本便可以将polipo提交到后台运行.

另外要准备另一个使用FSO对象的vbs脚本,当确认polipo异常退出时,可以使用删除PidFile而重新运行Polipo




在拜过古狗大神后,大神指了一条通向11区的路给我 :


使用Solipo可以简单快捷的实现后台运行,检测多个实例运行,快速进行配置等功能.
他下载的包里一并包括了Polipo本体,我已经将Solipo抽离出来放进我的包里面.
据我的观察,solipo默认使用config(无附加名)文件作为配置文件,并制定polipo.log作为log文件.(没有地方可以设置改变),所以必须将配置文件改名为config.
如果配置文件中指定了logfile,将会被强行使用polipo.log
点击运行Solipo便可以运行,会在托盘区显示一个画着超人标志的红蛋蛋

如果已经有polipo在运行,点击solipo就会出错告诉你已经有polipo在运行了.
在红蛋蛋上点右键便可以弹出菜单.简单介绍一下


//用浏览器打开 http://127.0.0.1:8123/polipo/config 因为solipo默认8123端口为代理设置,所以如果我们的代理设置为8118这个页面会出错,可惜的是这个参数是solipo内置的没有地方可以改.只好手动修改为http://127.0.0.1:8118/polipo/config


//查看log文件

//改变cache的设置,一般情况下没用,除非你开启了cache功能

//重启

//没用,除非你开启了cache功能

//关于

//退出solipo并关闭polipo进程
基本上只要有上面这些设置就可以正常用于HTTP转发SOCKS代理了.
其实,只要你的SSH绑定到9050,浏览器使用的是8118,那么你直接拿着我的那个包解压到什么地方,点击solipo就可以用了喵

其他的一些功能比如Web Sever,ACL,Cache等功能一般个人用户没什么用,我就不赘述了.在我的配置文件中这些都是关闭的.
有兴趣的同学可以自己研究一下
附录
Polipo官方网站 : http://www.pps.jussieu.fr/~jch/software/polipo/
Polipo手册:
多页版: http://www.pps.jussieu.fr/~jch/software/polipo/manual/
单页版: http://www.pps.jussieu.fr/~jch/software/polipo/polipo.html
PDF版: http://www.pps.jussieu.fr/~jch/software/polipo/polipo.pdf
源码和安装包: http://www.pps.jussieu.fr/~jch/software/files/polipo/
Solipo : http://serennz.sakura.ne.jp/toybox/solipo/
补充: 最新版TOR默认是启动时开启Polipo.为避免运行多个实例,请到Tor设定中,将"常规"中的"Tor启动时运行代理程序"反选.
-EOF-
收藏之,慢慢研究……不过咱大概只要Sock5也能满足了orz……
一段时间空闲后,基本上每次打开需要代理的网站时就会提示拒绝连接,然后必须等几秒钟 Myentunnel 重新连接才行。
我不知道 win 下怎么给 plink.exe 加上防止空闲超时断开的 stay alive 设置,在 myentunnel 里也看不到选项。
不知 privoxy 能做到么?里面有个 stay alive 的设置项,但是好像不起作用……