2013年10月9日星期三

GenPAC 代理

http://jeeker.net/projects/genpac/


  由于众所周知的原因,中国大陆地区访问国外资源总会遇到些不便,于是“翻墙”成了有意了解真实世界的内地网民所必须掌握的一项技能,本人也是如此,先前使用Proxy Switchy!,可惜在Mac OSX Lion后就无法正常使用,其开发者不知为何也停止了更新,此后找到的AutoProxy2PAC 也有这样那样的问题,最恶心的是居然莫名其妙还使用base64编码,让有“窥探欲”的我实在无法忍受。
  于是本着自力更生、丰衣足食的精神,就有了这个代理自动配置生成工具 GenPAC (PAC Generator)。
  • 基于Python 2.7
  • 代理规则基于gfwlist
  • 支持用户自定义规则
  • 生成时允许配置使用代理,防止获取gfwlist时被墙
要求
  • Python 2.7
  • 可用的代理服务器
下载
  • git clone https://github.com/JinnLynn/genpac.git
  • 直接下载 https://github.com/JinnLynn/genpac/archive/master.zip
安装
  • $ cd genpac
  • $ ./setup.py install #可能需要root权限
  • $ genpac -v
或者也可以直接使用命令
  • $ cd genpac
  • $ ./genpac -v
命令帮助
  • genpac [-h|--help] [-v|version] [--verbose]
  •       [-p PROXY|--proxy=PROXY]
  •       [--gfwlist-url=URL] [--gfwlist-proxy=PROXY]
  •       [--user-rule=RULE] [--user-rule-from=FILE]
  •       [--config-from=FILE] [--output=FILE]
  •  
  • 可选参数:
  •   -h, --help                显示帮助内容
  •   -v, --version             显示版本信息
  •   --verbose                 输出详细处理过程
  •   -p PROXY, --proxy=PROXY   PAC文件中使用的代理信息,如:
  •                               SOCKS 127.0.0.1:9527
  •                               SOCKS5 127.0.0.1:9527; SOCKS 127.0.0.1:9527
  •                               PROXY 127.0.0.1:9527
  •   --gfwlist-url=URL         gfwlist地址,一般不需要更改,默认: 
  •                               http://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt
  •   --gfwlist-proxy=PROXY     获取gfwlist时的代理设置,如果你可以正常访问gfwlist,则无必要使用该选项
  •                             格式为 "代理类型 [用户名:密码]@地址:端口" 其中用户名和密码可选,如: 
  •                               SOCKS5 127.0.0.1:9527
  •                               SOCKS5 username:password@127.0.0.1:9527
  •   --user-rule=RULE          自定义规则,该选项允许重复使用,如:
  •                               --user-rule="@@sina.com"
  •                               --user-rule="||youtube.com"
  •   --user-rule-from=FILE     从文件中读取自定义规则,该选项允许重复使用
  •   --config-from=FILE        从文件中读取配置信息
  •   --output=FILE             输出生成的文件,如果没有此选项,将直接打印结果
配置
支持通过--config-from参数读入配置信息,配置文件书写方法可参考sample/config.ini
自定义的代理规则
支持通过--user-rule自定义单个规则或--user-rule-from读入自定义规则文件,这两个参数均可重复使用。
自定义规则文件可参考sample/user-rules.txt
自定义规则的语法与gfwlist相同,使用AdBlock Plus过滤规则( http://adblockplus.org/en/filters ),简述如下:
  • 通配符支持,如*.example.com/* 实际书写时可省略*.example.com/
  • 正则表达式支持,以\开始和结束, 如\[\w]+:\/\/example.com\\
  • 例外规则 @@,如@@*.example.com/* 满足@@后规则的地址不使用代理
  • 匹配地址开始和结尾 |,如|http://example.comexample.com|分别表示以http://example.com开始和以example.com结束的地址
  • || 标记,如||example.comhttp://example.com https://example.com ftp://example.com等地址均满足条件
  • 注释 !! Comment
配置自定义规则时需谨慎,尽量避免与gfwlist产生冲突,或将一些本不需要代理的网址添加到代理列表
规则优先级从高到底为: user-rule > user-rule-from > gfwlist
PAC文件的使用
如何使用自动代理请自行Google,需要说明的是Mac OSX Lion下的Safari由于其沙盒机制的原因无法使用本地PAC文件,可通过Web Sharing或将PAC文件放在服务器,然后通过http访问。
LICENSE
The MIT License.


没有评论:

发表评论