Hatena::ブログ(Diary)

tech tech okdt RSSフィード

Friday, December 02, 2011

遅いネットワークに対応する懐かしい話 ー クラウド上にプロキシ+SSHトンネルで圧縮

日本以外でインターネットを使うと、これがいかんともしがたいほどウェブサイトのブラウジングが遅い。特に、日本のサイトは極端に遅い。

定番的に、最初に疑うのは名前解決。ローカルのプロバイダのDNSに、普段アクセスされない日本の種々のサーバのIPアドレスはキャッシュされていない感じがする。まあ、名前解決だけならむりやりDNSを8.8.8.8にすると、若干改善されるのだが、アクセス認証のために透過プロキシーなどで認証ページに飛ばされるケースは多々あり、そのような場合には8.8.8.8とかってDNSを設定していることが妨げになる。こればっかりは仕方ない。

そこで懐かしのプロキシーだ。

ネットワーク回線が細いときに大変お世話になったSquidを、雲の上のサーバにセットアップすることにした。

最近のSquidパッケージでは、最初からオープンプロキシーにはならないようになっている。そこで、自サーバとlocalhostからの応答だけにしか応答しないようにした。

数行以外はオリジナルまま。(改善提案お寄せください)

利用認証とかつけたら良いような気がするが、認証ではじかなきゃいけないレベルまでアクセスされたらそもそも負けなので、とりあえずそこは端折る。

コメント行を抜くとこんな感じ。(squid.conf)

acl all src 0.0.0.0/0.0.0.0

acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255

acl to_localhost dst 127.0.0.0/8

acl thishost src そのサーバのIPアドレス/255.255.255.255

acl SSL_ports port 443

acl CONNECT method CONNECT

http_access allow manager localhost

http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost

http_access allow thishost

http_access deny all

icp_access allow all

http_port 3128

hierarchy_stoplist cgi-bin ?

cache_mem 32 MB

access_log /var/log/squid/access.log squid

acl QUERY urlpath_regex cgi-bin \?

cache deny QUERY

refresh_pattern ^ftp: 1440 20% 10080

refresh_pattern ^gopher: 1440 0% 1440

refresh_pattern . 0 20% 4320

acl apache rep_header Server ^Apache

broken_vary_encoding allow apache

forwarded_for off

coredump_dir /var/spool/squid

さて、次に、ローカルのデスクトップまで、sshでトンネルを張る。コマンドオプション -Cで圧縮してみたらちょっと速いような気がした。

ssh -C -N -f -L 3128:プロキシーサーバ:3128 riotaro@プロキシーサーバ

ローカルでテスト。

/opt/local/bin/squidclient -h 127.0.0.1 -p 3128 http://yahoo.com

squidclientコマンドはMacPortssquidを入れればついてくる。

ブラウザでテストするより便利。

あとはブラウザに設定するとかネットワーク設定でHTTP/HTTPSのプロキシを127.0.0.1で、ポートを3128に設定するなどすればよい。

上記二行を、実行しやすいように適当な名前をつけてHOMEに保存した。

日本でもそこそこ快適です。

プロバイダが混んでいると、セッション数で制限されたりする。この方法で一本化すると、まるで良いことをしてあげたような感じすらあるかも。

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

トラックバック - http://d.hatena.ne.jp/okdt/20111202/1322798256