APJP更新,发布GAE版

2011年6月28日 | 分类: 翻墙相关 | 标签: , ,

大家熟悉的GAE代理工具hyk-proxy和WallProxy都有php模式,不过主要是用来弥补gae本身的不足一般不推荐单独使用;而APJP作为php空间翻墙的利器在其推出Android版后又发布了GAE版,不过刚刚发布还不完善,不像hyk-proxy和WallProxy那么强大。

APJP_APPENGINE 簡介

於香港時間2011年7月5日APJP代理項目發佈基於Google App Engine JAVA平台的服務器端,

客戶端仍舊使用APJP-0.7.0裡的JAVA客戶端和安卓(Android)系統的APJP_ANDROID-0.1.0,

APJP個人代理方案現在可部署到一般常見的PHP主機或Google App Engine JAVA平台

部署APJP_APPENGINE-0.2.0的準備

APJP_APPENGINE因基於由Google提供的應用平台GAE,因而必需申請google的GAE服務,以下為

申請google免費應用服務和部署APJP_APPENGINE的簡介

1)首先需要申請一個gmail賑號,然後到 https://appengine.google.com 開通GAE免費服務,

每個賑號可得到10個免費應用, 每個應用每天流量為1G

2)開通後創建一個應用,該應用的網址為 http(s)://your-app-id.appspot.com

your-app-id是自行選取的名稱

3)下載Google 應用服務引擎 SDK並安裝,下載點為

http://code.google.com/intl/zh-TW/appengine/downloads.html

下載Java 專用的 Google 應用服務引擎 SDK,然後安裝

4)於本項目內下載APJP_APPENGINE-0.2.0,並解壓縮,得到README.txt和一個war的目錄,

裡面包含index.html和WEB-INF目錄

5)以Ubuntu Linux為例,假設解壓縮後的APJP_APPENGINE置於$HOME目錄,

編緝$HOME/APJP_APPENGINE/war/WEB-INF/appengine-web.xml文件,

找到

<application>
</application>

改為

<application>

your-app-id

</application>

your-app-id為你的應用名稱, 執行

appengine-java-sdk-1.5.0/bin/appcfg.sh update $HOME/APJP_APPENGINE/war/

,命令列上將會提示輸入gmail賑號及密碼,上傳後訪問

http://your-app-id.appspot.com/KEY ,得到一個16個數字和字符的隨機組合,

例如: KEY=YWbKkCGgACNYeheG

Windows下開啟cmd.exe,執行

appengine-java-sdk-1.5.0\bin\appcfg.cmd update APJP_APPENINE\war

6)編緝APJP_APPENGINE/war/WEB-INF/appengine-web.xml文件

找尋

<property name="APJP_KEY" value="">
</property>

改為

<property name="APJP_KEY" value="YWbKkCGgACNYeheG">
</property>

這裡以上述的KEY作為例子,需填入訪問http://your-app-id.appspot.com/KEY

產生的APJP鑰匙

7)再次執行

appengine-java-sdk-1.5.0/bin/appcfg.sh update $HOME/APJP_APPENGINE/war/

並輸入gmail賑號和密碼,上傳成功後會有提示,訪問部署了的應用,會出現如下訊息

Hello App Engine!

Available Servlets:

HTTPServlet

HTTPSServlet

KEYServlet

表示部署GAE上的APJP服務器端成功

設定APJP_ANDROID客戶端和PC上的APJP客戶端

A)於PC上的作業系統,以Ubuntu Linux為例,假設APJP-0.7.0置於$HOME目錄

編緝APJP/JAVA/APJP.properties ,找到APJP_KEY, 填入相同的鑰匙,例如

APJP_KEY=

改為

APJP_KEY=YWbKkCGgACNYeheG

修改 APJP_LOCAL_HTTP_SERVER_REQUEST_URL=

改為

APJP_LOCAL_HTTP_SERVER_REQUEST_URL=http://your-app-id.appspot.com/HTTP

再修改APJP_LOCAL_HTTPS_SERVER_REQUEST_URL=

改為

APJP_LOCAL_HTTPS_SERVER_REQUEST_URL=http://your-appid.appspot.com/HTTPS

因GAE應用提供SSL安全連線,可使用https(備註1)

其它參數設置請參考本項目wiki裡的HowToInstall

B)於安卓(Android)系統上設定APJP_ANDROID客戶端

安裝APJP_ANDROID客戶端,請參考本項目wiki裡的AndroidApjpClient

解動apjp,點擊Perferences按鍵

APJP_KEY填入相同的鑰匙,然後尋找APJP_LOCAL_HTTP_SERVER,在REQUEST_URL填入

http://your-app-id.appspot.com/HTTP

https://your-app-id.appspot.com/HTTP(備註2),儲存設定

找到APJP_LOCAL_HTTPS_SERVER,在REQUEST_URL填入

http://your-app-id.appspot.com/HTTPS

https://your-app-id.appspot.com/HTTPS(備註3),儲存設定

其它參數設定及使用參閱wiki裡的AndroidApjpClient

補充

備註1)於PC上以https連接APJP_APPENGINE服務器會出現錯誤,這是因為沒有google的有效

證書(CA),故需要導入證書到 APJP/JAVA/APJP.jks文件裡,以下鏈接為作者給出的

解決方案 http://pastebin.com/Vvxkt12Q

備註2)APJP_ANDROID客戶端可以使用https連接服務器,而不需要導入證書,作者猜想是

安桌平台並不檢測證書,故能連上,但會出現無效證書警告

備註3)原因和(備註2)相同

基於免費Google App Engine 應用服務引擎對於上傳下載有限制,不能大於1M,

APJP_APPENGINE-0.2.0已突破其1M限制,上傳/下載單一文件為最大為35M,對

youtube的支援亦較好,如果部署了0.1.0版,建議升級

APJP使用自簽名證書(self-signed certificate)作為對https連接的解決方案,

不管是GAE還是PHP平台,都會出現證書警告, 嚴格的網站,例如gmail

可能會因證書問題而無法登錄

因為需要取得APJP_KEY的隨機鑰匙,故需要執行 appcfg.sh update war 兩次,以下

為非官方產生鑰匙的shell腳本, 以Ubuntu Linux系統為例

#! /bin/bash

#$PROG: apjp_key.sh

# non official APJP_KEY generator, public domain

char=”0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz”

length=${#char}

KEY=

min=1

max=16

while (( $min <= $max )) ; do

pick=${char:$((RANDOM%length)):1}

KEY=”${KEY}${pick}”

((min++))

done

printf ‘%s\n’ “KEY=${KEY}”

exit 0

##########END here####################

在終端機下執行腳本取得APJP_KEY的鑰匙後,於服務器端和客戶端修改參數

APJP作者的twitter id: @jvansteirteghem 如有任何對於APJP的建議或發現BUG,

請在Twitter上或本專案的issue告訴他,謝謝

APJP代理方案為開源軟件(Open Source Software)

项目地址http://code.google.com/p/apjp/

下载地址http://code.google.com/p/apjp/downloads/list

相关说明:http://code.google.com/p/apjp/w/list

本文原始地址:http://igfw.net/archives/3594

  1. 青山綠水
    2011年6月30日08:56

    這個東西我無法上傳到我自己的Appengine啊,總是提示上傳連接超時什麼的,是不是中國把相關上傳的服務器給封鎖了

    • iGFW
      2011年6月30日11:59

      应该是被墙了,你挂国外vpn上传试试。
      另外使用时估计也要代理或者修改hosts

      • 青山綠水
        2011年6月30日13:35

        果然是這個問題,可是我的電腦凡是Google的服務都是通過IPv6訪問的,不應該有被牆的問題啊

        • iGFW
          2011年6月30日14:38

          应该是有些服务没有通过IPv6网络上的IPv6列表不可能都那么全面。