個人用Webプロキシを作成する
個人のWebプロキシを整理するには、2つのツールが必要です。「左の」ホスティングとプロキシスクリプトです。 しかし、解決策に進む前に、私たちがしていることの概念に関する少しの理論があります。
ウィキペディアによると:
Webプロキシ(英語の「Webベースプロキシ」)はプロキシサーバおよびアノニマイザで、WebサーバにインストールされたWebアプリケーションで、さまざまなWebサイトからコンテンツをダウンロードするための仲介者として機能します。
Webプロキシは次の目的で使用できます。
- webサイトのダウンロードを高速化する。
- オンラインサービスのテスト
- 管理者制限のバイパス ローカルネットワーク 特定のWebサイトアドレスへのアクセス
- 実際のIPアドレスとWebサイトへの匿名アクセスを隠す
- 特定の国のユーザーを閲覧するために閉鎖されたウェブサイトへのアクセス。
- そして他の多くの目的。
それでは、理論を終えて実践に移りましょう。
1. Webプロキシスクリプト最小限の必要な機能を備えた単純なWebプロキシスクリプト。
スクリプトをダウンロードする(28.4 Kb)
無料ホスティング
左側のIPアドレスだけでなく、プロキシ自体にもスクリプトを配置する必要があります。
私はup100mb.comを選びました。 php、ftp、セカンドレベルドメインでの無料ホスティング。 あなたが必要とするすべて。
3.インストール
このリンクでホスティングに登録してください。 あなたはあなたのサイトのFTPにアクセスすることができます。 Webプロキシアーカイブをダウンロードし、あなたのサイトのFTPの正しいフォルダに解凍します。 新しいWebサイトにアクセスしてWebプロキシを使用します。 今すぐサイトの所有者はあなたのアドレスの代わりにホスティングを見るでしょう。
P.S まあ、それだけです! 目立たないようにしてください=)
はじめに
この記事では、PHPの非標準的な使用法について説明します。仮想プロキシサーバーとして使用できる圧縮PHPスクリプトを作成するためです。 PHPの専門家は、ここで新しいことを見つけることはまずありません。phpのこの使用法は私のノウハウではなく、phpの特別な機能も使用されていません。 この記事の残りの部分では、Webを閲覧しながらキロメガバイトを節約するための新しい方法について学びます。 この記事を読んだことで、意欲的な誰かが明日彼らのメガバイトを節約し始めても、私は驚かないでしょう。 特にこの仮想プロキシの透過的な作業の仕組みを構築する方法を学んだ後は特に。
私のダイアルアップの夜明けに、モデムは圧縮されたデータを交換しました、それがウェブサーフィンの最終的なスピードがzipアーカイブをダウンロードすることと比較して速い理由です。 したがって、圧縮中のモデムプロセッサの負荷により、クライアントの時間と費用が節約されました。 他の時代は来ました:ダイアルアップはマークされたラインの猛攻撃の下で次第に地面を失いつつある。 そして、一般的に誰かのプロセッサ能力でトラフィックを圧縮することについての話はありません。トラフィックは元の形式のままであるか、またはベイティックは圧縮されていません。
(これが側面に注意されていない場合
サーバー)。 しかし、あなたはそれを絞ることができます!
これを行うには、ブラウザとWebサーバーの間に別のリンクが必要です。モデムのように、すべての着信(ブラウザへの着信)トラフィックが圧縮されます。 リンクは、リモートWebサーバー上の見た目の簡単なphpスクリプトになります。 それはあなたが必要とするページをダウンロードして、圧縮された形でブラウザにそれを与える特別に細工された要求に応えるためのこのスクリプトです。 このphpスクリプトが配置されているホスティングの主な要件は、ホスティングバナーがないこと、CURLとGZIPを使用できること(関数呼び出しでスクリプトを実行することで可用性を確認できること)です。
phpinfo)
中間トラフィック圧縮システムの動作メカニズムをよりよく理解するために、その動作の技術をより詳細に検討することにしよう。
次の図は、ページをロードするための3つのオプションのスキームを示しています。通常の呼び出し、中間サーバーでのデータ圧縮、および中間サーバーでのページの圧縮を使用した透過的な作業です。 それぞれの場合に何が起こるかを考えてください。
2. Webからページを取得するブラウザ
2.1。 通常の電話
ユーザーがsite.comサーバーのpage.htmlページに興味があるとします。 アドレスバーにURL site.com/page.htmlを入力します。 ブラウザはそれからhttp://site.com/page.htmlページのためのhttp要求を作り出します(図で - 細い点線の矢印、左側の最初)。 この要求に応答して、site.com Webサーバーはブラウザにhttp応答を送信し、その後にpage.htmlページの本文を発行します(図は左から2番目の太い矢印を示しています)。 その後、ブラウザはモニタ画面上でユーザにページの内容を表示する。
2.2。 中間サーバーでのデータ圧縮
ブラウザとsite.com Webサーバーの間に中間のwebzip.comサーバーを導入し、そこでデータを圧縮します。 page.htmlページを取得するためのアルゴリズムは、ブラウザがsite.comから直接ではなくwebzip.comを介してページを要求することを除いて、前の場合と同じです。 さらに、フルサイズ(圧縮されていないデータ)はsite.comとwebzip.comの間、ブラウザとwebzip.comの間はページの本文が圧縮形式で表示されます(図では左から3番目の太い点線の矢印)。 ページを圧縮するためにphpを使用しているため、ブラウザから要求されたアドレスはhttp://webzip.com/myzip.php?url=http://site.com/page.htmlのようになります。 Webサーバー(webzip.com)はこのリクエストを受け取るとmyzip.phpスクリプトを呼び出し、サーバーはgetパラメーター(これを「url」という名前のパラメーターにする)を使用してhttp://site.comへのリクエストを呼び出します。 /page.html 結果のページスクリプトmyzip.phpは、ブラウザに圧縮形式で表示します。
2.3。 中間サーバーでのページ圧縮を使用した透過的な作業
この場合は、ブラウザ用の仮想圧縮プロキシ、したがってユーザの作業が表示されないという点で、前の場合とは異なります。 これはwebzip.comとブラウザの間の別のリンクの導入を通して達成されます。 このリンクは通常のhttp-proxyです。これはとりわけ、http-requestヘッダーを書き換えることに取り組んでいます(たとえば、http://site.com/page.htmlから
http://webzip.com/myzip.php?url=http://site.com/page.html)
透明ワークの設定
3.1。 スクリプトをインストールする
上記すべてを実装したスクリプトをダウンロードしてください。 で
3つのファイル:myzip.php、func.inc.php、log.php。 最初のものは、クライアントによってアクセスされるメインファイルです。 2番目のものは最初のもののための関数定義を含みます。 3番目のものはプロキシ統計を表示するように設計されています(統計ページテンプレートを含み、本質はlog.logファイルから取られます)
count.log)
前述のように、スクリプトは、PHP、CURL、ZLIBのサポートがあり、バナーがないホスティングに配置する必要があります。 インターネットでは、これは月30ルーブルで簡単に見つかります。
有料ホスティングを恐れてはいけません - それは簡単に完済します。 たとえば、0.05ドル/ MBの支払いをした場合、ホスティングの支払いに20メガバイトの節約が必要になります。そうすれば、利益を得ることができます。 私の経験では、これは約100〜150 MBのWebサーフィンです(平均圧縮は4〜7回ですが、最大12回発生します)。
ブラウザに次のアドレスを入力して、正しい動作を確認できます。http://webzip.com/myzip.php?url=http://ya.ru すべてが正しく行われれば、Yandexページはわずかに修正されたタイトルでロードされます。
(タイトル)
3.2。 Proxomitronセットアップ
中古Proxomitron ver。 直子4.4(http://www.proxomitron.ru)。
そのため、Webプロキシを使った透過的な作業、つまりブラウザからの発信URLの隠された変換の可能性を近所から達成したいと考えています。 これを行うには、プロキシのメインウィンドウで、[ヘッダー]ボタンを押します。 開いたウィンドウ( "HTTP Header Filters" / "HTTP Header Filters")で、 "URL:Alias Redirector(Out)"の行までスクロールして選択します。 「編集」ボタンをクリックして
ポップアップウィンドウ(“ Header filter editor” /“ HTTP Header filter editor”)は以下のようにフィールドに入力します(最初のものを除くすべて)。
HTTPヘッダー(HTTPヘッダー)(!変更しないでください)URL:Alias Redirector(Out)
URLマッチング*
ヘッダー値の一致*
置換テキスト$ RDIR(http://webzip.com/myzip.php?url=\\u)
http://webzip.com/があなたのサイトのURLであるところで、myzip.phpはあなたがそのサイトにアップロードしたスクリプトの名前です。
最後の行の要点:proxomitronはブラウザからのURL(パラメータ "\\ u")をhttp://webzip.com/myzip.php?url=\\uに変更します。 $ RDIRの代わりに$ JUMPコマンドを書くと、近接の作業は半透明になります。ブラウザは単に新しいURLにリダイレクトされます。 $ RDIRを使用している場合 - ブラウザに気づかれずにリダイレクトが発生します。
「Ok」、「Apply」(「Apply」)、「Ok」を順に押してウィンドウを閉じます。 この手順をもう一度繰り返さないようにする場合は、設定を保存してください。
ブラウザで、IP = 127.0.0.1とポート8080(デフォルトの近位ポートで待機しているポート)でプロキシサーバーを登録します。
ページヘッダを変更することで、トラフィック圧縮システムが確実に機能することを確認できます。
私の喜びを分かち合います。ICQでもプロキシミトロンを通して私を獲得しました。
テストの節約
プロキシミトロンを設定したので、私は数字で新しい作業システムを表現することにしました。 あとに続くものは15分の加速されたウェブサーフィンのプロトコルのようなものです。
私はwebインターフェースを介してmail.ruでmail.ruをチェックしました。メインページはすでに39 kBの節約になります。 ボックスに入った - すでに60キロバイト。 フォルダを駆け抜け、メールを見た。 それは出ました - すでに300 KBの節約。 570 KBの出力で - 私はYandexにいくつかの要求をしました。 3つのSMSを送信しました(メガホン、ビーライン、MTS)。 sql.ruやrsdn.ruのフォーラムのように。 私はグーグルで2、3のアブラカードを探した。 私はカウンターを見ます - 経済の合計2メガバイト。 それは些細なようですが、これは通常の作業のほんの1時間です。 1ヶ月の仕事で何が得られますか? ペニーはルーブルを保存します。
合計
すぐに私は、飼い主が本当に自分の代理のようなものの創造を歓迎するわけではないことを警告します。 自分の責任でスクリプトを使用して、答えてください。 ただし、数ギガバイトのトラフィックを持つパブリックプロキシに満足していない場合は、スクリプト上で200〜500 MBに気付くことはほとんどありません - 彼らにとっては、これは海の中での低下です。 さらに、圧縮スクリプトを別のページに埋め込むと、ホスティング事業者がトリックを捉えるのがさらに難しくなります。 外側に(必要なパラメータ "url"を付けずに呼び出すことなく)それは普通のホームページになるでしょう。 特別な願望を持ってプロバイダはこのトリックを見つけるでしょうが、チャンスは小さいです。 そうですね、もし彼らがそれを発見したら - あなたのサイトは壊れていて、「私たちは無実です」と言いなさい。 最悪の場合、あなたはホスト(あるいは前者のアカウント)を変更しなければならないでしょう。
すべてのログインパスワードがホストを通過し、必要に応じて簡単に傍受されるため、このようなプロキシを使用して機密性の高い情報にアクセスすることはお勧めしません。 ただし、HTTPSを使用する場合、平均的なホスティング業者にとってはそれほど単純ではありません。
この技術を使用することのある程度の「非匿名性」にもかかわらず、それはライトハックのために使用されることができます(攻撃が検出されるならば、FSBはあなたを捜しません)。 例えば、グループメイトのウェブサイト上の入力パラメータの処理に匿名でふける。
スクリプトコードを見ると、スクリプトの機能をオン/オフにすることができる2つのパラメータがあります。 たとえば、スクリプトの統計を表示するようにタイトルを変更します(パラメータMOD_TITLE)。 必要に応じて、追加機能をスクリプトに簡単に追加できます。 例えば、さらなる分析のための作業プロトコルのデータベースへの出力(デフォルトのプロトコルは、
log.php)
私は、有料と無料の両方で、同様のサービスがすでにインターネット上に存在していることに気付きます(例えば、www.tcompressor.ruとwww.toonel.net)。 彼ら全員にはそれぞれ長所と短所があります。 上記のテクノロジを使用する主な利点は、あなた自身があなたのトラフィックの主人であるということです(バナー、支払い、アプリケーションの問題、ホスティングプロバイダ、
ホスティングサービス) - すべてがあなたの手の中にあります。
P.S 私は自分の言葉を究極の真実だとは考えていません。ですから、もし私が何かを間違えたのであれば、私を訂正してください。 ありがとうございます。
P.P.S. その筆跡にも罪がないわけではないと確信しているので、その修正は大歓迎です!
一般的に、私はそれを展開することにしました。 このツールは非常に強力です、と私は思います、それは約1年間開発され磨かれました。
彼は何をしますか?
彼はプロキシの設定で経験豊富で熟練したものを完全に置き換えることができます。 システム管理者このトピックに関するサービスは、単一のサーバーをセットアップするために2000ルーブルかかります。
- 彼はプロキシをcentos(6,7)、debianそしてubuntu(任意のバージョン)に上げることができます。 つまり、ホスティングで人気のあるOSのいずれでも、それはプロキシを上げることができます。 しかし、選択肢がある場合は、Centos 7をお勧めします。
- 彼は入り口でIPアドレスのリストだけを読みます。 その隣には、アドレスのリストを含むファイルip.listがあります。 スクリプトはこのリストを解析し、アドレスがネットワークインターフェイスに設定されているかどうかを判断し、リストに含まれていても使用できない(「上げられない」、つまりOS自体に設定されていない)アドレスを設定します。 あなたがこれらの設定に同意するならば、それからすべては上がりそしてautoloadに書かれます。
- スクリプトはリスト内のIPv6とIPv4を解析します。 そしてそれに応じてすべてを設定します。
- 彼はSOCKSとHTTPのプロキシを作成することができます。 デフォルトでは、httpだけ、彼は靴下について尋ねます、そして我々はそれらを上げることに同意することができます。
- スクリプトはプロキシごとに別々のペア - login-passwordを生成します。 user1、user2、..、userNのようなログイン。 パスワードはランダムで、8文字です。
- これは、あらかじめ決められた範囲のポートから取得された、異なるポート上のすべてのプロキシを発生させます。 靴下の場合は、範囲を指定できます。
- このスクリプトは、現在のバージョンの3proxyをソースからロードしてコンパイルします。 すべてのカスタマイズはそれにあります。 とてもです 良い光 そのようなニーズのために特別に作成されたプロキシサーバー。 比較的小さなリソースで非常に大きな負荷に耐えることができます。 (1 GBのRAMごとに1000個のプロキシ)。 何十もの顧客で実行します。 トップクライアントでは、8 GBのRAMを搭載した1台のサーバーに最大16,000のプロキシを作成しました。
- プロキシサーバーが既にインストールされている場合は、スクリプトがこれを判断し、再インストールが必要かどうかを確認します。 変更が必要な場合は、繰り返し起動すると便利です。 そのような場合、スクリプトは古い設定とプロキシリストを移動し、それらに現在の日時をマークします。 そのため、その場合は、何か問題が発生した場合でも、いつでも手動でバックアップからロールバックできます。
- ロギングを有効にすることを許可します(セットアップ時に対話的にこれについて尋ねます)
- run-restartに便利なスクリプトを作成します。
- 自動ロードにプロキシスタートを登録
- フリーズを回避するために、プロキシを1時間ごとに再起動するタスクをスケジューラ(cron)に書き込みます。
スクリプトボーナスはIPv6 / 48ネットワークのためのユニークなIPアドレスのリストを生成することを可能にするもう一つのスクリプトです - 一つのプロキシは各/ 64ネットワークから得られます。 IPv6も人気を博しているので、それらのプロキシは非常に安く、それで製品はそれで動作することができます。
できないこと
- すでに計画されているサーバーにプロキシを追加します。
- 設定を変更する 既存のサーバー。 完全な再構成のみ
- ログインパスワードではなく、ipなどで認証を設定します。
- アドレスのパック全体に対して単一のログインとパスワードを設定します。
- すべてのプロキシに対して単一のポートを設定します。
これらの機能は、おそらく近い将来にも、いつかスクリプトに表示される可能性があります。
そして非常に重要なことです。 これは明らかだと思いますが、ほとんどの人がそうではありません。 したがって、私はまだ明確に述べる必要があると考えています。
- スクリプトはIPアドレスなしでプロキシを作成および設定する方法を知りません
スクリプトはどのようにしてわからないし、永遠にすることはできません。 プロキシごとに別々のIPが必要です。 たとえどこかにあなたが一つのIP上でたくさんのプロキシを与えられたとしても - おそらくあなたは異なったポートを持つ入力インタフェースだけを与えられた。 そして、出力は異なるIPになるはずです。 あなたのサイトがあなたのために働くところであなたのVPSのプロキシを調達したいなら - もちろんあなたはそれをすることができます。 しかしこれのためにそれを買うことは適切ではありません。 このサーバーでは、プロキシを1つ上げるか、アドレスがいくつあるかを調べます。 ()
開発計画
クライアントにプロキシサーバーを設定させる限り、スクリプトは常に進化しています。 さらに、このスクリプトを本格的なプロキシコントロールパネルに開発する予定です。 Webインターフェイスを介してすべてを設定、監視、および制御できるようにします。 遠くの計画で非常に多く - プロキシの販売のための請求を結びつけることさえします。 しかしそれは正確には違います🙂
最近、Webインターフェイスを作成する試みがあります。 私の注文した人がパネルを書いたが、それは使用不可能であることが判明した。 すでにプロキシのコントロールパネルとして、ヒープに集めてスクリプトを売り出すことが計画されていました。 しかし、この部分については、すべてがまだ湿りすぎです。
したがって、そのまま実行しながら - Webインターフェイスなしで、完全に機能しながら、任意のサーバー上に任意の数のプロキシを構成できます。 売り上げは、少なくとも製品の開発に弾みをつけるためにはじまります。
このツールは市場から判断すると非常に人気がありますが、今は開発する時間がありません。私は他のタスクに取り組んでいるからです。 このツールを使用している人々からフィードバックを得た場合は、それを改良して保守することがはるかに簡単になります。 ここでも、として - 私はこれを行うことはできません
支払いと価格
スクリプトを購入するのが一番です。 ちなみに、それは新しいニシチャクで徐々にそれを補充することが計画されています。そして、そのうちの数十はすでにビンに蓄積しました。 Webmoneyを使用した支払いのみが利用可能ですが、近い将来私は他の方法を結びつけます。 別の方法で支払いをする必要がある場合 - 私と連絡を取り合うことができます - 私たちはそこで決定します、それは問題ありません - Yandex、Kiwi、さらにはpaypal。
この価格で、私は要求に応じてそれをアルファテスターと見なすことができる人々に販売しました。彼らのうちの何人かは現在のバージョンのスクリプトに含まれる追加の機能を開発する注文を受けました。 そしていくつかは入るかもしれません。 スクリプトが本格的なコントロールパネルに成長するとき(そしてその場合) - おそらく、価格は上昇するでしょう。
プレゼンテーションと指示 - 私たちは10分で任意の数のプロキシを使ってサーバーを引き上げます!
自動プロキシ検出は、インターネットプロキシサーバがシステムによって決定され、一般的にクライアントに代わって要求が送信されるプロセスです。 この機能は、Webプロキシ自動検出(WPAD)とも呼ばれます。 プロキシサーバーの自動検出が有効になっていると、システムは要求で使用できる一連のプロキシアカウントを返す役割を果たす構成スクリプトを見つけようとします。 設定スクリプトがコンパイルされたスクリプトをダウンロードして実行した場合 ローカルコンピュータインスタンスが使用している要求に対して、プロキシアカウントデータ、要求または応答ストリームが受け入れられたとき。
プロキシサーバーの自動検出はクラスによって実行され、要求レベルのパラメーター、構成ファイル内のパラメーター、およびダイアログボックスを使用して設定されたパラメーターを使用できます。 ローカルエリアネットワーク(LAN) Internet Explorer
自動プロキシ検出を有効にすると、クラスは次のように設定スクリプトを見つけようとします。
機能 InternetQueryOption WinInetは、Internet Explorerによって識別された最新の構成スクリプトを見つけるために使用されます。
スクリプトが見つからない場合、クラスはスクリプトを見つけるためにDHCPプロトコル(DHCP)を使用します。 DHCPサーバーは、ホスト名またはスクリプトの完全なURLを使用して、スクリプトの場所で応答することができます。
DHCPがWPADホストを定義していない場合、DNSはその名前または別名としてWPADを使用してホストに照会します。
メインアプリケーションが指定されておらず、設定スクリプトの場所がInternet Explorerのローカルネットワーク設定または設定ファイルで決定されている場合は、この場所が使用されます。
プロキシアカウントはconnectoid-mainに設定されています。 ダイアログボックスのConnectoid項目 ネットワーク接続 物理ネットワークデバイス(モデムまたはイーサネットカード)または仮想インターフェイス(デバイスを介して機能するVPNネットワーク接続など)でもかまいません。 connectoidが変更されると(たとえば、無線リンクがアクセスポイントまたはVPNを変更すると)、プロキシサーバー検出アルゴリズムを試すことができます。
デフォルトでは、Internet Explorerのプロキシ設定がプロキシサーバーの検出に使用されます。 アプリケーションが実行されている場合 アカウント 非インタラクティブ(IEプロキシサーバー設定を構成する便利な方法がない)またはIE設定とは異なるプロキシサーバー設定を使用する必要がある場合は、指定した要素とで構成ファイルを作成してカスタムプロキシオブジェクトを構成できます。
次のコード例に示すように、作成された要求に対して、要求に空の値を使用して、要求レベルでプロキシサーバーの自動検出を無効にすることができます。
プロキシアプリケーションドメインのプロキシアカウントを持たないリクエストは、プロパティで利用可能なデフォルトを使用します。