2013年2月24日星期日

简单易懂的Polipo使用入门

前两天在GR上读到TOR放弃Privoxy转而跟Polipo合作的消息,马上去下了最新版Tor包.
果然已经换成Polipo了.(不过主页上还是写着Privoxy)

试用了一下,Polipo没有Privoxy那么复杂的过滤功能,小巧,配置也很简单.
如主页所介绍的,Polipo是面向个人或小型组织使用的轻量级缓存代理,主要功能有代理,缓存和网页服务器
 如果只是单纯需要一个可以Forward Sock5的代理,我强烈推荐Polipo.

下面来简单讲一下如果安装使用.

1 下载安装包

下载安装包有两个途径:

下载最新版Tor: http://www.torproject.org/dist/vidalia-bundles/vidalia-bundle-0.2.1.20-0.2.5.exe

从Polipo官方下载: http://www.pps.jussieu.fr/~jch/software/files/polipo/polipo-1.0.4-win32.zip

如果想要一个马上能用的包,请使用我打包的版本 http://dl.dropbox.com/u/1663058/Polipo.rar

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也会随之关掉.
 按照官方文档的说明,在配置文档中写入daemonise = true 便可以后台运行,但我试验的情况是没有了窗口,但程序也没跑起来 (锤地...
有兴趣的朋友可以自己试试,我的建议是不要再配置文件中设置这个选项
至于后台运行的方法,下文有述.

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,一旦发现这个文件存在便拒绝运行.
 但是我们如果后台运行的话,因为只能杀进程关闭Polipo.这个文件并不会删除,下次再重启Polipo就会拒绝运行.必须要删除这个文件才行.
下面来讲讲如何改善在Windows上的使用方法

2.8) 后台运行
之前提过,虽然配置文件提供了后台运行开关,但就我而言没有作用,所以我整理了一下后台运行的方法
 常驻后台:
借助vbs可以实现后台运行,写一个vbs脚本,只用两行

Set wshell=wscript.createobject("wscript.shell")
wshell.run "polipo -c polipo.conf",0 (这里-c参数后的配置文件请按照自己情况自行修改)


只要点击这个脚本便可以将polipo提交到后台运行.
 如果想解决多个实例运行的问题,可以使用上文提过的pidFile来解决.
另外要准备另一个使用FSO对象的vbs脚本,当确认polipo异常退出时,可以使用删除PidFile而重新运行Polipo

 管理程序
 虽然VBS是一种简单的实现方法,但VBS是会带来很严重的安全隐患.尤其是在加为启动运行的情况下.如果有人发现了你的这个VBS,并且修改了你的VBS脚本进行一些破坏,后果是很严重的.所以我并不推荐上面的方法.

在拜过古狗大神后,大神指了一条通向11区的路给我 :  http://serennz.sakura.ne.jp/toybox/solipo/

 这位日本朋友写了一个简单的Polipo管理软件,Solipo.
使用Solipo可以简单快捷的实现后台运行,检测多个实例运行,快速进行配置等功能.

他下载的包里一并包括了Polipo本体,我已经将Solipo抽离出来放进我的包里面.
据我的观察,solipo默认使用config(无附加名)文件作为配置文件,并制定polipo.log作为log文件.(没有地方可以设置改变),所以必须将配置文件改名为config.
如果配置文件中指定了logfile,将会被强行使用polipo.log

点击运行Solipo便可以运行,会在托盘区显示一个画着超人标志的红蛋蛋 
如果已经有polipo在运行,点击solipo就会出错告诉你已经有polipo在运行了.
在红蛋蛋上点右键便可以弹出菜单.简单介绍一下



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

 viewlog
//查看log文件

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

 restart
//重启

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

 about
//关于

 exit
//退出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启动时运行代理程序"反选.

没有评论:

发表评论