Tags: proxy

我的代理被挤爆鸟…

在之前的一篇文章中我公布了自己的GAppProxy服务器地址,现在它终于达到了Google App Engine免费空间的带宽上限,被挤爆鸟 8O 我另外新开了一个服务器,地址是:http://confusedfly2.appspot.com 看看它多长时间能爆掉

另外就是,GAppProxy最近有了更新,修复了在处理cookies时候的bug。以前经常遇到的使用代理的时候不能登录twitter等问题现在已经不存在了。而且从GAE的路线图中可以看到,未来将会添加对大文件处理的支持。而且貌似最新版的GAppProxy通过使用多段下载的方式来突破GAE免费版一次访问只能下载1M文件的限制。

GAppProxy的管理功能

之前因为工作的原因掉到了没有网的地方去了好长一段时间,现在终于回到文明社会了。。。

今天无聊翻GAppProxy的代码,才发现它的服务器一段的代码非常的简单,只有3个源文件,也就是fetch.py, admin.py和accesslog.py。其中代理功能就是使用fetch.py来实现的,而admin和accesslog则是实现了简单的日志功能。于是乎尝试访问admin.py,但是服务器只是简单的丢出来一句“Forbiden!”了事。看了看代码才发现,可能是作者考虑到性能的因素把日志功能部分的代码给注释掉了,而且官方网站上面也没有任何关于这个管理功能的文档。

要打开这个功能很简单,只需要做以下几个修改:

  1. 在fetch.py的185行 logAccess(netloc, self.request.remote_addr) 取消注释
  2. 在fetch.py的32行 from accesslog import logAccess 取消注释
  3. admin.py的第90行 if user.email() == ‘xxxxx’: 把xxxx改成你管理GAE用的google账号地址

好了,现在只需要更新服务期短的代码就可以使用简单的日志功能了。GAppProxy带的有两个简单的功能:记录使用代理机器的IP和请求访问的网址。只需要在登录google账号以后访问以下网址:


http://xxxx.appspot.com/admin.py?obj=accesslog&cmd=list_pop_desti

http://xxxx.appspot.com/admin.py?obj=accesslog&cmd=list_freq_fro

http://xxxx.appspot.com/admin.py?obj=accesslog&cmd=clear

就可以查看最热门访问站点、查看最常用的用户和清除记录。

但是现在GAppProxy的记录功能还很简单,这也许也是为什么作者把它注释掉的原因。但是使用这个东西还是能看到一些有意思的东西的,比如说我看了看我之前公布出来的FetchServer的记录,发现其实还是有一些人一直在用它,而且还发现了一些被墙掉的有意思的网站 :D 貌似现在就属GAppProxy和Tor是最稳定的翻墙手段了,估计只要GAE一天不倒这个GAppProxy就可以一直用下去。

我的GAppProxy Fetch Server

GAppProxy是一个很好用的代理,如果不明白我在说什么的话可以参考我以前的一篇文章

一两周前开始我的GAppProxy已经不能用了,刚开始时大部分情况下还是正常的,只是时不时的提示我Fetch Server Error。后来则是百分之百概率的不能用。我之前也注册过一个Google App弄着玩,只是没有时间仔细研究。今天打开Google App的设置发现Google已经开始限制程序对CPU占用率、带宽等资源的使用了,超过特定负荷的程序必须要付费才能继续使用。GAppProxy不好使十有八九是因为默认的Fetch Server已经被挤爆了。

于是乎按照GAppProxy官方wiki上的说法自己加了一个Fetch Server,结果已经好些天不能用的代理一下起死回生了。考虑假设一个Fetch Server对于大多数人来说步骤都太繁琐,便把我的地址公布出来大家用吧:
http://confusedfly.appspot.com/fetch.py

在Windows下面使用的时候只需要打开压缩包里面的gui.exe, 然后在Use FetchServer中填上上面这个地址,并且保存、重新启动GAppProxy就可以了。

对于Linux用户,只需要打开proxy.conf,并且填入:
fetch_server = http://confusedfly.appspot.com/fetch.py
就可以了。

使用GAppProxy代理突破教育网限制

GAppProxy

校园网不能访问国外网站的问题是个老大难了,因为宿舍里面有网通的网络可以用,以前也一直没有怎么花心思弄过。前段时间和人聊起这个问题的时候才知道有诸多方法可以突破这个限制,用来用去感觉最方便的一个就是用GAppProxy了。

GAppProxy是一个基于Google App的开源代理软件,它运行以后会将主机自身作为一个代理服务器来使用。具体原理不是很清楚,但是用起来速度很好,浏览网页国外感觉和adsl没有什么区别。因为是使用python写的,所以它可以在windows和linux下使用。

Linux下安装

GAppProxy的主页去把它下载下来,linux下的话只需要运行到localproxy目录下运行

python proxy.py

就可以了。正常的话会有类似如下的显示:

HTTP Enabled : YES
HTTPS Enabled: NO
Local Proxy:
Fetch Server: http://fetchserver2.appspot.com/fetch.py

它会自动下载一个东东,保持这个shell不要被关掉,然后再到FireFox里面将代理设置为127.0.0.1:8000就可以了。很简单吧?配合FoxyProxy之类的FireFox插件来使用起来很好很强大。

Windows下安装

在Windows下的话只需要下载官方的Windows包,运行其中的gui.exe就可以了。成功的话会弹出一个窗口,点击Status按钮,如果显示”Proxy already running”的话则代理已经在运行了,只需要在浏览器中设置代理为127.0.0.1:8000即可。

FetchServer设置

这里还需要设置一下FetchServer。你下载下来的GAppProxy只是一个客户端,还需要一个服务器端的FetchServer才可以运行。GAppProxy默认链接的FetchServer已经被挤爆了,总是会提示Fetch Server Error。你可以参考我的另一片文章,连接到我的FetchServer。

Firefox扩展

FoxyProxy.png
FoxyProxy是一个很好用的代理插件,你可以在这个插件中添加很多个代理服务器,并且创建一定的规则来指定特定的网站使用特定的代理。安装完以后,在FireFox的状态栏里面会出现如下的FoxyProxy按钮:

FoxyProxy_statusbar.png

双击它就能出现FoxyProxy的设置对话框。在Proxies标签里面可以设置要使用的代理服务器,点击Add New Proxy,其中的Proxy Name可以随便填,在Proxy Details中的Manual Proxy Configuration中填上代理服务器的地址和端口。这里应该填127.0.0.1,端口是8000。
URL Pattern里面添加规则,点击Add New Pattern可以打开添加新规则的对话框。Pattern Name照样可以随便写,URL Pattern中则是匹配模式。比如说*.com/*就可以匹配所有网址中包含.com的网站(如果你对正则表达式比较熟悉的话还可以用正则表达式写出更为复杂和精确的匹配模式)。规则有两种–黑名单和白名单,黑名单里面的网址不会引用代理,白名单里面的则相反使用该代理浏览。
规则添加完以后就可以开始用了:右键单击状态栏中的FoxyProxy,选择Use proxies based on their predefined patterns and proxies就可以了。