「Polipo」の版間の差分
(en:Polipoへの転送ページ) |
|||
1行目: | 1行目: | ||
+ | [[Category:プロキシサーバー]] |
||
− | #redirect[[en:Polipo]] |
||
+ | [[en:Polipo]] |
||
+ | [[zh-CN:Polipo]] |
||
+ | {{Related articles start}} |
||
+ | {{Related|Squid}} |
||
+ | {{Related articles end}} |
||
+ | |||
+ | [http://www.pps.jussieu.fr/~jch/software/polipo/ Polipo のサイト] より: |
||
+ | |||
+ | :"''Polipo は軽量かつ高速なキャッシュウェブプロキシです (ウェブキャッシュ, HTTP プロキシ, プロキシサーバー)。一人または少人数によって使われることを想定して Polipo は設計されていますが、大規模な使用ができないというわけではありません。''" |
||
+ | |||
+ | [[Squid]] とは異なり、Polipo はとてもリソースの消費量が少なく簡単に設定することができます。シングルユーザーシステムなど、あまり複雑ではないセットアップで使うのに Polipo はうってつけです。ただし、この汎用性には見返りもあるということに注意してください: Polipo はディスクキャッシュが増えていくことについて何も制限を加えないため、際限なくディスク使用量は増加していきます。この欠陥とも言えるものは設計段階から想定されていることで、サニティチェックを省くことで Polipo のメモリ使用量を劇的に減らしてシステム全体の負担を削減しています。ディスクの使用量を制限するために Polipo はユーザーによって実行して[[ディスククォータ]]を使用するのが実践的でしょう。 |
||
+ | |||
+ | 以下では Polipo のインストールと設定について説明します。 |
||
+ | |||
+ | == インストール == |
||
+ | |||
+ | [[公式リポジトリ]]の {{Pkg|polipo}} をインストールしてください。 |
||
+ | |||
+ | もしくは、[[AUR]] から最新の開発版である {{AUR|polipo-git}}{{Broken package link|{{aur-mirror|polipo-git}}}} をインストールしてください。 |
||
+ | |||
+ | == デーモンの起動 == |
||
+ | |||
+ | polipo デーモンを起動するには: |
||
+ | |||
+ | # systemctl start polipo |
||
+ | |||
+ | ブート時に自動的に起動させるには: |
||
+ | |||
+ | # systemctl enable polipo |
||
+ | |||
+ | === マルチインスタンス === |
||
+ | |||
+ | Polipo はスーパーユーザー権限がなくても実行させることが可能です。その場合、まず {{ic|/etc/polipo/config.sample}} を適当なディレクトリにコピーしてください: |
||
+ | |||
+ | $ cp /etc/polipo/config.sample ~/.poliporc |
||
+ | |||
+ | ファイルを編集して {{ic|/var/cache/polipo}} の代わりに書き込み可能な場所を指定します: |
||
+ | |||
+ | # Uncomment this if you want to put the on-disk cache in a |
||
+ | # non-standard location: |
||
+ | diskCacheRoot = "~/.polipo-cache/" |
||
+ | |||
+ | キャッシュディレクトリを作成: |
||
+ | |||
+ | $ mkdir ~/.polipo-cache |
||
+ | |||
+ | 最後に、新しい設定を使って Polipo を起動してください: |
||
+ | |||
+ | $ polipo -c ~/.poliporc |
||
+ | |||
+ | == 設定 == |
||
+ | |||
+ | 管理は基本的に {{ic|/etc/polipo/config}} で行います。大抵のユーザーはサンプル設定ファイルを選択することになるでしょう。ほとんどの場合で上手く動作し、ドキュメントも揃っています。 |
||
+ | |||
+ | # cd /etc/polipo; cp config.sample config |
||
+ | |||
+ | 設定の中で注意する必要があるのは Polipo のデフォルトではポートによって外に向かう接続をブロックすることです。Polipo の設定ファイルには送信ポートの許可を制御する2つの変数があります。デフォルトでは 80-100 と 1024-65535 に設定されています。{{Ic|tunnelAllowedPorts}} は HTTPS トラフィックだけでなく Polipo がトラフィックのトンネルを許可するポートを指定します。デフォルトではかなり制限されています: "''デフォルトで ssh, HTTP, https, rsync, IMAP, imaps, POP, pops, Jabber, CVS, Git のトラフィックを許可します。''" |
||
+ | |||
+ | host:port を開こうとすると Polipo によって "403 Forbidden Port" エラーメッセージが表示される場合、HTTP または HTTPS を使うためにより多くのポートのトラフィックを許可するように Polipo を設定する必要があります。幅広いポートを開くように設定するには、以下を {{ic|/etc/polipo/config}} に追加してください: |
||
+ | |||
+ | allowedPorts = 1-65535 |
||
+ | tunnelAllowedPorts = 1-65535 |
||
+ | |||
+ | 他のプロキシと違って、Polipo は設定を変更した後に再起動する必要があります。 |
||
+ | |||
+ | === ブラウザ === |
||
+ | |||
+ | プロキシに {{Ic|localhost:8123}} を使うようにブラウザを設定してください。ブラウザのディスクキャッシュを無効化することで無駄な IO 操作をなくしてパフォーマンスの低下を防げます。 |
||
+ | |||
+ | === トンネリング === |
||
+ | |||
+ | {{note| |
||
+ | * [http://www.pps.jussieu.fr/~jch/software/polipo/faq.html Polipo FAQ] の "intercepting proxy" には、トンネリングは不可能でサポートされていないと書かれています。 |
||
+ | * トンネリングを使うには Polipo を特別なユーザーで実行する必要があります。 |
||
+ | }} |
||
+ | |||
+ | ブラウザや他のユーティリティを個別に設定して Polipo のキャッシュを使うようにする代わりに、[[iptables]] を使ってトラフィックが Polipo を通るようにすることも可能です。 |
||
+ | |||
+ | iptables をインストールして、適当なルールを {{ic|/etc/iptables/iptables.rules}} に追加します: |
||
+ | |||
+ | *nat |
||
+ | :PREROUTING ACCEPT [0:0] |
||
+ | :POSTROUTING ACCEPT [0:0] |
||
+ | :OUTPUT ACCEPT [0:0] |
||
+ | ''-A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner polipo -j ACCEPT'' |
||
+ | ''-A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8123'' |
||
+ | COMMIT |
||
+ | |||
+ | 上記の設定で HTTP のトラフィックが Polipo を通るようになります。ブラウザのプロキシ設定を全て削除して、iptables を再起動してください。 |
||
+ | |||
+ | === Privoxy === |
||
+ | |||
+ | [[Privoxy]] は広告などの表示したくないものを取り除くのに使われるプロキシです。 |
||
+ | |||
+ | Polipo の開発者によれば、Privoxy のプライバシーを向上させ Polipo のパフォーマンスを引き出すために、Privoxy の上に Polipo を置くのが推奨されます。 |
||
+ | |||
+ | つまり: |
||
+ | |||
+ | * ブラウザは Privoxy を使うように設定: {{Ic|localhost:8118}} |
||
+ | |||
+ | * Privoxy はトラフィックを Polipo に渡すように設定: Privoxy の設定ファイルで {{Ic|forward / localhost:8123}} と設定してください。 |
||
+ | |||
+ | === Tor === |
||
+ | |||
+ | {{Warning|Tor プロジェクトは Tor でトラフィックの透過的なルーティングはしないことを推奨しており [https://www.torproject.org/docs/faq.html.en#TBBOtherBrowser] [https://www.torproject.org/docs/faq.html.en#TBBSocksPort]、Tor Browser だけを使うことが強く推奨されています [https://www.torproject.org/download/download.html.en#warning]。代わりに [https://trac.torproject.org/projects/tor/wiki/doc/TorifyHOWTO/IsolatingProxy Isolating Proxy] を使うことを考慮してください。}} |
||
+ | |||
+ | [[Tor]] は匿名化プロキシネットワークです。 |
||
+ | |||
+ | Polipo と Tor を一緒に使うには、{{Ic|/etc/polipo/config}} に以下の部分をアンコメントまたは記述する必要があります: |
||
+ | |||
+ | socksParentProxy = localhost:9050 |
||
+ | socksProxyType = socks5 |
||
+ | |||
+ | === DansGuardian === |
||
+ | |||
+ | [[DansGuardian]] はウェブコンテンツフィルタです。Polipo で [[DansGuardian]] を使用するには {{ic|dansguardian.conf}} の proxyport を polipo の 8123 に設定する必要があります: |
||
+ | |||
+ | # the port DansGuardian connects to proxy on |
||
+ | proxyport = 8123 |
||
+ | |||
+ | == トラブルシューティング == |
||
+ | |||
+ | === DNS エラー === |
||
+ | |||
+ | ネットワークをバックグラウンドで実行している場合、Polipo のログに以下のようなエラーが残ることがあります: |
||
+ | |||
+ | Couldn't send DNS query: Connection refused |
||
+ | Falling back on gethostbyname. |
||
+ | Getaddrinfo failed: Temporary name server failure |
||
+ | Host ***.com lookup failed: Getaddrinfo failed: Temporary name server failure (131072). |
||
+ | |||
+ | このエラーは、Polipo が DNS サーバーに接続する前に、バックグラウンドモードでネットワークが初期化されていないのが原因です (特に DHCP を使う場合)。以下の3つの方法でこのエラーは解決できます: |
||
+ | |||
+ | * バックグラウンドモードでネットプロファイルを起動しない (不要である場合があります)。 |
||
+ | * 使用する DNS サーバーに {{ic|dnsNameServer}} を手動で設定。 |
||
+ | * Polipo のデーモンスクリプト {{ic|/etc/rc.d/polipo}} の start セクションの冒頭付近に {{ic|sleep 10}} (必要であれば、さらに数字を増やす) を追加。ネットワークが初期化された後に Polipo が起動するようになります。 |
||
+ | |||
+ | 詳しくは [https://bbs.archlinux.org/viewtopic.php?id=86452 このスレッド] を見て下さい。 |
||
+ | |||
+ | == 参照 == |
||
+ | |||
+ | *[http://www.pps.jussieu.fr/~jch/software/polipo/faq.html Polipo FAQ] |
||
+ | *[http://www.pps.jussieu.fr/~jch/software/polipo/manual/index.html Polipo マニュアル] |
2015年10月24日 (土) 21:49時点における版
関連記事
Polipo のサイト より:
- "Polipo は軽量かつ高速なキャッシュウェブプロキシです (ウェブキャッシュ, HTTP プロキシ, プロキシサーバー)。一人または少人数によって使われることを想定して Polipo は設計されていますが、大規模な使用ができないというわけではありません。"
Squid とは異なり、Polipo はとてもリソースの消費量が少なく簡単に設定することができます。シングルユーザーシステムなど、あまり複雑ではないセットアップで使うのに Polipo はうってつけです。ただし、この汎用性には見返りもあるということに注意してください: Polipo はディスクキャッシュが増えていくことについて何も制限を加えないため、際限なくディスク使用量は増加していきます。この欠陥とも言えるものは設計段階から想定されていることで、サニティチェックを省くことで Polipo のメモリ使用量を劇的に減らしてシステム全体の負担を削減しています。ディスクの使用量を制限するために Polipo はユーザーによって実行してディスククォータを使用するのが実践的でしょう。
以下では Polipo のインストールと設定について説明します。
目次
インストール
公式リポジトリの polipo をインストールしてください。
もしくは、AUR から最新の開発版である polipo-gitAUR[リンク切れ: アーカイブ: aur-mirror] をインストールしてください。
デーモンの起動
polipo デーモンを起動するには:
# systemctl start polipo
ブート時に自動的に起動させるには:
# systemctl enable polipo
マルチインスタンス
Polipo はスーパーユーザー権限がなくても実行させることが可能です。その場合、まず /etc/polipo/config.sample
を適当なディレクトリにコピーしてください:
$ cp /etc/polipo/config.sample ~/.poliporc
ファイルを編集して /var/cache/polipo
の代わりに書き込み可能な場所を指定します:
# Uncomment this if you want to put the on-disk cache in a # non-standard location: diskCacheRoot = "~/.polipo-cache/"
キャッシュディレクトリを作成:
$ mkdir ~/.polipo-cache
最後に、新しい設定を使って Polipo を起動してください:
$ polipo -c ~/.poliporc
設定
管理は基本的に /etc/polipo/config
で行います。大抵のユーザーはサンプル設定ファイルを選択することになるでしょう。ほとんどの場合で上手く動作し、ドキュメントも揃っています。
# cd /etc/polipo; cp config.sample config
設定の中で注意する必要があるのは Polipo のデフォルトではポートによって外に向かう接続をブロックすることです。Polipo の設定ファイルには送信ポートの許可を制御する2つの変数があります。デフォルトでは 80-100 と 1024-65535 に設定されています。tunnelAllowedPorts
は HTTPS トラフィックだけでなく Polipo がトラフィックのトンネルを許可するポートを指定します。デフォルトではかなり制限されています: "デフォルトで ssh, HTTP, https, rsync, IMAP, imaps, POP, pops, Jabber, CVS, Git のトラフィックを許可します。"
host:port を開こうとすると Polipo によって "403 Forbidden Port" エラーメッセージが表示される場合、HTTP または HTTPS を使うためにより多くのポートのトラフィックを許可するように Polipo を設定する必要があります。幅広いポートを開くように設定するには、以下を /etc/polipo/config
に追加してください:
allowedPorts = 1-65535 tunnelAllowedPorts = 1-65535
他のプロキシと違って、Polipo は設定を変更した後に再起動する必要があります。
ブラウザ
プロキシに localhost:8123
を使うようにブラウザを設定してください。ブラウザのディスクキャッシュを無効化することで無駄な IO 操作をなくしてパフォーマンスの低下を防げます。
トンネリング
ブラウザや他のユーティリティを個別に設定して Polipo のキャッシュを使うようにする代わりに、iptables を使ってトラフィックが Polipo を通るようにすることも可能です。
iptables をインストールして、適当なルールを /etc/iptables/iptables.rules
に追加します:
*nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A OUTPUT -p tcp --dport 80 -m owner ! --uid-owner polipo -j ACCEPT -A OUTPUT -p tcp --dport 80 -j REDIRECT --to-ports 8123 COMMIT
上記の設定で HTTP のトラフィックが Polipo を通るようになります。ブラウザのプロキシ設定を全て削除して、iptables を再起動してください。
Privoxy
Privoxy は広告などの表示したくないものを取り除くのに使われるプロキシです。
Polipo の開発者によれば、Privoxy のプライバシーを向上させ Polipo のパフォーマンスを引き出すために、Privoxy の上に Polipo を置くのが推奨されます。
つまり:
- ブラウザは Privoxy を使うように設定:
localhost:8118
- Privoxy はトラフィックを Polipo に渡すように設定: Privoxy の設定ファイルで
forward / localhost:8123
と設定してください。
Tor
Tor は匿名化プロキシネットワークです。
Polipo と Tor を一緒に使うには、/etc/polipo/config
に以下の部分をアンコメントまたは記述する必要があります:
socksParentProxy = localhost:9050 socksProxyType = socks5
DansGuardian
DansGuardian はウェブコンテンツフィルタです。Polipo で DansGuardian を使用するには dansguardian.conf
の proxyport を polipo の 8123 に設定する必要があります:
# the port DansGuardian connects to proxy on proxyport = 8123
トラブルシューティング
DNS エラー
ネットワークをバックグラウンドで実行している場合、Polipo のログに以下のようなエラーが残ることがあります:
Couldn't send DNS query: Connection refused Falling back on gethostbyname. Getaddrinfo failed: Temporary name server failure Host ***.com lookup failed: Getaddrinfo failed: Temporary name server failure (131072).
このエラーは、Polipo が DNS サーバーに接続する前に、バックグラウンドモードでネットワークが初期化されていないのが原因です (特に DHCP を使う場合)。以下の3つの方法でこのエラーは解決できます:
- バックグラウンドモードでネットプロファイルを起動しない (不要である場合があります)。
- 使用する DNS サーバーに
dnsNameServer
を手動で設定。 - Polipo のデーモンスクリプト
/etc/rc.d/polipo
の start セクションの冒頭付近にsleep 10
(必要であれば、さらに数字を増やす) を追加。ネットワークが初期化された後に Polipo が起動するようになります。
詳しくは このスレッド を見て下さい。