用Google App Engine做个人代理服务器(Linux版)

392 views
Skip to first unread message

Hoffmann

unread,
Feb 27, 2009, 6:19:32 AM2/27/09
to GAppProxy
写了一个教程,希望对像我一样的Linux菜鸟有所帮助

博文的链接地址是:http://hi.baidu.com/bdhoffmann/blog/item/
db383603b37756703812bbc8.html
~~~~~
身处教育网,找代理上网总是一件烦人甚至恼人的事情。某次和同学闲聊,他推荐了Gappproxy给我使用,我用了一下,感觉还可以。现将
自己使用的一些心得记录如下,希望能让广大Linuxer受益。(windows下使用的详细教程请参看http://skydao.com/
post/google- app-engine-to-do-with-personal-proxy-server-second-
edition/)

使用的过程主要分为两个部分。第一部分是上传一个文件到google appengine(GAE),第二部分是建立本地和GAE的连
接。

1:上传
1.1 创建一个google appengine帐号
点击链接 (http://appengine.google.com/)申请注册一个google appengine帐号,注册需要一个
gmail邮箱,另外在注册的过程中需要填入手机号码进行验证。

1.2 安装python
我的系统是Ubuntu8.04,所以只要apt-get install python就可以了

1.3 下载并安装google appengine软件包
点击链接(http://code.google.com/appengine/downloads.html),下载Linux平台的
Google App Engine SDK,并进行解压。我的解压路径是桌面上的GAE目录。

1.4 下载并解压fetchserver源码包。
点击链接(http://code.google.com/p/gappproxy/downloads/list),下载里面的
fetchserver- 1.0.0beta.tar.gz。这个是GAppProxy服务端源码包,用于架设自己的fetchServer。要将这
个包进行解压。然后将解压后的文件(fetchServer)夹放入Google App Engine SDK的安装目录。

1.5 编辑fetchServer目录下的app.yaml文件。
用nano或者其他方式编辑这个文件,主要编辑的参数是第一行application.
~~~~~~~~~~~~~~~~~~~~
application: aaaaaa(比如我的比如你的AppEngine地址是aaaaaaaaa.appspot.com,那就是
application帐号就是aaaaaa))
~~~~~~~~~~~~~~~~~~~~
编辑结束后,保存并关闭这个文件。

1.6 上传
进入Google App Engine SDK目录。然后运行命令:appcfg.py update fetchserver。程序会要求
你填入你的gmail和gmail的密码。
~~~~~~
hoffmann@ubuntu:~/Desktop/GAE$ python appcfg.py update fetchServer/
Scanning files on local disk.
Initiating update.
Email: aaa...@gmail.com
Password for aaa...@gmail.com:
Cloning 1 application file.
Deploying new version.
Checking if new version is ready to serve.
Closing update: new version is ready to start serving.
~~~~~~
OK ,上传部分完毕。

2:连接
2.1:下载客户端
点击链接(http://code.google.com/p/gappproxy/downloads/list),下载
gappproxy- 1.0.0beta.tar.gz ,这个是GAppProxy源码包,内含客户端所有源码,并将这个文件进行解压。我还是解压
在桌面上,文件夹的名字是gappproxy。

2.2 更改配置文件
进入gappproxy目录,用nano或者其他的文件编辑器编辑proxy.conf文件。在fetchserver一栏里面填写自己的
apengine地址。并去掉一行开头的井号(这个是注释用的)
~~~~~~~~~~~~~~~~~
GAppProxy configuration

# local_proxy
#local_proxy = host:port
#
# If local proxy needs authentication:
#local_proxy = user:passwd@host:port

fetch server
#fetch_server = http://127.0.0.1:8080/fetch.py
fetch_server = http://aaaaaa.appspot.com/fetch.py ###填写自己注册的appengine地
址。
#fetch_server = http://fetchserver-nolog.appspot.com/fetch.py
~~~~~~~~~~~~~~~~~~~~
然后保存并关闭。

2.3 运行代理服务
直接在终端里面运行 python proxy.py.如果看到HTTP Enabled : YES的字样,恭喜你,代理已经成功开启了。你
所要做的就是将这个终端一直开着,就可以上网了。代理的地址是127.0.0.1:8000.这个可以在浏览器里面设置的。
~~~~~~~~~~~~~~~
hoffmann@ubuntu:~/Desktop/gappproxy$ python proxy.py
--------------------------------------------
HTTP Enabled : YES
HTTPS Enabled: NO
Local Proxy :
Fetch Server : http://aaaaaa.appspot.com/fetch.py
--------------------------------------------
~~~~~~~~~~~~~~~~~~

注:
1:感谢博客天空岛里面的文章(http://skydao.com/post/google-app-engine-to-do-with-
personal-proxy-server-second-edition/)以及group上面WCM的指点。

2:虽然在主页上提到gappproxy仅支持标准80端口的HTTP协议和443端口的HTTPS协议,其他端口均不支持.但是我在实际应用的过程
中,上微软的live.com,总是上不去。=。=

3:现在google appengine开始收费了,标准为:每额外一小时CPU处理时间收费10美分;输入应用的数据每1GB收费10美分,输出的
数据收费12美分;每一 GB数据存储一个月收费15美分。所以强烈推荐大家自己在google appenging上自己搭建服务器。因为,免费的流
量对于个人来说是够用的,但是如果大家都用软件作者的服务器(客户端conf文件里面默认的那个),那么作者估计会花费大笔的银子的。

Xiao XQ

unread,
Feb 27, 2009, 6:28:23 AM2/27/09
to gapp...@googlegroups.com
zan ~~~

Best wishes,
Xuqiong Xiao(效旭琼)
--------------------------------
Department of Chemistry
Fudan University
--------------------------------


2009/2/27 Hoffmann <jij...@gmail.com>

且听风吟

unread,
Feb 27, 2009, 6:36:01 AM2/27/09
to gapp...@googlegroups.com
很感谢,将来用得着的。

2009/2/27 Xiao XQ <xqx...@gmail.com>

dug...@188.com

unread,
Feb 27, 2009, 8:04:12 AM2/27/09
to GAppProxy
写的很详细!
1,live.com我是能浏览的,只是英文界面而已。
2,你的Python版本有点旧了,最好升级到2.6,这样HTTPS就可以用了。
谢谢对我花银子的担心,实际上不会的,超载了proxy会停用,但没法收钱,因为我没有设我的信用卡帐号,呵呵。

> #fetch_server =http://fetchserver-nolog.appspot.com/fetch.py

Hai-Ping

unread,
Apr 4, 2009, 10:21:57 AM4/4/09
to GAppProxy
我运行出现这样的问题:设置代理也用不了。。

python proxy.py
--------------------------------------------
HTTP Enabled : YES
HTTPS Enabled: NO

Direct Fetch : YES
Local Proxy :
Fetch Server : http://nanoproxy.appspot.com/fetch.py
--------------------------------------------
Traceback (most recent call last):
File "proxy.py", line 351, in <module>
LocalProxyHandler)
File "/usr/lib/python2.5/SocketServer.py", line 330, in __init__
self.server_bind()
File "/usr/lib/python2.5/BaseHTTPServer.py", line 101, in
server_bind
SocketServer.TCPServer.server_bind(self)
File "/usr/lib/python2.5/SocketServer.py", line 341, in server_bind
self.socket.bind(self.server_address)
File "<string>", line 1, in bind
socket.error: (98, 'Address already in use')

On 2月27日, 下午7时19分, Hoffmann <jiji...@gmail.com> wrote:

> #fetch_server =http://127.0.0.1:8080/fetch.py
> fetch_server =http://aaaaaa.appspot.com/fetch.py###填写自己注册的appengine地
> 址。

> #fetch_server =http://fetchserver-nolog.appspot.com/fetch.py

moonese

unread,
Apr 5, 2009, 9:51:40 PM4/5/09
to GAppProxy
我这里是好的,会不会跟你访问的具体网站有关系?
你试着用 GAppProxy 代理访问普通的网站,比如 sina 看是不是有问题。。

Hai-Ping Lan

unread,
Apr 6, 2009, 2:11:43 AM4/6/09
to gapp...@googlegroups.com
没用的,呵呵,我访问sina也不可以

2009/4/6 moonese <moo...@gmail.com>



--
Best Regards!

Yours,

Hai-Ping Lan

Key Lab of Physics and Chemistry for NanoDevices
and Department of Electronics
Peking University

moonese

unread,
Apr 6, 2009, 10:37:01 AM4/6/09
to GAppProxy
socket.error: (98, 'Address already in use')

看这个错误,会不会是8000端口被占用了? (不懂 python,猜的哈。)

先停掉 gappproxy,用下面的命令看看端口是不是被用着。
netstat -an | grep 8000

如果是的话,再用:
lsof | grep 8000
看是哪个程序捣鬼。


On Apr 6, 2:11 pm, Hai-Ping Lan <haiping...@gmail.com> wrote:
> 没用的,呵呵,我访问sina也不可以
>

> 2009/4/6 moonese <moon...@gmail.com>
>
>

Hai-Ping Lan

unread,
Apr 6, 2009, 12:36:41 PM4/6/09
to gapp...@googlegroups.com
貌似8000端口被占用,
:netstat -an | grep 8000
tcp        0      0 127.0.0.1:8000            0.0.0.0:*                   LISTEN     
unix  3      [ ]         STREAM     CONNECTED     18000  /tmp/.ICE-unix/2810

lsof没给出啥程序信息,
lsof | grep 8000
gnome-ses 2810   haiping   27u     unix 0xf1fb5540                18000 /tmp/.ICE-unix/2810
dbus-daem 2949   haiping   26u     unix 0xf14a8000                18424 socket
gconfd-2  2956   haiping   19u     unix 0xf2e28000                17193 socket


我该如何继续整呢?
多谢

2009/4/6 moonese <moo...@gmail.com>

Du XiaoGang

unread,
Apr 7, 2009, 10:23:42 AM4/7/09
to gapp...@googlegroups.com
可以修改common.py中的DEF_LISTEN_PORT变量

如果实在*nix下的话

在 2009-04-07二的 00:36 +0800,Hai-Ping Lan写道:

Hai-Ping Lan

unread,
Apr 7, 2009, 2:35:54 PM4/7/09
to gapp...@googlegroups.com
改了,没出错,但是连接不上。

多谢

祝好。

2009/4/7 Du XiaoGang <dug...@188.com>
Reply all
Reply to author
Forward
0 new messages