圧縮Proxy(Ziproxy)活用によるインターネット回線高速化の方法紹介

圧縮Proxyをご存知だろうか。

HTTPの通信を中継するProxyで、テキストファイル(HTML)や、画像を圧縮することで、通信量を削減することが可能だ。
圧縮Proxyを活用することで、docomo MVNOの格安SIMカードを利用した低速通信(200kbps等)を使用する場合に、かなり体感速度が高速化される。

私は iPhone と OCNモバイルワンという低速環境であり、Webブラウジングが遅かったので、今回圧縮Proxyを試してみた。

結論から言うと、圧縮Proxyを介すことで、かなり快適になる。

(1)下準備(サーバ環境の構築)
圧縮Proxyソフトウェアを稼働させるサーバは、VPS等何でも良いのだが、私はたまたま自宅にRaspberryPiがあるので、この超小型サーバで動かしてみることにした。

RaspberryPiのサムネール画像

(2)圧縮Proxy(ziproxy)のインストール
圧縮Proxyには様々なソフトウェアがあるのだが、apt-getで簡単にインストール可能なziproxyを利用することにする。

 $ sudo apt-get install ziproxy

これだけでインストール完了。

(3)ziproxyの設定
ziproxy.confを変更したところだけ抜粋すると下記の通り。

 $ sudo vi /etc/ziproxy/ziproxy.conf

Port 79
# 圧縮Proxyが待ち受けるポート番号(TCP)、後のiPhoneのAPN設定の時に2桁の番号が都合が良い為、2桁のポート番号を指定することをおすすめする

ErrorLog = “/var/log/ziproxy/error.log”
# 上記をコメントアウト。エラーの発生を把握しやすくなる

ImageQuality = {30,25,25,20}
# 画像を圧縮する場合の品質を指定する。4つパラメータがあるが、左から画像解像度の小さい順に品質を指定する。詳しくは、ziproxy.confの当該箇所に解説がある

ProcessToJP2 = true
# このオプションはぜひ「true」にしよう。jpegの後継規格であるjpeg2000へ画像を再圧縮する。jpeg2000は、jpegと比較し、画像サイズ対品質が向上している。小さい画像サイズできれいに描写可能だが、この反面、サーバサイドの負荷は増大してしまう。しかし、ユーザが自分一人であれば問題ないレベルの負荷増なので問題無い。

JP2ImageQuality = {25,20,20,17}
# jpeg2000における画像圧縮の品質を指定する。iPhone4程度の解像度であれば、だいたい上記程度で丁度良いと思う

設定が完了したら、ziproxyを再起動。

 $ sudo vi /etc/ziproxy/ziproxy.conf

(4)ルータのポート開放
インターネットから、ziproxyが稼働しているサーバにアクセスが可能なように、ルータのポート番号の穴開けを行う。
上記の設定で、私はTCP 79番をziproxy用に使用することにしたので、ルータの「ネットワーク変換」ルール等に、TCP 79番のポート開放を設定する。

(必要に応じて、自宅サーバにiptables等のファイヤーウォールを構築している場合は、TCP 79番を開放する設定を入れる)

(5)端末側(iPhone)のProxy設定
例えばiPhoneでは、Wifi使用時のProxy設定項目は存在するが、3G回線使用時のProxy設定は存在しない。

そこで、APNのオプション設定項目を使用することにより、3G回線使用時でも、上記で設定した圧縮Proxyを使用するようにする。

まず、iPhoneで下記URLにアクセスする。

http://www.gevey.com/apn/

下記のような画面が表示されるので、SIMカードに合ったAPNやUser Name等を設定する。
そして、下記のようにProxy設定を入れる。

Proxy Server: #Ziproxyを稼働させているサーバのドメイン名
Proxy Port: 79 (私は、TCP 79に設定したので、79と記入)

GeveyUltra APN設定画面

「Submit」を押すと、プロファイルインストール画面になるので、プロファイルをインストールすると、これでめでたく圧縮Proxyを介した通信になる。

※iPhone構成ユーティリティでも同様の設定が可能

(6)おわりに
けっこう簡単な手順で、iPhone等のモバイル端末の体感通信速度がかなり改善されるのでおすすめだ。

また、2ちゃんねるのように、圧縮するとログがおかしくなるようなアプリ対策として、下記ファイルに特定のドメインを記述することで、回避可能なので試してみて欲しい。
/etc/ziproxy/noprocess.list

最後に、iPhoneのインターネット回線でのProxy設定が、プロファイルのインストールが必要とかなり煩雑なので、Proxy設定を簡単に切り替えることができるアプリが出ることを望む。

コメント