2008年03月05日

【Windowsアプリケーション】俺たちと行こうぜ、スピードの向こう側へ - Polipo

あちこちで話題のPolipoです。 確かに体感できるくらい速いです。 解析・説明ページはもうすでにたくさんあるので、ここではあんまりPCに詳しくない俺が、あんまりPCに詳しくない人に向けてPolipoをご紹介します。 相変わらずいろんな紹介ブログからのかき集め情報による三次発信ですw あ、ちなみここではにWindows版限定で書きます^^;

1予備知識

プロキシ
プロキシとは、皆さんのPCとWEBサイトの間に位置し、一度見たページを保存しておいてくれるサーバです。 この保存されるデータのことを「キャッシュ」、保存することを「キャッシング」などと言います。 どんなメリットがあるかというと、同じページを2回目に見る場合、ブラウザはWEBサーバではなくプロキシサーバからキャッシュを取得することで、ページの表示を速くすることが出来ます。そればかりかWEBサーバやそこまでの経路の負担が軽くなり、インターネット全体がハッピーになるという仕組み。 みなさんがご加入のプロバイダでも用意している場合がありますので、契約時に貰った設定書などもう一度ご確認してみてください。

DNS
DNS=ドメインネームサービスとは、ホスト名とIPアドレスを相互変換するサービス。 皆さんお使いのPCには世界で唯一のIPアドレスという番号が振られています(厳密には唯一じゃない場合もあり)。
ただ、数字の羅列であるIPアドレスは人間様が見ても直感的でないため、ホスト名という英数字で表されることが一般的です(www.yahoo.co.jpとか)。 ところが、ホスト名だと今度はPCが理解できず、Yahooのサーバと通信できません。 そこでDNSサーバに問い合わせてホスト名をIPアドレスに変換して通信相手を特定するという手順が必要になります。 


2で、Polipoとは何か

「プライベートプロキシ」・・・だ、そうです。 
プロキシをプライベート、つまり皆さんのPC上に構築してしまおうというのがプライベートプロキシです。 これはキャッシュも皆さんのPCに保存するということですから、ハードディスクの一部を割り当てる必要があります。 二度と行かないページのキャッシュも保存されますので(一定の条件により削除されますが)、ハードディスクに少しでも無駄なデータを保存するのがお嫌いだという神経質な方にはお薦めしません。
こうしたプライベートプロキシを構築するアプリケーションは過去にもたくさん出回っているのですが、Polipoがこれだけ話題になるのは、PCとWEBサーバとの通信をより優れた方式に自動で変換するからです。 俺も詳しいことは知りませんが、サーバとの接続を維持しつづける方式に変換するそうで、リセット→接続手続→リセット→接続手続という手間が掛からない分、高速なんだとか。(あってる?)


3Polipoの入手

本記事執筆時の最新版は以下から入手できます。 クリックするとダウンロードされます。
polipo-1.0.4.0-forbidden-1-win32.exe

あとついでに、以下もダウンロードしておくと便利です。 説明は後述します。
(A):tolipo.exe
(B):proxy.pac


4Polipoのインストール

polipo-1.0.4.0-forbidden-1-win32.exeをダブルクリックしてインストールしましょう。
注意点は2つ。
  • ショートカットをスタートアップに登録すると、普通の文字キーがホットキーに割り当てられてしまうという報告があります。 "Run at Startup"にはチェックを入れないほうが良さそうです。

  • 20080303-0002.jpg

  • インストール先はデフォルトでは"C:\Program Files\Polipo"ですが、パスに空白が含まれると上手く動かないという報告があります。 例えば"C:\Polipo"などに変更しましょう。

  • 20080303-0003.jpg


5Polipoの設定

インストール先フォルダにある"config"というファイルを右クリックして、編集を選びます。 要はテキスト編集したいので、メモ帳以外のテキストエディタでも結構です。 このファイルで、Polipoのいろんな挙動について設定します。 設定する項目の行頭の"#"は削除してください。 最低限、以下の項目を設定しましょう。 
  • diskCacheRoot:キャッシュ領域として使用するフォルダを指定
    [例]
    diskCacheRoot = "/Polipo/Cashe"
    上記の例で"C:\Polipo\Cache"がキャッシュ領域となります。
    なお、diskCacheRootで指定したフォルダは事前に作成しておく必要があります。
  • dnsUseGethostbyname:名前解決にシステムデフォルトの設定を使う
    [例]
    dnsUseGethostbyname = yes
  • dnsNameServer:DNSサーバを指定
    [例]
    dnsNameServer = "111.222.333.444"
    上述のdnsUseGethostbynameか、こちらdnsNameServerのいずれかを設定しておきましょう。dnsNameServerを使用したほうが若干速いとのこと。 なお、"config"ファイルにはdnsNameServerという項目が記載されていないので、ご自分で書き加える必要があります。 DNSサーバが不明な場合はdnsUseGethostbynameの使用で良いと思います。
  • maxDiskCacheEntrySize:キャッシュ1ファイルの上限サイズ
    [例]
    maxDiskCacheEntrySize = 1000000
    この例ですと最大約10MBに設定されます。
    動画サイトなど大きなデータを取得する必要のあるサイトを頻繁に利用される方は、上限値を調整することでキャッシュフォルダのサイズ増大をある程度抑えることができます。


6設定項目に関して - 2008/03/05

Polipoの各設定項目について、有志の方々が日々解析してくださってますが、少なくとも現在俺の持ち得る情報の範囲では、Polipoは1つ1つのキャッシュファイルの上限は設定できるものの、キャッシュフォルダ全体の上限サイズを設定する方法がわかっていません。 したがって、上述したmaxDiskCacheEntrySizeは設定しておいたほうが良いでしょう。 未設定の場合は制限無しとなります。
また、Polipoでは、
polipo.exe -c configファイル名 -x
と実行すると、指定した"config"ファイルの設定に従いキャッシュフォルダを最適化する機能があります。 -xオプションの挙動を制御する設定項目は、
  • diskCacheTruncateSize
  • diskCacheTruncateTime
  • diskCacheUnlinkTime
  • diskCacheWriteoutOnClose
  • maxDiskCacheEntrySize
  • maxDiskEntries
あたりらしいのですが、今のところこの各項目の明確な説明は無いようです。 


7便利ツールの設定

項目3でついでにダウンロードしたツールをセットアップします。 なお、これらはPolipoの動作に必須ではありません。

(A):Polipoを起動すると、コマンドプロンプトが開き、最小化してもタスクバーに納められいささか邪魔です。 Tolipoを使うと、システムトレイにアイコンが表示されるようになり、タスクバーを邪魔しません。 
Tolipo.exeをPolipoのインストール先フォルダに配置します。 なお、Tolipoは固定で"polipo.conf"というファイルを読み込んでPolipoを起動しますので、"config"ファイルを"polipo.conf"という名前に変更しておきます。
Windows起動時にPolipoを常駐起動させたい場合は、Tolipo.exeのショートカットを「スタートアップ」に登録すると、意識することなく常に快速ネットサーフが出来ちゃいます。
20080305-0001.jpg

(B):Polipoも万能ではなく、WEBサイトによっては挙動がおかしくなる場合があります。 そうしたサイトを例外サイトとして登録しておくファイルです。 正確に言うと、例外サイトおよびローカルホストではPolipoを使用しないという指示を設定するファイルです。 記載例を参考に例外サイトを登録してください。

サーチ(調べる)2008/03/25
上記(A)のTolipoと同様にタスクトレイに収まり、Polipoを間接制御できるSolipoというツールもあるようです。
しかも、6で取り上げたキャッシュフォルダの最適化も解消しているスグレ物。
そもそもWin版Polipoは -x オプションが無効になってるんだってさ。
で、作者さんが私製ビルドとしてSolipoを作ったんだそうです。
基本的なconfig設定も盛り込み済みだし、導入後すぐに使えます。
http://serennz.sakura.ne.jp/sb/log/eid116.html

2chの関連スレに作者さんご本人によるコメントがあります。ご参考にどうぞ。
http://pc11.2ch.net/test/read.cgi/software/1204285574/126

8ブラウザの設定

(IE)「インターネットオプション」→「接続」タブ、(Firefox)「オブション」→「詳細」タブなど、各ブラウザのプロキシを設定する画面を開きます。
それぞれ「自動構成スクリプト〜」とか「自動プロキシ設定スクリプト〜」という設定項目があると思いますので、そこに(B)のファイルを指定します。
[例]
IEでの設定例           Firefoxでの設定例
20080305-0004.jpg 20080305-0003.jpg

(B)のファイルを使用しない(=あらゆるサイトでPolipoを経由する)場合には、それぞれHTTPのプロキシ設定として以下のように設定します。
[例]
IEでの設定例           Firefoxでの設定例
20080305-0006.jpg 20080305-0005.jpg
ローカルホストは対象外とすることをお忘れなく。


9もっといろいろ設定してみる

上記の手順でPolipoによる快速ブラウジングが可能になりますが、"config"ファイルには他にも様々な設定項目があります。
たとえば、キャッシュしないサイトを登録したファイルを指定するuncachebleFile、キャッシュしないどころか完全にブロックするサイト(広告や有害サイトなど)を登録したファイルを指定するforbiddenFileなどがあります。
Polipoが起動している状態で、http://127.0.0.1:8123/polipo/config? を参照するとその一覧と概要(ただし英語)を確認できます。


■おまけ■
DNSサーバの調べ方
コマンドプロンプトを開き、"nslookup"と入力します。 何やら数字が出てきたら、それがDNSサーバのIPアドレスです。
posted by Huwy at 23:42 | Comment(0) | TrackBack(1) | Windowsアプリケーション | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]
2013/11/12現在、スパムコメント対策のため「コピー」という単語をブロックしています。

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

polipo 導入成功
Excerpt: コメントをもらって失敗の原因に気がついた。
Weblog: 天気晴れのITトレンド
Tracked: 2009-12-24 22:24