1.0 APJP個人代理簡介及部署
在中國,出於眾所周知的原因,訪問網頁很多時候需要使用代理,而APJP是一項開源代理項目,目前最新版本為0.5.1,是非常適合國人使用的代理工具.
APJP分為兩部份,客戶端和服務器端,其中客戶端部份由JAVA語言編寫,服務器端以php語言編寫,客戶端部份是一個本地代理,通過和遠端服務器部份連接,以 RC4 128bit 加密通訊,達至一個比較完整的代理方案.其方式運作如下.
IE/Firefox/Chrome --> APJP客戶端 --(加密數據)--> APJP服務器 --> 目標網站
請求發出後得到的數據由原路返回本地的IE/Firefox/Chrome
IE/Firefox/Chrome <-- APJP客戶端 <--(加密數據)-- APJP服務器 <-- 目標網站
1.1 部署APJP個人代理
APJP不同於流行的代理方案,使用者必須自行安裝服器端到遠端主機,這主機需要如下條件
a) PHP版本為5.0.0或以上 b) 支援MCRYPT,版本為2.5.6或以上 c) 支援OPENSSL, 版本為0.9.6或以上
客戶端需要安裝JAVA,版本為1.5.0或以上
APJP_KEY.php 是一個用來產 RC4 128bit 鑰匙的檔案,這樣每一個APJP的代理方案加密特徵都不一樣,令安全性提高,有效對抗流量分析行為.
首先上傳 APJP_KEY.php到遠端主機目錄,例如public_html,並訪問該文件,這時會得到一組由16個數字和英文字母的隨機組合,頁面會出現類似這樣的 KEY = QqY40Oty3iNmUTBR ,那組隨機生成的子符是用作RC4 128bit加密的鑰匙.
修改 JAVA/APJP.properties 的 KEY= ,填入剛得到的鑰匙, 並在 APJP_REMOTE_PROXY_SERVER_URL= 填上你的主機地址,例如 http://www.abc.com/APJP.php 或者 https://www.abc.com/data/APJP.php ,這個必需填上正確的參數才能使APJP正確工作,其它如 APJP_REMOTE_PROXY_SERVER_USERNAME=
APJP_REMOTE_PROXY_SERVER_PASSWORD=
是主機登錄需要認證的參數,如果你的主機不需登錄,可不填寫
APJP可以加入第三方代理連接APJP服務器,在 APJP.properties裡其中的參數部份
APJP_PROXY_SERVER=false
APJP_PROXY_SERVER_ADDRESS=
APJP_PROXY_SERVER_PORT=
APJP_PROXY_SERVER_USERNAME=
APJP_PROXY_SERVER_PASSWORD=
如果加入第三方代理,把APJP_PROXY_SERVER=false 改為 APJP_PROXY_SERVER=true 依次填寫代理的地址,端口,用戶名和密碼,如果不需要把參數不改動即可
再下來修改 PHP/APJP.php 部份, 在該文件裡找到 $APJP_KEY = ''; 這行代碼, 修改為和 APJP.properties 裡的 KEY= 相同的子串,例如APJP.properties的參數是 KEY=ZzD8YWkPZsbazCsX ,則 APJP.php 的代碼改為 $APJP_KEY = 'ZzD8YWkPZsbazCsX'; 密鑰必需相同,APJP才能正常工作.完成後保存文件及退出
相關設定已經完成, 上傳APJP.php到主機,該目錄和APJP.properties的參數APJP_REMOTE_PROXY_SERVER_URL= 相同,例如上傳到主機的 public_html, 就是 http://www.abc.com/APJP.php
最後執行 JAVA/APJP.sh 或者 JAVA\APJP.bat, 終端機會出現類似訊息 APJP_LOCAL_PROXY_SERVER_ADDRESS: 127.0.0.1 APJP_LOCAL_PROXY_SERVER_PORT: 10000
把IE/Firefox/Chrome 的代理設為 127.0.0.1 ,端口 10000 ,並把SSL代理設為相同設定. 現在訪問的網站都會經過APJP個人代理
APJP為一種web tunnel的實現,對於嚴格的https證書會有些問題,因其使用自簽名證書(self-signed certificate)代替,訪問這些網站會出現警告訊息