squid で上位プロキシへクライアントからの要求を転送
Squid を使ってプロキシサーバを使っています。すべての通信はProxy経由にしてます。そのほうがIP固定できて楽だしね。
proxy.example.ac.jpをSquidの上位とする。
普段使っているSquidが、さらに上位のSquidを参照するようにする。
cache_peer proxy.example.ac.jp parent 8080 7 no-query never_direct allow all
Squid にさらにSquidを参照させるメリットはあるのかと言われてば、もはやIP隠蔽工作以外にはあまりにメリットがないような気もしますが、リバースプロキシや、画像のキャッシュなどなら意味はあると思います。
設定方法は、squid.confに書いてありました
1232 # TAG: cache_peer 1233 # To specify other caches in a hierarchy, use the format: 1234 # 1235 # cache_peer hostname type http-port icp-port [options] 1236 # 1237 # For example, 1238 # 1239 # # proxy icp 1240 # # hostname type port port options 1241 # # -------------------- -------- ----- ----- ----------- 1242 # cache_peer parent.foo.net parent 3128 3130 proxy-only default 1243 # cache_peer sib1.foo.net sibling 3128 3130 proxy-only 1244 # cache_peer sib2.foo.net sibling 3128 3130 proxy-only 1245 # 1246 # type: either 'parent', 'sibling', or 'multicast'.
参考資料
squid で上位プロキシへクライアントからの要求を転送する方法は次の通り。
これは、一般に多段プロキシと言われる構成。/etc/squid/squid.conf にて、以下を追記。
cache_peer [上位プロキシの IP アドレス] parent [上位プロキシの ポート番号] [icp ポート番号] no-query
icp ポートを用いて上位プロキシのキャッシュを利用しない場合は、
icp ポートに 7 を指定する。icp ポートのデフォルトは 3130 。
設定例
192.168.1.1:8080 を上位プロキシとして使用する場合
cache_peer 192.168.1.1 parent 8080 3130 no-query
icp ポートを使用しない場合
cache_peer 192.168.1.1 parent 8080 7 no-query
さらに、全てのリクエストを上位プロキシに転送する場合は、以下の設定も必要。
never_direct allow all
never_direct を指定しない場合は、リクエストを上位プロキシに転送したり、
自分で直接インターネットにアクセスしたりする。最後に squid のプロセスを再起動して変更を反映。
squid で上位プロキシへ要求を転送する(多段プロキシ)
/etc/init.d/squid restart