海外の出張先でネットワークの調子が悪く、Webがまともに使えないと言う事態に遭遇しています。orz 何かホテルのtransparent proxy側でDNSが引けてない模様でGoogleさえ「The requested URL could not be retrieved」といわれてしまいます。既にWebは一つのライフラインなので使えないと結構痛い。。。
Web以外はIPアドレスを直接指定すれば通信はでき、一応自宅のLS-GLにはSSH接続できるので、急遽squidを立ててSSH経由で中継させることにしました。セキュリティ上も良さそうだし…。
ビルド
ビルドは、全てLS-GL上で行います。
% cd /mnt/disk1/NeoCat # そろそろ / の空きが少なくなってきたため… % GET http://core.ring.gr.jp/archives/net/www/squid/squid-2/STABLE/ squid-2.6.STABLE11.tar.gz > squid-2.6.STABLE11.tar.gz
(GETはperlのLWPを入れた際に作られたコマンド)とかやって安定版のsquidをダウンロードし、
% tar xzf squid-2.6.STABLE11.tar.gz % cd squid-2.6.STABLE11 % ./configure --prefix=/usr/local/squid --with-openssl=/usr/local/ssl # 念のため失敗した際に備えて /usr/local/squid 以下に入れる % make all % su % make install
makeは10分ほど掛かります。これでとりあえずビルド&インストールできました。
設定ファイルの編集
/usr/local/squid/etc/squid.conf をざーっと見て、以下の設定をしてみました。
まず、http_access deny all と書いてある前の行に
http_access allow localhost
を追加(デフォルトでは全ての接続が蹴られます)。デフォルトで acl localhost src 127.0.0.1/255.255.255.255 と定義されているようですので、これでローカルホストからのみの接続を受け付けます。あとは気分的に、
forwarded_for off # 中継先のIPアドレスをHTTPリクエストのヘッダ(X-Forwarded-For:)に含めない
としておきます。後は今回は別にキャッシュはして欲しくないので(ディスクの空きもないし)、
no_cache deny all
とでも"最後に"追記しておきます(allの定義の後に)。あと、自分のFQDNがDNSで引けないと起動しないので、
visible_hostname ls-gl.****.**.net
などと追加。