1. 程式人生 > >PHPProxy建立代理伺服器

PHPProxy建立代理伺服器

在phpproxy的readme中有關於原理的講解。首先看看http請求的流程可以幫助你正確的使用PHPProxy,如下:
| 1 你的瀏覽器
| 2 PHPProxy客戶端模組(phpproxy.py)
| [3] 可能存在的客戶端代理(比如你本來就是使用代理上網的,公司的代理等等)
| 4 PHP空間 + PHPProxy服務端模組(phpproxy.php)
| [5] 可能存在的伺服器端代理(比如你的PHP空間也是用代理上網的)
|/ 6 目標資源

說明:

首先瀏覽器(1)傳送http請求到PHPProxy(2),phpproxy.py(2)將這個http請求壓縮到另一個http請求中,然後以 表單引數的形式直接或通過可能存在在代理[3]傳送到phpproxy.php(4),phpproxy(4)收到請求後,解壓出原始的http請求,直 接或通過可能存在的proxy[5]傳送到目標資源(6)。

安裝:

伺服器端:下載phpproxy-0.6.tar.gz, 解壓,開啟phpproxy.php,此檔案的原版有問題,已經過我修改。預設所有IP都具備訪問許可權,此時一定要注意保密proxy地址,否則大家都來 用這個proxy的話,空間的流量會讓你吃不消的。要只想讓自己用,把第7行裡的1.2.3.4改成你的IP,並去掉行第7行和第20行的行首的”#”字 符,這樣就只有你才可以使用這個代理。

上傳整個資料夾到你的空間中,記下它的路徑,如http://example/phpproxy/phpproxy.php

客戶端:下載phpproxy.py.exe-0.6.zip,解壓到本機資料夾,開啟phpproxy.py.conf,定位到14行,把phpproxy的值設定成http://example/phpproxy/phpproxy.php要設定成你空間中的phpproxy.php的url地址。

phpproxy.py.conf如下修改:localport為本地的埠號,phpproxy為空間中phpproxy.php檔案的位置。

執行client資料夾中的phpproxy.py.exe,保持命令視窗一直開啟,把瀏覽器的代理地理設定成127.0.0.1:8888,(這 裡的8888是上面在phpproxy.py.conf中設定的埠號,可以自己改)OK了,試試被牆的googlepage,windows live skydrive ……

看到這裡,別以為本文已經完了。如果你下載了官方的壓縮包而沒有任何修改,那麼可能根本就用不起來。如果下載了上文中的壓縮包,儘管PHPProxy已經可以使用,然而直接訪問這個頁面的時候會產生許多問題。於是偉大了DIY精神又出現了,藉助

PHPNow,我嘗試在本機上除錯了這個程式,修改了其中一些小地方,隱藏了一些惱人的錯誤提示,現在的它基本能夠直接勉強訪問網站(不使用客戶端,應急用),所以算基本正常了。我又打了一個包,發在網盤裡。其中禁用了服務端的IP限制,修正了原版的Bug,調整了頁面顯示的內容,基本算是拿到手可以直接傳在空間上的。需要注意的是,一定要保密檔名,否則被別人盜用消耗你寶貴的流量。在本頁上端的網盤裡也存有這個壓縮包的副本。

演示:實際上,在這個空間和Dreamhost空間裡,我都放了這個小程式。如果需要演示,你可以在下面留言,我會單獨發郵件告訴你Dreamhost上的這個程式地址,當然你必須保證不公開它,不用它來訪問有爭議的網站,我不希望有IP被封的風險。

另外,如果你僅僅需要訪問被和諧的網站,不妨試試[界無](反過來讀,為了避免被和諧只能這樣寫了)這款軟體,偉大的Google能帶你找到它。上面介紹的PHPProxy,對我來說最主要的還是加速網頁訪問和在教育網內訪問外國網站。