My favorites | Sign in
Project Home Downloads Wiki Issues Source
Search
for
ConfigClient  
配置本地端
Updated May 21, 2011 by dtma...@163.com

本文档作者:bronze1man AT gmail.com

本wiki的目的

  • 从0开始将wallproxyV1.0.4安装配置好
  • 注意版本更新后请配置说明可能会更新较慢,请参考文件包里面的readme.txt和本文档

wallproxy需求

  1. 计算机装有windows或linux系统(对于mac,塞班,Android,iphone只能支持wallproxy部分功能)
  2. 手机(接收验证码用,有GAE的app者可以跳过,)
  3. 所在网络有办法连接上如下网站:
  4. 1.下载wallproxy用http://code.google.com/p/wallproxy-plugins/downloads/list
    2.上传服务器端用 https://appengine.google.com/
    3.上传服务器端登录用 https://www.google.com/accounts/
  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来代替(:号后面的空格不可少)
  6. 用GAE的SDK上传那个server文件夹(appcfg.py update server)
  • URL说明:fetch.php对应于gaeproxy插件,fetch0.php对应于forold插件
  • 也可以使用第三方提取的上传工具SDUpload上传(不用安装Python)

3.修改客户端配置文件

  1. 用文本编辑器(如UE,vim,word...)打开客户端目录(一般为local目录或者包含proxy.exe的目录)下的proxy.conf
  2. gaeproxy = ['http://.appspot.com/fetch.php']

或者

gaeproxy = [{
    'url': 'http://.appspot.com/fetch.php',
    'key': '',
    'crypto': 'AES-CBC-32',
}]

将“'http://.appspot.com/fetch.php'”这里填上自己的appid。

  • 注意标点符号使用英文半角,注意保留相关逗号

4.导入证书

  • 这个是可选功能,更方便浏览https网站用
  • 导入根证书:将_ca.crt导入为根证书,以后遇到https链接就不会弹出证书无效的警告了。首次运行程序后会生成cert/_ca.crt(直接提供根证书存在严重安全隐患,所以wallproxy默认不提供,需要首次运行后自动生成),导入后最好将以前添加例外的网站全部删除以避免冲突。
    • Windows下IE等浏览器双击_ca.crt选择导入证书按提示操作即可;
    • Firefox依次操作:首选项->高级->加密->查看证书->证书机构->导入->选择_ca.crt文件->选中第一项->确定;
    • Linux下Chrome按照LinuxCertManagement操作。
  • 每次版本更新时有两个选择:
    • 将上次导入的根证书删除,再把新的根证书添加进去.
    • 直接将上一个版本的cert文件夹复制到新版本目录中去.
  • 使用一段时间后,cert目录下会生成很多文件,如果需要清理,可删除_ca.crt、_ca.key、_serial之外的其他文件

4.客户端运行说明

  1. 一般来说,配置好后,Windows用户运行WallProxy.exe即可,建议通过托盘区左键菜单功能进行代理切换,该功能支持IE、Chrome等浏览器(Firefox使用系统代理的话也支持),具有比Proxy Switchy!AutoProxy2PAC更准确、性能更好、可自动更新gfwlist、物有所用的优点(即使不适用WallProxy作为代理,也可以使用该功能取代AutoProxy等浏览器扩展)。
  2. 使用GUI的用户,除startup.py、win-patch.py可删除外,其他文件应该保留,首次运行或修改配置文件后出错请运行proxy.exe查看出错信息,配置正确后运行WallProxy.exe即可。如果不是直接拨号,可使用WallProxy管理IE代理以实现更快速准确高效的自动代理选择,且可对IE、Chrome、Firefox等浏览器均有效。
  3. Linux/Mac等类Unix用户,可仅保留startup.py、src.zip、proxy.conf,运行startup.py。如果提示缺少OpenSSL且该系统没有其实现,可从其他地方复制cert目录(含_ca.key_ca.crt);如果提示缺少AES等加密模块且该系统没有其实现,可以改用XOR--0加密模式。AutoProxy插件生成的PAC能实现更快速准确高效的自动代理选择,可配合FoxyProxy等浏览器扩展使用。
  4. Windows下使用源码的用户,可使用解压软件从proxy.exe中提取出OpenSSLCrypto,然后运行win-patch.py对版本进行修改(Python2.5下修改后OpenSSL可正常使用,加密模块不能,解决办法是寻找Crypto适用于Python2.5的版本或换Python或改用XOR--0;Python2.6/2.7下修改后均可正常使用),需要保留的文件(夹)有startup.py、src.zip、proxy.conf、OpenSSLCrypto,运行startup.py。
  5. 虽然很少有人报告用于Android的情况,但如果GAppProxy能够运行,WallProxy肯定也是能够运行的(保留startup.py、src.zip、proxy.conf及cert目录);“根据AutoProxy规则提供判断函数用于find_http_handler”也许此时才真正派上用场(PAC可用时建议用PAC)。

附录

1.设置密码

  • 这个是可选功能,目标为:提供一定安全性,通过其他防火墙或代理的过滤,和防止你的GAE代理地址被滥用.需要linux用户安装pyCrypto
  1. 第一次运行代码,先用
    1. 浏览器访问http://you-app-id.appspot.com/fetch.php,如果出现跳转至twitter.com表明成功访问(即使twitter.com网站打不开也没事)
    2. 或者正常代理使用该地址一次
  2. 下面是修改密码过程:
    1. 访问https://appengine.google.com/
    2. 选择对应的app-id
    3. 选择左边栏data->Datastore Viewer
    4. 上面的Query->By kind:选择WPConfig,(如果没有WPConfig请重试第一步,或者配置好客户端尝试代理一次.)
    5. 点击下面的id=xx连接进入配置页面:
      1. siteKey为密码,可使用proxy.exe --key生成密码,然后填入引号内。
      2. cryptomode为加密方法,可以不用修改,默认值:XOR--0,为了一定安全性建议使用AES-CBC-32
      3. 另外的cacheTime、cfgCacheTime、maxSize见字面意思分别是缓存时间、配置缓存时间、能够fetch最大大小
    6. 用原来的密码代理访问http://wallproxy/cache/reset
    7. 修改本地端参数

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,怎样才能使用多个线程下载大文件(在线视频)?
  • 为了兼顾性能和速度,默认线程个数为app个数的两倍。你可以使用max_threads参数限制个数小于两倍,也可以将一个app复制多遍来使之大于两倍
    gaeproxy = [{
        'url': 'http://app1.appspot.com/fetch.php',
        'key': '12345',
        'crypto':'AES-CBC-32',
        'max_threads':5 #限制一下最大线程数目,
    }]
    gaeproxy*=3 #将同一个app多复制几遍

3.plugins使用说明

一个plugins就是一个软件功能,以hosts为例:

使用hosts功能

plugins['plugins.hosts'] = 'hosts'

不使用hosts功能

#plugins['plugins.hosts'] = 'hosts'
  1. hosts:将一个域名与另一个域名或ip绑定,解决DNS污染或ip屏蔽的问题,如:
  2. hosts = '''
    www.google.cn  .appspot.com
    2404:6800:8005::65 www.youtube.com
    '''
    plugins['plugins.hosts'] = 'hosts'
    即将域名*.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放入浏览器信任列表

其他声明

  1. 如果你使用AES-CBC-32加密模式,相比于其他基于GAE的代理,WallProxy的安全性要高很多,所以如果该加密模式可用,建议使用该模式。
  2. 如果该加密模式不可用,你可以使用XOR加密,这个安全性要低,但仍比其他很多基于GAE的代理要高。
  3. 如果你使用XOR--0模式并将key设为空,则不会加密,不过上行数据仍然是经过了压缩的,并非明文,安全性与GAppProxy差不多。
Powered by Google Project Hosting