オープンソースのWebフィルタソフトです。Web Proxyとして動作します。
今までWebをアクセスするのに
自分のPC → Webサイト
だったのが、
自分のPC → Privoxy → Webサイト
という感じになります。
もともとProxyを通してアクセスしている場合は、
自分のPC → Proxy → Webサイト
を、
自分のPC → Privoxy → Proxy → Webサイト
というふうにできます。
この時点で「なにを言っているのか分からない」という人は、Privoxyは使わないほうがいいかも。(ひどい…)
Privoxyのサイト[privoxy.org]に行って「Download recent releases」からダウンロードページに行って、自分の環境に合ったファイルをダウンロードします。
Windows[microsoft.com]の場合、Win32と書いてあるところの「Download」をクリックし、次のページで「privoxy_setup_3_0_3-2.exe」をダウンロードします。
ダウンロードしたらダブルクリックして実行してインストールします。
インストールは指示通りにやるだけなので、特に説明しません。
Privoxyをインストールしたら、Webブラウザの設定を変更して、Privoxyを通してWebを見に行くようにします。
インターネットオプションのProxyの設定で、
に設定するだけです。
ここで、もともとProxyが設定されていた場合は、Privoxyの設定に必要なので、どこかにメモしておいてください。
うまく設定できていれば、Webブラウザから設定の確認・修正ができます。
「Privoxy@localhost」というページが開かない場合は、Privoxyが起動してないか、Proxyの設定を間違えていると思われます。
Privoxyの設定は、config.txtを直接編集することでも可能です。
詳しくはユーザーマニュアルを見てください。
config.txtは下記のような内容になります。各項目はあとで説明します。
説明もたくさん(英語で)書いてありますが、設定の部分だけ抜き出してあります。
- FILE LOCATIONS
confdir .
logdir .
actionsfile standard # Internal purpose, recommended
actionsfile default # Main actions file
actionsfile user # User customizations
filterfile default.filter
logfile privoxy.log
jarfile jar.log
- DEBUG
debug 1 # show each GET/POST/CONNECT request
debug 4096 # Startup banner and warnings
debug 8192 # Errors - *we highly recommended enabling this*
- ACCESS CONTROL AND SECURITY
listen-address 127.0.0.1:8118
toggle 1
enable-remote-toggle 1
enable-edit-actions 1
buffer-limit 4096
最低限必要だと思われる設定は、以下のようになります。
- FILE LOCATIONS
confdir .
logdir .
actionsfile standard
actionsfile default
actionsfile user
filterfile default.filter
ログも残しませんし、外部proxyも通しません。ほとんどデフォルトのままです。
実際、私のconfig.txtはほぼ上記の通りの内容になっています。
Privoxyの設定を、各項目ごとに説明します。
confdir .
logdir .
設定ファイルとログファイルを保存するディレクトリです。変更しなくていいでしょう。
Windowsの場合、Privoxyがインストールされたディレクトリになります。
actionsfile standard
actionsfile default
actionsfile user
アクションファイルです。どのサイトにどのフィルタを使用するのかを指定します。
standard.action、default.action、user.actionファイルが読み込まれます。
ユーザーはuser.actionファイルを書き換えて使用することになるでしょう。
ただし、バージョンアップ(上書きインストール)で間違えてuser.actionを上書きしてしまったことのある私は、nyaboo.actionというファイルを作って、これを書き換えています。
filterfile default.filter
フィルタファイルです。フィルタを定義します。Perlの書式がそのまま使えるので、Perlを知っている人なら使いこなせるでしょう。
最初から色々なフィルタが定義されているので、とりあえずこのまま使ってもいいと思います。
フィルタファイルは複数指定できないようなので、このdefault.filterファイルを書き換えるか、別のフィルタファイルを用意してそれを読み込むようにします。
logfile privoxy.log
jarfile jar.log
ログファイルや横取り(intercept)したクッキーを保存するファイルを指定します。
問題が起こったとき解析するのに使えますが、通常は特に必要になりませんし、ファイルがどんどん巨大化していくので、指定しない(ログを残さない)ほうがいいかも知れません。
debug 1 # show each GET/POST/CONNECT request
debug 4096 # Startup banner and warnings
debug 8192 # Errors - *we highly recommended enabling this*
デバッグ用の設定です。Privoxyのウィンドウに表示する情報を設定できます。普通の人はデバッグしないので不要でしょう。
listen-address 127.0.0.1:8118
WebブラウザをPrivoxyに接続するためのアドレスとポートを設定します。
特に理由がなければ変えなくていいでしょう。
なお、127.0.0.1:8118はデフォルトのままなので、わざわざ指定しなくてもいいです。
toggle 1
enable-remote-toggle 1
enable-edit-actions 1
buffer-limit 4096
順番に、
となります。
enable-*を有効にしておくと、Webブラウザを使ってPrivoxy Configurationページから設定を変更することが出来ます。
特に理由がなければ変えなくていいでしょう。
もともと外部のProxyを使ってWebを見に行っていた場合は、forwardの設定も必要になります。
forward / proxy.***.jp:8080
これは、PrivoxyがWebサイトを見に行くときに使う外部のProxyの設定です。
上記の設定の場合、すべてのサイトを見に行くときに、proxy.***.jpのポート8080を見に行きます。
forwardなし…自分のPC → Privoxy → Webサイト
forwardあり…自分のPC → Privoxy → proxy.***.jp:8080 → Webサイト
Privoxyをインストールしてインターネットオプションを変更したときに、もともとProxyが設定されていた場合は、ここでそのProxyを設定してください。
もともとProxyが設定されてなかった場合は、この設定は必要ありません。
なお、forwardは複数指定することができます。
forward / .
forward .com proxy.***.com:8080
forward .net proxy.***.net:8080
というふうに、基本的にはWebサイトを直接見に行くけど、「~.com」はproxy.***.com経由で、「~.net」はproxy.***.net経由で…ということもできます。
まぁ、そこまでするのはよっぽど特殊な人かも知れませんが。
Google[google.co.jp]の広告を削ります♥
フィルタ
FILTER: google_filter Google filter
s|<table border=0 cellpadding=0 cellspacing=4 align=right width=20%>.*</table>||
s|<table cellpadding=3 cellspacing=0 border=0 height=40 width=100%>.*</table>||
s|<table cellspacing=0 cellpadding=0 width=25% align=right bgColor=.ffffff border=0>.*?</table>||
アクション
{+filter{google_filter}}
.google.
Yahoo[yahoo.co.jp]の広告を削ります♥
フィルタ
FILTER: yahoo_filter Yahoo filter
s|<!-- TopLink TOPTXT -->.*<!-- TopLink end -->||s
s|<!-- Center BOX -->.*<!-- /Center BOX -->||s
アクション
{+filter{yahoo_filter}}
.yahoo.
国際化ドメイン名でアクセスすると注意を促します。
フィルタ
FILTER: IDN_filter IDN Filter
s|(<body[^>]*)>|$1<p><strong style="font-size:400%;color:red;">Accesssing by the IDN!!</strong></p>|igU
アクション
{+filter{IDN_filter}}
xn--*.
国際化ドメイン名によるアクセスをブロックします。
アクション
{+block}
xn--*.
MicroSoftという文字列をMicsoRoftに置換します。
フィルタ
FILTER: microsoft_filter MicroSoft filter
s/microsoft(?!.com)/MicsoRoft/gi
アクション
{+filter{microsoft_filter}}
.microsoft.
このフィルタを使って表示した内容を仕事や勉強などの重要な書類にコピペすると、とても困ったことになる可能性があります。
mixi[mixi.jp]のページを目立たなくします。画像をなくし、背景色の指定をなくします。
フィルタ
FILTER: mixi_filter Mixi filter
- Delete attribute
s|<body[^>]*>|<body>|gsU
s|<tr[^>]*>|<tr>|gisU
s|<td[^>]*>|<td>|gisU
s|<table[^>]+>|<table>|gisU
- Delete top image
s|<IMG src=(http://)?img.mixi.jp/img/topimg[^>]+>||gsU
- Delete map
s|<map.*>.+</map>||gsU
- Convert/Delete image
s|<img src=(http://img.mixi.jp/img/bn_\da.gif) ALT=([^>]+) [^>]*>|$2|gsU
s|<img SRC=(http://img.mixi.jp/photo/member/.+)[^>]*>|[photo]|gsU
s|<img SRC="http://img.mixi.jp/img/cl05.gif"[^>]+>|[calendar]|gsU
s|<img [^>]+>||gisU
- Delete script
s|<script.*</script>||gsU
s| onMouseover[^>]+>|>|gsU
アクション
{+filter{mixi_filter}}
mixi.jp/