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

[2/29 追記]
d:id:xanthus:20080229:p1 さんによりますと、配布元polipo-1.0.4.0-forbidden-1-win32.exe の方をインストールすれば fobidden 機能が有効になってるとのこと! 最初 polipo のことよく知らずに配布物一覧見たときに、「forbidden て何だよ怪しいなあ〜ダマサレナイゾ!」とか思って無視してたのでした。別に全然怪しくなかった。遺憾の意を表明するとともに可及的速やかにインストールし直してみたいです。ありがとう id:xanthus さん! そしてこの日記を読んで forbidden 効かない版を既にインストールされてしまった皆さん、すみませんでした! お詫びとして今日はおなかが減っていて昼ごはんを大盛りにしたいところを、グッとこらえて普通盛りで我慢します……。

インストールは特になんの問題もなく終わったのですが、ここでいきなり大問題発生!
キーボードの 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 = "192.168.0.1"

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 のキャッシュに負けないくらいごはんをモリモリ食べて強い子になろうと思います。