Total Pageviews

Thursday 30 July 2015

Wallproxy-plugins配置教程(For Windows)



Wallproxy-plugins配置教程(For Windows) 目录

Log:
2011-07-06 10:27 修改第一页上的关于拨号连接的说明,以及”使用”处Chrome的SwitchyPlus
2011-07-06 22:10 在”修改加密密码”中细化一个解释(标记)
2011-07-06 23:40 添加”SwithchyPlus配置”说明,小小修改了一下原文的图片说明,挖了一个大坑”Autoproxy设置”预订明天早上补,一行说明实际上已经足够解决问题只是不够傻瓜…准备睡觉
2011-07-07 8:47 完成“Autoproxy设置”教程,顺便把Chrome的SwitchyPlus改成了Switchy!,因为有人反映bug。另外文章各处有小变动。
2011-07-09 9:17 修改关于Switchy!与SwitchyPlus的描述。
2011-07-13 21:47修改一些细小的说明
2011-07-13 23:56在Autoproxy处(文章最末尾)添加两行建议设置规则
2011-07-17 17:43 大改动:添加”2.检验proxy.exe可用性”、重新整理各步骤顺序以及目录、对”11.6.关于修改端口”进行补充。
2011-07-19 14:11 补充Switchy Plus打开API的步骤说明(好吧笔者今天才想起这点。。。)
2011-08-11 10:35 修改了下’proxy’参数的说明
2011-08-11 21:02 修改了关于SwithcyPlus处gfwlist的说明(因为有时默认proxy.pac不被识别)
2011-08-12 19:42 更换了墙内更新地址(DBank搞审查。。玩毛。。。)
2011-08-21 20:28 因为几个朋友的提醒,把前几页的分页调整了一下,顺便因为minus.com有时
不稳定,故更换成墙内空间3721up.com
2011-08-22 19:36 Minus.com的链接突然又恢复了。。。于是在第二页又重新补回了Minus的链
2011-08-22 20:20 为Google各项服务以及Google+众补充关于Google+于”其他”一章的各小说明
本次更新后可能造成一些表述错误,请大家积极反馈。
2011-09-02 07:49 在第二页中对GAE新收费政策进行了一些描述,并将教程中的SwitchyPlus修改为SwitchySharp

2.检验proxy.exe可用性
打开Wallproxy-plus文件夹下的local中的proxy.exe,正常输出如下:
然后画面会停留,而不是被关闭。如果发现画面停留但是输出并非如上,请截图并发给我,我将帮你解决问题,并在本教程中补充。
如 果发现proxy.exe画面一闪而过,请在WinXP的”开始>运行”中或Win7的”开始>附件>运行”中输入”cmd”再按确 定,然后将proxy.exe的路径输入(或者直接将proxy.exe从文件浏览器拖入cmd中),回车,如果遇到如下提示(错误10013)
请参考最后一章中的关于修改端口修改本地端口。(建议几个端口:3128、1080)
如果遇到其他错误,也请截图并发给我,我将帮你解决问题,并在本教程中补充。
(等待我的回复的同时可以继续教程的第3~7步)
3.注册Google账号(直接到Google首页进行注册即可)(已有的可以忽略)
4.注册GAE(Google App Engine)账号(已有的可以忽略)
(注:下面六张图片来自 http://code.google.com/p/wallproxy-plugins/wiki/ApplyGAE)
点击Sign up(图中网址不一样不要介意)
登录Google账号;
点击Create an Application;
下面这一步有两个地方需要注意:
1.Country最好还是填上Other;
2.Mobile Number填上手机号码,格式+86 1XXXXXXXXXX,注意+86后面那个空格。
  Send后你会收到短信验证码,有时候时间会有点长,请耐心等候。
注意一个手机号只能注册一次 (from this docs)

输入短信验证码;

到此GAE注册完毕。
5.创建GAE应用
填入Application Idenifier(即AppID,还要记得Cheak Availablity验证该名称是否可用)和Application Title(随便填,建议“Wallproxy”),再按Save。
附Application Identifier允许范围:
    6~30个字符,只允许小写字母、数字、以及连字符号(“-”)

另外建议注册4~5个,一个AppID一天有1G的流量。(1G上传1G下载,用于中转相当于只有1G)(友情提示:按完Save后可直接用浏览器的“后退”功能继续)
6.上传服务器端
打开wallproxy-plus文件夹下的server文件夹,打开upload.bat(注意:Windows 7用户请以管理员权限打开)
(上图)点击1,修改要上传的AppID,接着再按3,可能会要求该AppID对应的Email和密码,
注意:是appid,而不是appid.appspot.com
(注意:在输入密码的时候,屏幕不会有任何显示,不要紧,输完后回车即可)(from this docs)
出现“Closing update: new version is ready to start serving.”(如上图),则是该AppID上传工作成功,如果失败请重复操作,或设置证书(详见7.导入证书)后打开wallproxy-plus文件夹下的local文件夹的Wallproxy.exe,在此批处理中输入5(设置代理)再继续。
所有AppID成功后可以进行下一步工作。
注:如果你是多GAE账号用户,或者GAE密码修改过,这里cookie的账户密码配置可能会出现错误,此时请删除\server\.appcfg_cookies文件再试。

7.配置本地proxy.conf
打开wallproxy-plus文件夹下的local文件夹的Wallproxy.exe,在状态栏右下角找到Wallproxy的图标,右键后点击“显示/隐藏(S)”显示出主界面,单击“设置”,
appid = ”
修改成
appid = ‘appid1|appid2|appid3|appid4′
(其中appid1~x是你的AppID)
注意:是appidx,而不是appidx.appspot.com
例如我有example1、example2、example3、example4、example5五个AppID,则写
appid = ‘example1|example2|example3|example4|example5′

同时也将加密方式crypto = ”修改成
crypto = ‘XOR–32|XOR–32|XOR–32|XOR–32|XOR–32′
(项数依然是要和AppID对应)
注意:此处不需要填写password,password非Google账号的密码,而是加密用密码。
另:推荐部分个人的修改: (请勿忽略此块
1.把位于第8行 server_type 改成 server_type = ‘gaeproxy’
2.在后方(“# 其他参数,新手无视,不建议修改”之后)
        #’proxy’: ‘’,
    修改成    ‘proxy’: ‘http://203.208.46.177:80′,
    该IP请自行寻找google.cn的多个IP,并进行ping测试寻找最优
另外校园网用户可以使用’proxy’: ‘http://ipv6.google.com:80′,
    或者’proxy’: ‘http://[2404:6800:8007::68]:80’
    因为用了ipv6,不算流量哦亲(据说)
如果修改之后发现使用不了,请重新恢复成
        #’proxy’: ‘’,
    (多数为该IP被封[此时只要寻找未被封的IP即可,203.208.46.x下一堆]或不兼容ipv6)
再解释一下gae_extra_option里面的几个参数,大家可以调整以找到自己的网络情况的最佳值
1.range0:下载大文件时,从每个服务器端发送的初两个数据包的大小;
2.range  :下载大文件时,从每个服务器端发送的除初两个数据包以外的数据包大小;
3.max_threads:进行代理的最大线程数;
4.proxy:用来访问*.appspot.com的地址;
注意要想修改先将注释符号“#”去除
8.导入证书
8.1.IE与Chrome:进入IE的选项,点击内容>证书(下图)

按“导入”(下图)

“下一步”后寻找Wallproxy文件夹下的\local\cert\_ca.crt(下图)
最后点完“完成”会弹出下面的警告,选“是”(下图)
8.2.Firefox:进入选项,(下图)

到”高级”选项卡的”加密”中,点击”查看证书”(下图)
出现”证书管理器”,进入”证书机构”选项卡,按”导入”(下图),寻找你Wallproxy文件夹下的\local\cert\_ca.crt

选择“此证书可以标识web站点”(下图)

题外:建议取消CNNIC的信任,就是在上上图那里找到CNNIC ROOT,点击”编辑信任”,把“此证书可以标识web站点”取消掉,也就是三个都空着。
9.使用
IE、Chrome用户请单击状态栏中Wallproxy,弹出菜单中
“127.0.0.1:8086”是全局代理
“gfwlist”是使用规则进行判断代理,就是选择性代理
“直接连接”就是不进行代理
注意:PP加速器会影响该设置,若要使用请关闭PP加速器。

另外Chrome用户推荐使用Switchy!插件或SwitchySharp插件 点我跳转到下方相关教程

Firefox用户可以在选项>高级>网络中修改至“使用系统代理”再按照以上方法,也可以使用autoproxy插件(推荐) 点我跳转到下方Autoproxy教程
10.修改加密方法(可选)
首先必须保证每个AppID的gaeproxy.py都被调用过,这样子数据库才被初始化
如果不敢确认,请访问各个Appid下的appid.appspot.com/gaeproxy.py(需要翻),会跳转到twitter
然后登录appengine.google.com,进入AppID,选择Datastore Viewer,点击id=x(下图)
(注,下面数个图片出自http://code.google.com/p/wallproxy-plugins/issues/detail?id=114)
cryptomode输入”AES-CBC-32”(一种推荐的加密方式)
siteKey处填入加密用密码(支持所有字符,包括中文)
每一个AppID都需要单独操作

先不要急着修改proxy.conf,(使用旧密码配置)用浏览器访问 http://wallproxy/cache/reset (如果使用Autoproxy插件请使用全局代理)(请在修改服务器端15分钟内完成,否则可能导致新老密码混乱,再访问时新密码老密码都试试,当然加密方式也要对应)
页面是这样(上图)就成功,画红处是AppID,请一直刷新直到每个AppID都出现过(或者你可以修改proxy.conf让每一次都只刷一个AppID)

完成后再在主界面的设置中修改,依然用5个AppID来做示范
password = ‘pwd1|pwd2|pwd3|pwd4|pwd5′
crypto = ‘AES-CBC-32|AES-CBC-32|AES-CBC-32|AES-CBC-32|AES-CBC-32′
如果你每个AppID密码不一样一定要注意对应

另外:XOR–0且密码为空时不加密,其他全部都有加密,即使密码为空
11.其他
11.1.关于界面
    主界面唤出的方式:在状态栏中右键Wallproxy的图标,再按”显示/隐藏”
    命令行唤出和隐藏方式:双击状态栏中右键Wallproxy的图标
    命令行对于一些错误分析十分有用
    注意:不要直接用

11.2.关于自定义代理规则
    gfwlist是一个人工维护的规则列表,所以常常有缺漏,这时候可以唤出主界面,点击下面的“自定义规则”,参照给出的说明进行修改保存,然后关闭Wallproxy再重新打开生效(只在选择gfwlist或者手动引用proxy.pac时有效)
    Firefox的Autoproxy也能进行规则自定义

11.3.关于内置hosts (注意!该hosts过亦过代理,但可以修改至不过代理,10分钟内发布修改方式)修改方式研究中…
    有时并不需要代理,只是需要一个hosts,于是你可以使用wallproxy内置的hosts进行操作,他比起系统的hosts的优点是
1.不需要重新启动应用 2.支持泛域名(如上面的.appspot.com)
同时注意:必须让相应条目接受代理(就是在gfwlist或者autoproxy中加入这一规则)才能生效,例如说你写了
203.208.46.22 www.google.com
但是你的gfwlist规则里面并没有代理www.google.com,那么也不会生效。

11.4.关于https:使用AES-CBC-32后不需要使用https也能保证安全性
    如果真的想使用:
改成True,同时去掉gae_extra_option中的proxy设置(加个井号在前面就好)

11.5.关于该软件的携带问题(移动储存设备之类)
(最小)只需要携带上/local文件夹,
并且/local/cert/除了.cert文件夹以外的所有都可以删除,
但是到新的电脑需要运行一次程序以生成_ca.crt等文件再导入证书。

11.6.关于修改本地代理端口和地址
在这里将listen前面的井号去掉,再修改后面的设置即可(127.0.0.1是地址,8086是端口)
可以将IP设置成内网IP,局域网内其他设备就可以使用该IP进行http代理(证书是个问题)。
请注意修改地址和端口后需要重新在程序”代理设置”处设置代理(下图处),
Autoproxy、Switchy!、SwitchySharp等插件则需要更正代理服务器设置(将127.0.0.1:8086改成新的本地代理)

11.7. Switchy!配置教程(注意!与PP加速不兼容!请先关闭PP加速!)
 以及SwitchySharp配置教程(除下载地址以外步骤一样)(兼容PP加速)
(适合于Wallproxy-plugins用户,因为它会生成一个proxy.pac,并且包括了Wallproxy的”自定义规则”)
注:由于Switchy!修改系统代理而SwitchySharp使用原生API独立代理,所以后者兼容性更好,推荐后者
注:使用SwithcySharp需要Chrome版本号大于13.0.782.24 Chrome13(beta)下载地址:http://www.google.com/chrome/eula.html?extra=betachannel&platform=win
另外Chrome 14以上Switchy!失效,只能使用SwitchySharp。
建议下载插件时使用全局代理,否则可能导致无法下载插件
Switchy!下载地址(官方)(下载时建议使用全局代理):
SwithySharp下载地址(官方)(下载时建议使用全局代理):
下载好之后:先进入扩展程序设置界面
设置选择性代理(如果之后发现gfwlist失效可将下图URL改成:
并在hosts文件中加上“203.208.46.176 autoproxy2pac.appspot.com”(IP可ping google.cn获得)
接下来设置全局代理
(如果你修改本地代理端口和地址这里需要按照新的代理地址端口来填写)
完成后退出,点击浏览器右上角
顺便再说一下,Wallproxy-plugins中”自定义规则”修改在此有效
另外,SwitchySharp用户需要在 about:flags中启用”实验性扩展程序API”(如下图)
2011-8-22 20:31:50更新:如果是Google各项服务的用户请使用该pac
http://min.us/mHVfJz1Rc 解压后获得两pac,proxywithhosts.pac中添加了对Google+等服务Hosts的例外,而proxywithouthosts.pac没有(今后此link可能定时更新,请注意!
(请不要使用此PAC对原proxy.pac进行覆盖)(hosts范例在附录
两文件皆由autoproxy2pac项目文件decode base64后修改而成,添加(withouthosts版本无第一行)

11.8.Autoproxy设置
插件下载地址(官方)

下载,重启Firefox后先订阅规则(下图)

接着设置代理(下三图)
(下图处如果你修改本地代理端口和地址这里需要按照新的代理地址端口来填写)
接着将默认代理修改为Wallproxy(注:由于bug你可能改不动,此时请重启Firefox)

设置完成后修改代理的方法:单击右上角”福”字(这里的设定不会影响系统设定)
自定义规则的方法:点开首选项按”添加代理规则”、
                 或者在规则代理状态下打开要修改的页面后在下图红框处设置
另外请打开Autoproxy首选项,自定义两条规则:(第一条与youtube有关,第二条与twitter有关)
||ytimg.com(右图)
||twimg.com(右图)

Google各项服务用户建议设置:

使用了Google+用hosts用户建议设置 (hosts范例在附录
11.9. “自定义规则”中关于Google的建议设置
修改方法见11.2
首先是对于一般的Google服务:
||google.com
||google.com.hk
||googleusercontent.com
ssl.gstatic.com
接着是对于使用了Google+的hosts的用户(在附录中有Google+范例hosts
(警告:由于不明原因加了以下项目后可能导致Chrome无法识别,对于Chrome用户建议使用插件+自定义pac
@@plus.google.com
@@lh1.googleusercontent.com
@@lh2.googleusercontent.com
@@lh3.googleusercontent.com
@@lh4.googleusercontent.com
@@lh5.googleusercontent.com
@@lh6.googleusercontent.com
@@s1.googleusercontent.com
@@s2.googleusercontent.com
@@s3.googleusercontent.com
@@s4.googleusercontent.com
@@s5.googleusercontent.com
@@s6.googleusercontent.com
@@images1-focus-opensocial.googleusercontent.com
@@images2-focus-opensocial.googleusercontent.com
@@images3-focus-opensocial.googleusercontent.com
@@images4-focus-opensocial.googleusercontent.com
@@images5-focus-opensocial.googleusercontent.com
@@images6-focus-opensocial.googleusercontent.com
@@lh1.ggpht.com
@@lh2.ggpht.com
@@lh3.ggpht.com
@@lh4.ggpht.com
@@lh5.ggpht.com
@@lh6.ggpht.com
@@talkgadget.google.com
@@picasaweb.google.com
附录1 关于Google+的Hosts的范例
203.208.46.176 plus.google.com
203.208.46.176 talkgadget.google.com
203.208.46.176 picasaweb.google.com
203.208.46.176 lh1.googleusercontent.com
203.208.46.176 lh2.googleusercontent.com
203.208.46.176 lh3.googleusercontent.com
203.208.46.176 lh4.googleusercontent.com
203.208.4676 lh5.googleusercontent.com
203.208.46.176 lh6.googleusercontent.com
203.208.46.176 s1.googleusercontent.com
203.208.46.176 s2.googleusercontent.com
203.208.46.176 s3.googleusercontent.com
203.208.46.176 s4.googleusercontent.com
203.208.46.176 s5.googleusercontent.com
203.208.46.176 s6.googleusercontent.com
203.208.46.176 images1-focus-opensocial.googleusercontent.com
203.208.46.176 images2-focus-opensocial.googleusercontent.com
203.208.46.176 images3-focus-opensocial.googleusercontent.com
203.208.46.176 images4-focus-opensocial.googleusercontent.com
203.208.46.176 images5-focus-opensocial.googleusercontent.com
203.208.46.176 images6-focus-opensocial.googleusercontent.com
203.208.46.176 lh1.ggpht.com
203.208.46.176 lh2.ggpht.com
203.208.46.176 lh3.ggpht.com
203.208.46.176 lh4.ggpht.com
203.208.46.176 lh5.ggpht.com
203.208.46.176 lh6.ggpht.com
Wallproxy-plugins项目地址:http://code.google.com/p/wallproxy-plugins/

提高wallproxy的速度 多个GAE-proxy协作运行


gaeproxy = [{
    'url': 'http://app1.appspot.com/fetch.php',
    'key': '12345',#密码为12345
    'crypto':'AES-CBC-32'#加密方式为AES-CBC-32
    'proxy':'http://www.google.cn:80'#连接服务端的代理
},{#加密方式和上一个一样
    'url': 'http://app2.appspot.com/fetch.php',
    'key': '123\0x01456\0x024789\0x030'
},{#密码和上一个一样
'url': 'http://app3.appspot.com/fetch.php',
'crypto':'DES3-ECB'
},{'url': 'http://app3.appspot.com/fetch.php'},
'https://app4.appspot.com/fetch.php',
'https://app5.appspot.com/fetch.php']

只申请了一个app,怎样才能使用多个线程下载大文件(在线视频)? 
gaeproxy = [{
    'url': 'http://app1.appspot.com/fetch.php',
    'key': '12345',
    'crypto':'AES-CBC-32',
    'proxy':'http://www.google.cn:80',
    'max_threads':5 #限制一下最大线程数目,
}]
gaeproxy*=3 #将同一个app多复制几遍。
-------------------------------------------------------------------------------

wallproxy 1.0.4 安装使用指南完整版

wallproxy 1.0.4 安装使用说明 从基础开始学习安装配置 wallproxy。 wallproxy 粉丝团 提供下载地址 http://code.google.com/p/wallproxy-fensi/ 本wiki的目的
从0开始将wallproxyV1.0.4安装配置好 注意版本更新后请配置说明可能会更新较慢,请参考文件包里面的readme.txt和本文档
wallproxy需求
计算机装有windows或linux系统(对于mac,塞班,Android,iphone只能支持wallproxy部分功能) 手机(接收验证码用,有GAE的app者可以跳过,) 所在网络有办法连接上如下网站:
1.下载wallproxy用 https://code.google.com/p/wallproxy/ 2.上传服务器端用 https://appengine.google.com/ 3.上传服务器端登录用 https://www.google.com/accounts/ 4.连接代理用 http://shell.appspot.com/
这是wallproxy项目组提供的wallproxy使用说明表,转载下载希望能给大家提供帮助……
Wallproxy是由@hexieshe开发的基于Google App Engine和Python代理程序,旨在通过Google代理更好的访问互联网。
附录有对不满足上述条件的解决办法
内容 1.申请GAE的app
用浏览器访问https://appengine.google.com/ 登录你的某个gmail,如果gmail帐号没有请点下面的”Create an account now” 点Create Application 输入你的手机号以验证 输入一个”Application Identifier”,下面的”app-id”,建议随机生成一个6位字母串(如”tmgszm”),以避免你的id被屏蔽 “Application Title”,对于wallproxy来说无关紧要… 如果出现”Application Registered Successfully”即表示注册成功
注意事项:
每个gmail帐号一共能生成10个app 每个手机号只能验证成功一次 某个app的管理权限可以与其他gmail帐号分享
2.上传wallproxy的服务器端至GAE
用浏览器访问http://code.google.com/appengine/downloads.html 下载你的操作系统的python版SDK 安装GAE的SDK 修改wallproxy服务端(一般是server文件夹)的app.yaml文件第一行
application: app-id
将app-id用你第一步注册的id来代替(:号后面的空格不可少)
用GAE的SDK上传那个server文件夹
对于从旧版更新者:上传服务端后请先在Datastore Viewer中将原有WPConfig清空. URL说明:fetch.php对应于gaeproxy插件,fetch0.php对应于forold插件。
3.修改客户端配置文件
用文本编辑器(如UE,vim,word…)打开客户端目录(一般为local目录或者包含proxy.exe的目录)下的proxy.conf
gaeproxy = [{ 'url': 'http://.appspot.com/fetch.php', 'key': '', 'crypto':'XOR--0' }]
修改第16行: 将“’url’: ‘http://.appspot.com/fetch.php’”这里填上自己的appid。
注意所有标点符号使用英文半角. 配置文件满足python26/27语法规范.
4.导入证书
这个是可选功能,浏览https网站用,需要linux用户安装pyOpenSSL和python26/27 导入根证书:将_ca.crt导入为根证书,以后遇到https链接就不会弹出证书无效的警告了。首次运行程序后会生成cert/_ca.crt,导入后最好将以前添加例外的网站全部删除以避免冲突。 Windows下IE等浏览器双击_ca.crt选择导入证书按提示操作即可; Firefox依次操作:首选项->高级->加密->查看证书->证书机构->导入->选择_ca.crt文件->选中第一项->确定; Linux下Chrome按照LinuxCertManagement操作。 每次版本更新时有两个选择: 将上次导入的根证书删除,再把新的根证书添加进去. 直接将上一个版本的cert文件夹复制到新版本目录中去. (几乎不会遇到)机器上有多个版本的wallproxy目录: 将证书比较多的cert复制到其他目录去. 修改代码使不同目录的wallproxy生成署名不同的证书
4.客户端运行说明
使用GUI的用户,除startup.py、win-patch.py可删除外,其他文件应该保留,首次运行或修改配置文件后出错请运行 proxy.exe查看出错信息,配置正确后运行WallProxy.exe即可。如果不是直接拨号,可使用WallProxy管理IE代理以实现更快速 准确高效的自动代理选择,且可对IE、Chrome、Firefox等浏览器均有效。 Linux/Mac等类Unix用户,可仅保留startup.py、src.zip、proxy.conf,运行startup.py。如果提示缺少 OpenSSL且该系统没有其实现,可从其他地方复制cert目录(含ca.key和ca.crt);如果提示缺少AES等加密模块且该系统没有其实现, 可以改用XOR–0加密模式。AutoProxy插件生成的PAC能实现更快速准确高效的自动代理选择,可配合FoxyProxy等浏览器扩展使用。 Windows下使用源码的用户,可使用解压软件从proxy.exe中提取出OpenSSL和Crypto,然后运行win-patch.py对版本进 行修改(Python2.5下修改后OpenSSL可正常使用,加密模块不能,解决办法是寻找Crypto适用于Python2.5的版本或换 Python或改用XOR–0;Python2.6/2.7下修改后均可正常使用),需要保留的文件(夹)有startup.py、src.zip、 proxy.conf、OpenSSL、Crypto,运行startup.py。 虽然很少有人报告用于Android的情况,但如果GAppProxy能够运行,WallProxy肯定也是能够运行的(保留startup.py、 src.zip、proxy.conf及cert目录);“根据AutoProxy规则提供判断函数用于find_http_handler”也许此时才 真正派上用场(PAC可用时建议用PAC)。
附录 1.设置密码
这个是可选功能,目标为:提供一定安全性,通过其他防火墙或代理的过滤,和防止你的GAE代理地址被滥用.需要linux用户安装pyCrypto
第一次运行代码,先用 浏览器访问http://you-app-id.appspot.com/fetch.php,如果出现跳转至twitter.com表明成功访问(即使twitter.com网站打不开也没事) 或者正常代理使用该地址一次 下面是修改密码过程: 访问https://appengine.google.com/ 选择对应的app-id 选择左边栏data->Datastore Viewer 上面的Query->By kind:选择WPConfig,(如果没有WPConfig请重试第一步,或者配置好客户端尝试代理一次.) 点击下面的id=xx连接进入配置页面: siteKey为密码,输入一个密码即可,如:”TmgSzmfkw4bBZ”(英文,数字,字符,汉字,转义符…)(默认:””空) cryptomode为加密方法,可以不用修改,默认值:XOR–0,为了一定安全性建议使用AES-CBC-32 另外的cacheTime、cfgCacheTime、maxSize见字面意思分别是缓存时间、配置缓存时间、能够fetch最大大小 用原来的密码代理访问http://wallproxy/cache/reset 修改本地端参数
第一次运行后,本地端默认值为:
gaeproxy = [{ 'url': 'http://.appspot.com/fetch.php', 'key': '', 'crypto':'XOR--0' }]
服务端参数和本地端参数名称对照
siteKey->key cryptomode->crypto 比服务端多一对引号
2.配置文档FAQ
配置文档有很多函数接口,可以根据python26/27语法进行编写,也可以保留默认设置. 配置文件完全遵循python26/27语法.可以参考python对应文档 怎么设置多个app?
gaeproxy = [{ 'url': 'http://app1.appspot.com/fetch.php', 'key': '12345',#密码为12345 'crypto':'AES-CBC-32'#加密方式为AES-CBC-32 'proxy':'http://www.google.cn:80'#连接服务端的代理 },{#加密方式和上一个一样 'url': 'http://app2.appspot.com/fetch.php', 'key': '123\0x01456\0x024789\0x030' },{#密码和上一个一样 'url': 'http://app3.appspot.com/fetch.php', 'crypto':'DES3-ECB' },{'url': 'http://app3.appspot.com/fetch.php'}, 'https://app4.appspot.com/fetch.php', 'https://app5.appspot.com/fetch.php']
只申请了一个app,怎样才能使用多个线程下载大文件(在线视频)?
gaeproxy = [{ 'url': 'http://app1.appspot.com/fetch.php', 'key': '12345', 'crypto':'AES-CBC-32', 'proxy':'http://www.google.cn:80', 'max_threads':5 #限制一下最大线程数目, }] gaeproxy*=3 #将同一个app多复制几遍
3.plugins使用说明
一个plugins就是一个软件功能,以hosts为例:
使用hosts功能
plugins['plugins.hosts'] = ‘hosts’
不使用hosts功能
#plugins['plugins.hosts'] = ‘hosts’
hosts:将一个域名与另一个域名或ip绑定,解决DNS污染或ip屏蔽的问题,如:
hosts = ”’ www.google.cn .appspot.com 2404:6800:8005::65 www.youtube.com ”’ plugins['plugins.hosts'] = ‘hosts’
即将域名*.appspot.com与www.google.cn绑定,软件会向DNS解析出www.google.cn的ip地址A,然后访问域名*.appspot.com时,会直接连接ip地址A,而不会向DNS解析*.appspot.com的ip
gaeproxy:使用GAE服务器端进行代理(目前的主要功能) oldproxy:使用GAE0.4.0服务器端或者PHP服务器端进行代理 autoproxy:对访问的URL进行解析以判断直接连接还是使用GAE代理连接 rawproxy:使用其他代理进行连接,如http、https、socks4、socks5 fakehttps:伪造https证书以访问https网站,该功能需要将伪造证书_ca.crt放入浏览器信任列表
4.不满足wallproxy的需求
关于操作系统
由于作者只有windowsXP和Ubuntu(linux)系统,无法开发其他操作系统版本.这里只能抱歉了, 如果你有解决方法,请在issues里面告诉我们. 下面是其他人提出的解决办法(未验证) android: http://gaeproxy.googlecode.com
关于手机的问题(不成功,没有手机)
过几天再试一下. 在网上看到”淘宝某店可以帮你接收验证码”(未验证)
关于网站(网址)无法连接
无法连接code.google.com、appengine.google.com、www.google.com/accounts/
->请使用其他免费代理,如http、https、socks4、socks5
无法连接http://shell.appspot.com/ 修改代理地址为https://you-id.appspot.com/fetch.php 设置(需使用http://you-id.appspot.com/fetch.php)
hosts = ”’ www.google.cn .appspot.com ”’ plugins['plugins.hosts'] = ‘hosts’
其他声明
数据保密性不能保证,加密部分只是为了通过其他防火墙或代理的过滤,和防止你的GAE代理被滥用. 隐匿身份不能保证.
已知:
http方式访问GAE会在你机器到GAE传输过程中明文出现你的app-id. 在GAE到对方网站的传输过程中明文出现你的app-id 你访问的网站也会得到你的app-id(包含在UA中) 加密只是简单的将数据对称加密,很容易通过查看你计算机上的配置文件得到密码

wallproxy 1.0.4 稳定版本发布后宣布解散 1.0.4版常见问题汇总

看到wallproxy于2011年4月1日解散的消息,保存了项目中一些重要的数据。 希望对wallproxy爱好者有帮助。
Wallproxy是由@hexieshe开发的基于Google App Engine和Python代理程序,旨在通过Google代理更好的访问互联网。
FAQ 1.0.4版常见问题汇总 Featured Updated Mar 25 (3 days ago) by qgt…@gmail.com Wallproxy控制台报错是怎么回事?
Error code 502(最常见错误):
Message: ‘string index out of range’, ‘string index out of range’ Message: ‘timed out’, ‘timed out’ Message: ’10054′,’10054′ Message: ’10060 ‘, ’10060 ‘
—-by eric 0325—-
按如下方式设置多个DIRECT_PROXY:
DIRECT_PROXY = [{}, {'http':'127.0.0.1:8000'}]
某些网站可能要求使用同一个IP访问,如果设置了多个app,解决办法见如何选择代理
WallProxy支持生成根证书并签名子证书,为什么我的还是会弹出证书无效警告?
需要将ca.crt导入到浏览器根证书机构中,才能使得https不再弹出证书无效的警告。
首次运行程序后会在程序所在目录生成cert文件夹,里面有一个ca.crt文件 Firefox依次操作:“首选项->高级->加密->查看证书->证书机构->导入->选择ca.crt文件->选中第一项->确定”,即可导入成功 IE等Windows下浏览器用户双击ca.crt选择导入证书按提示操作即可导入成功 Linux下Chrome用户参考Linux下Chrome导入证书进行导入 导入后最好将原来添加例外的网站都删除以避免证书冲突
为什么我下载的程序没有cert目录及ca.crt文件?
ca.crt与ca.key是配套的,如果两者都公开,会留给外界证书欺骗的隐患,所以不再提供现成的ca.crt和ca.key,而是在每位用户 首次运行程序时自动生成。同时生成的还有一个serial文件,用于纪录签名子证书的序列号,因为一个ca签名的证书应该拥有不同的序列号。当这3个文件 缺少任意1个时都会重新生成内容不同的这3个文件,这时需要再重新导入根证书,所以不要随意删除这3个文件中的任何一个。
WallProxy导入根证书后不弹出警告毫无意义,是误导?
因为所有基于GAE的代理都不支持原生的https,都不是严格意义上安全的,所以将https走GAE代理后,不会因为不弹警告变得安全,更不会 因为弹警告变得安全。既然如此,不弹警告怎么说也要更方便一些。而且不导入而是将伪造的加入例外的话,遇到真正的证书后还会证书冲突。 再来说说安全性。WallProxy上行时所有数据经过zlib压缩后再对称加密;下行时对于html文件zlib压缩后再对称加密,其他文件比较压缩前 后的体积,选择体积小的对称加密后发回,尽量节约了流量,除非选择不加密模式否则不存在明文发送的可能。相比之下,GAppProxy上行时只对url进 行了base64加密,其他内容为明文;下行时对文本文件zlib压缩,其他文件原样发回。安全性还算是有提升的。 GAE代理无法原生支持https,既然拿它作https代理,就意味着更在乎速度而不是绝对安全,在这个基础上,能方便一点干嘛非要折磨自己呢?
上传的是fetch.py文件,为什么要使用fetch.php才能访问?
GAE的url是根据app.yaml中的设置映射到某一个文件的,在app.yaml中我们可以看到以下内容:
- url: /fetch\.php script: fetch.py
表示访问/fetch.php时实际是访问的fetch.py文件(因为url用的是正则表达式,所以需要用\.而不是.)。
怎么防止服务端被别人盗用?
通过上面的映射将url改为非默认的fetch.php可以一定程度上防盗用。 当然最好的方法是设置Site_Key和cryptomode实现加密来防盗用。 0.3.7版在fetch.py中有一行Site_Key = ”在引号中填入一个任意的字符串(可包含转义字符),然后在修改proxy.conf时’key’: ”中填入相同的字符串,即可。 0.3.8版服务器端在上传后到dashboard里面的Datastore Viewer设置WPConfig项里面的siteKey和cryptomode,然后然后在修改proxy.conf时’key’: ”和’crypto’:’AES-CBC-32′中填入两个相同的字符串,即可。 注意cryptomode只有固定的几十个值,详见wallproxy V0.3.8新版更新简介
访问服务端的默认UA是类似“Python-urllib/2.6”的,怎么伪装成浏览器?
配置文件proxy.conf中有个隐藏的HEADERS参数用于设置http头,默认是
HEADERS = {‘Content-Type’:’application/octet-stream’}
我们改为以下内容就伪装成了Firefox:
HEADERS = {‘Content-Type’:’application/octet-stream’, ‘User-Agent’:’Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.8) Gecko/20100723 Ubuntu/10.04 (lucid) Firefox/3.6.8′}
觉得默认的Content-Type不合理也可以进行修改。
提示“ImportError: No module named OpenSSL”
这是因为使用了源码版而Python没有OpenSSL模块。 Linux用户安装python-openssl即可解决:sudo apt-get install python-openssl Windows用户下载pyOpenSSL(建议使用Python 2.6)。
Linux用户使用含OpenSSL版仍然提示”ImportError”
这是因为那些包里面是Windows版的OpenSSL或者PyCrypto 请删除那些模块重新安装…
如何编写规则选择代理?
通过使用”==”、”dnsDomainIs”、”re.search”等,见配置书写规则。 例如在proxy.conf文件FindProxyForURL函数中添加代码:
…… scheme, host, port = parseURL(url) #找到此行,从此处开始添加 if host == ‘www.example.com’: return GAE_PROXY[0] #某些网站要求使用同一个IP访问,所以对它只使用一个GAE if dnsDomainIs(host, ‘example.com’): return PHP_PROXY #指定example.com的所有域名走PHP if re.search(r’www\.example\.com\/(watch|results|signin)\?’): return GAE_PROXY #通过正则指定特定网页走代理 if not AUTOPROXY_LIST: #此行截止 ……
Ubuntu下如何开机自动运行?
对于一般的Python程序,无论是在sh脚本文件中直接写路径还是在路径后加&,当该脚本运行结束时Python都会伴随结束。我们不由 脚本启动而是由会话启动则不会这样了,依次选择“系统 > 首选项 > 会话 > 会话启动程序 > 添加”,在这里设置启动就可以了。
--------------------------------------------------------------------------------------------------------------------------------------------

从0开始,wallproxyV1.0的安装和配置

V1.0版本安装配置说明 本wiki的目的 从0开始将wallproxyV1.0安装配置好

wallproxy需求

  1. 计算机装有windows或linux系统(对于mac,塞班,Android,iphone只能支持wallproxy部分功能,而且没有文档)
  2. 手机(接收验证码用,有GAE的app者可以跳过,)
  3. 所在网络有办法连接上如下网站:
  4. 1.下载wallproxy用 https://code.google.com/p/wallproxy/
    2.上传服务器端用 https://appengine.google.com/
    3.上传服务器端登录用 https://www.google.com/accounts/
    4.连接代理用 http://shell.appspot.com/
  5. 附录有对不满足上述条件的解决办法

内容

1.申请GAE的app

  1. 用浏览器访问https://appengine.google.com/
  2. 登录你的某个gmail,如果gmail帐号没有请点下面的”Create an account now”
  3. 点Create Application
  4. 输入你的手机号以验证
  5. 输入一个”Application Identifier”,下面的”app-id”,建议随机生成一个6位字母串(如”tmgszm”),以避免你的id被屏蔽
  6. “Application Title”,对于wallproxy来说无关紧要…
  7. 如果出现”Application Registered Successfully”即表示注册成功
注意事项:
  • 每个gmail帐号一共能生成10个app
  • 每个手机号只能验证成功一次
  • 某个app的管理权限可以与其他gmail帐号分享

2.上传wallproxy的服务器端至GAE

  1. 用浏览器访问http://code.google.com/appengine/downloads.html
  2. 下载你的操作系统的python版SDK
  3. 安装GAE的SDK
  4. 修改wallproxy服务端(一般是server文件夹)的app.yaml文件第一行
  5. application: app-id
将app-id用你第一步注册的id来代替(:号后面的空格不可少)
  1. 用GAE的SDK上传那个server文件夹

3.设置服务器端密码

  1. 先用浏览器访问http://you-app-id.appspot.com/fetch.php,如果出现跳转至twitter.com表明成功访问(即使twitter.com网站打不开也没事)
  2. 访问https://appengine.google.com/
  3. 选择对应的app-id
  4. 选择左边栏data->Datastore Viewer
  5. 上面的Query->By kind:选择WPConfig,(如果没有WPConfig请重试第一步,或者配置好客户端尝试代理一次.)
  6. 点击下面的id=xx连接进入配置页面
  7. siteKey为密码,输入一个密码即可,如:”TmgSzmfkw4bBZ”(英文,数字,字符,汉字,转义符…)(默认:”"空)
  8. cryptomode为加密方法,可以不用修改,(默认:AES-CBC-32)

4.修改客户端配置文件

  1. 用文本编辑器(如UE,vim,word…)打开客户端目录(一般为local目录或者包含proxy.exe的目录)下的proxy.conf
  2. 修改下面部分的app-id为你注册的id,同样密码和加密方法也需要修改:
siteKey->key cryptomode->crypto 比服务端多一对引号
gaeproxy = [{
'url':'https://app-id.appspot.com/fetch.php',
'key':'',#此处使用默认密码
'crypto':'AES-CBC-32',
}]
  1. 下面是一个可以正常工作的样例(关闭host功能,关闭AutoProxy功能)
  2. # -*- coding: utf-8 -*-
    #上面第一行保证可以用汉字注释
    #设置本地服务端参数,修改后需要重启才能生效
    server['listen'] = ('', 8086) #监听地址
    server['log_file'] = '' #''不记录 None终端 filename文件
    server['daemon_threads'] = True #主线程退出后自动结束子线程
    
    #设置plugins,需要停用可在plugins['xxxx']='yyy'前面加#
    
    #效果类似于修改hosts
    hosts = {'.appspot.com':'www.google.cn'}
    #plugins['plugins.hosts'] = 'hosts'
    
    #指定GAE服务端,设置多个时后面的继承第一个的设置,所以后面的指定一个url就行了,
    #而且推荐这么设置,可设置参数有url、key、crypto、proxy、headers、range0、range、
    #max_threads,proxy设置格式与下面rawproxy中设置相同
    gaeproxy = [{
    'url':'https://app-id.appspot.com/fetch.php',
    'key':'',#此处使用默认密码
    'crypto':'AES-CBC-32',
    }]
    plugins['plugins.gaeproxy'] = 'gaeproxy'
    
    #在这里设置0.4.0版的服务端,格式与上面相同
    oldproxy = []
    plugins['plugins.forold'] = 'oldproxy'
    
    #根据AutoProxy规则生成PAC用于浏览器或者提供判断函数用于find_http_handler,可指定
    #多个网址,如需使用代理,格式为(url, proxy),代理格式与下面rawproxy中设置相同
    autoproxy = {}
    autoproxy['PROXY 127.0.0.1:8086'] =(
    'http://autoproxy-gfwlist.googlecode.com/svn/trunk/gfwlist.txt',
    'file://userlist.ini'
    )
    autoproxy = autoproxy, 'proxy.pac' #如果指定文件名则生成PAC,否则提供函数
    #plugins['plugins.autoproxy'] = 'autoproxy'
    
    #与以前的DIRECT_PROXY类似,支持http、https、socks4、socks5,设置格式形如
    #'http://127.0.0.1:8086'或者多个级联,如('socks5://1.1.1.1:1','http://2.2.2.2:2')
    rawproxy = (None,)
    plugins['plugins.rawproxy'] = 'rawproxy'
    
    #用伪造证书来代理https
    fakehttps = ''
    plugins['plugins.fakehttps'] = 'fakehttps'
    
    #http(包括用fakehttps转来的https)代理选择函数
    # Note: url is not a string: for 'http://localhost:8086/index.html?arg=1'
    #       you can use url.scheme, url.hostname, url.port, url.path, url.query
    #       to get what you want, if you need the whole url, use url.geturl()
    #       if you want to get ip of the hostname, use url.ip you will get a
    #       pair like (['127.0.0.1'], ['::1'])
    #   >>> URL('http://localhost:8086/index.html?arg=1')
    #   URL(scheme='http', hostname='localhost', port=8086, username=None, 
    #   password=None, path='/index.html', params='', query='arg=1', fragment='')
    def find_http_handler(method, url, headers):
        if method not in ('GET', 'HEAD', 'PUT', 'POST', 'DELETE'):
            return rawproxy[0]
        if method=='DELETE' or int(headers.get('content-length', 0))>0x100000:
            return rawproxy[0]
        if 80<=url.port<=90 or 440<=url.port<=450 or url.port>=1024:
            return gaeproxy
        return rawproxy[0]
    
    #本地服务端支持http、https、socks4、socks5,但需要相应的处理插件来实现
    # reqtype: https/socks4/socks5
    # ip, port, cmd are same to args of check_client for socks4/socks5
    def find_sock_handler(reqtype, ip, port, cmd):
        if reqtype == 'https': return fakehttps
        return rawproxy[0]
    
    #验证用户有效性,如果仅供个人使用,return True即可
    # ip: client ip
    # reqtype: http/https/socks4/socks5
    # args: (method, url, headers) for http
    # args: (host, port, headers) for https
    # args: (cmd, ip, port, userid) for socks4
    # args: (cmd, ip, port, username, password) for socks5
    # please return True if client user is valid else False
    def check_client(ip, reqtype, args):
        return True
  3. 设置多个app样例如下:
  4. gaeproxy = [{
        'url': 'http://id1.appspot.com/fetch.php',
        'key': '',
        'crypto':'AES-CBC-32',
        'proxy':'http://www.google.cn'
    },
    {'url': 'http://id2.appspot.com/fetch.php','key':'123'},
    {'url': 'http://id3.appspot.com/fetch.php',},
    {'url': 'http://id4.appspot.com/fetch.php',},
    {'url': 'http://id5.appspot.com/fetch.php',},
    {'url': 'http://id6.appspot.com/fetch.php',}
    ]
  5. 配置文档有很多函数接口,可以根据python26/27语法进行编写,也可以保留默认设置.
  6. 配置文件完全遵循python26/27语法.可以参考python对应文档

plugins使用说明

一个plugins就是一个软件功能,以hosts为例:
使用hosts功能
plugins['plugins.hosts'] = 'hosts'
不使用hosts功能
#plugins['plugins.hosts'] = 'hosts'
  1. hosts:将一个域名与另一个域名或ip绑定,解决DNS污染或ip屏蔽的问题,如:
  2. hosts = {'.appspot.com':'www.google.cn'}
    即将域名*.appspot.comwww.google.cn绑定,软件会向DNS解析出www.google.cn的ip地址A,然后访问域名*.appspot.com时,会直接连接ip地址A,而不会向DNS解析*.appspot.com的ip
  3. gaeproxy:使用GAE服务器端进行代理(目前的主要功能)
  4. oldproxy:使用GAE0.4.0服务器端或者PHP服务器端进行代理
  5. autoproxy:对访问的URL进行解析以判断直接连接还是使用GAE代理连接
  6. rawproxy:使用其他代理进行连接,如http、https、socks4、socks5
  7. fakehttps:伪造https证书以访问https网站,该功能需要将伪造证书ca.crt放入浏览器信任列表

不满足wallproxy的需求

关于操作系统

  • 由于作者只有windowsXP和Ubuntu(linux)系统,无法开发其他操作系统版本.这里只能抱歉了,
  • 如果你有解决方法,请在issues里面告诉我们.

下面是其他人提出的解决办法(未验证)


  1. android: http://gaeproxy.googlecode.com

关于手机的问题(不成功,没有手机)


  • 过几天再试一下.
  • 在网上看到”淘宝某店可以帮你接收验证码”(未验证)

关于网站(网址)无法连接

  • 无法连接code.google.com、appengine.google.com、www.google.com/accounts/
->请使用其他免费代理,如http、https、socks4、socks5
  • 无法连接http://shell.appspot.com/
    1. 修改代理地址为https://you-id.appspot.com/fetch.php
    2. 设置(需使用http://you-id.appspot.com/fetch.php)
    3. hosts = {'.appspot.com':'www.google.cn'}
      plugins['plugins.hosts'] = 'hosts'

其他声明

  1. 数据保密性不能保证,加密部分只是为了通过其他防火墙或代理的过滤,和防止你的GAE代理被滥用.
  2. 隐匿身份不能保证.
  3. 已知:1.http方式访问GAE会在你机器到GAE传输过程中明文出现你的app-id.
         2.在GAE到对方网站的传输过程中明文出现你的app-id
         3.你访问的网站也会得到你的app-id(包含在UA中)
         4.加密只是简单的将数据对称加密,很容易通过查看你计算机上的配置文件得到密码