Hatena::Diary

母方の祖母にフル・ネルソン日記 このページをアンテナに追加 RSSフィード

2008-02-28

polipo 入れてみた on WindowsXP このエントリーを含むブックマーク このエントリーのブックマークコメント

twitter 界隈で話題になっていたので、個人向け web proxy であるところの polipo を入れてみました。

"Polipo — a caching web proxy"

http://www.pps.jussieu.fr/~jch/software/polipo/

windows 向けには Phobos という人がポートしたインストーラバイナリがあったので、これをインストールしてみた。

http://interloper.org/tmp/polipo/polipo-1.0.4.0-win32.exe

インストールは特になんの問題もなく終わったのですが、ここでいきなり大問題発生!

キーボードの s を押すと、何故か polipo が勝手に起動する! (あるいは起動している polipo のコマンドプロンプトが最前面にフォーカスされる!)

キーボードの s が入力できなくなるとかなり大変です。どう大変か説明するのはめんどうなので、皆さんはキーボードの s を物理的に破壊するなどして試してみてください。とにかく大変です。

それで、いろいろ探し回った結果、インストーラがスタート > プログラム > スタートアップに登録する Polipo へのショートカットに、ショートカットキー S が設定されていました。ひでー。

通常の操作ではショートカットキーには Ctrl + Alt + Key とかのキーコンビネーションにしないと登録できないので、これは Phobos の人が作ったインストーラの不具合ではないでしょうか。というわけでキーボードショートカット設定を解除。

これから Phobos の人が作ったインストーラで導入しようと思っている人は気をつけてくだしい。

でインストール直後の状態でとりあえずで起動しますと、

DNS: couldn't open /etc/resolv.conf: No such file or directory

Disabling disk cache: path .cache/ is not absolute.

Disabling local tree: path is not absolute.

Established listening socket on port 8123.

みたいな感じでちょっとイヤゲなエラーメッセージが出ました。

同梱されてる README.Windows を読みますと、少なくとも

  • dnsNameServer
  • diskCacheRoot
  • forbiddenFile

の3つのコンフィグ値は設定してよ、と書いてあったので、Polipo インストールディレクトリの config を編集。

dnsNameServer は config にエントリがなかったので新たに作って、DNS サーバの IP アドレスを書いておきました。(※下の例の IP アドレスはデタラメです)

dnsNameServer = "1.2.3.4"

DNS サーバの IP アドレスが分からない人は、コマンドプロンプトから nslookup を実行して表示される IP アドレスをコピペすればよいと思います。

(ちなみにこれを config に書いておいてもやっぱり DNS: couldn't open /etc/resolv.conf: No such file or directory というメッセージは出ますが、ちゃんと指定したのを使ってくれているようなので気にしないと吉)

diskCacheRoot は、diskCacheRoot = "C:/bin/Polipo/cache" みたいな Windows 的パス表現を書いても

Disabling disk cache: path C:binPolipocache/ is not absolute.

とか言って怒られたので、カッとなってサンプルにあったように

diskCacheRoot = "~/cache/"

って書いといたら怒られなくなりましたが、~/cache が Windows で言うとこのどこを指しているのかは不明!

最後に forbiddenFile というのは、Polipo にダウンロードさせたくない URL を書いておくファイルのようです。広告をブロックしたいときとかに使うんだと思います。

これも初期 config にはエントリがないので、

forbiddenFile = "forbidden"

と追記して、Polipo インストールディレクトリにあった forbidden.sample を forbidden としてコピーしておきましたが、起動すると

config:156: unknown config variable forbiddenFile

と怒られました。書けっていうから書いたのに、そんなコンフィグは知らないと言うとは、ひどい仕打ちです! 無視します。

このように config を書き換えた上で polipo を起動し、firefox の設定で proxy に 127.0.0.1:8123 を使うように設定してみました。

試しに Flickr で適当な人の写真一覧ページを表示してみましたが、AutoPagerize でガンガンページめくってっても、余裕で写真の表示が追いついてくる! ひえーあからさまに早い!!!!

config は最低限だけいじったデフォルト状態でこの感じなので、同梱のマニュアルを読んでもっと事細かにコンフィグをいじれば更に快適になるかもしれません。デフォルト設定でも十分効果が体感できたので、たぶんいじらないと思いますが。

ぜひ自宅サーバに入れて、携帯で Web 見るときの proxy として使う設定をしたいと思いました。あと携帯では AdBlock 使えないので、ぜひ forbiddenFile を有効にする方法を調査して、広告をガンガンブロックしていきたいと思いました。

[追記]

windows 版バイナリは fobiddenFile 効かないって!?

http://twitter.com/kiri_feather/statuses/764312613

なにーッ!!!!???? ダメじゃんムリじゃん困るじゃん!

あと、キャッシュディレクトリについては

http://d.hatena.ne.jp/taizooo/20080228/1204187605

さん経由で

http://osdir.com/ml/web.polipo.user/2006-12/msg00037.html

のあたりを見たら、

環境変数に HOME="/My Documents/" みたいに設定すれば ~ が使えるヨ!

って書いてあったのですると polipo 的には / のマッピングが c:/ なのかと思って

diskCacheRoot = "/bin/Polipo/cache/"

って書いてみたらビンゴであり c:\bin\Polipo\cache 以下にキャッシュがモリモリ生成されました!

ありがとう id:taizooo さん及びインターネットの外国人さん!

僕も polipo のキャッシュに負けないくらいごはんをモリモリ食べて強い子になろうと思います。

おとなり日記