SSHトンネリングでAFP

うちのiTunes Libraryはネットワーク上のMac miniサーバに構築してある。サーバ上のホームディレクトリを、AFPでローカルマシンの/Volumes/xxxxxにマウントし、~/Music/iTunesを/Volumes/xxxxx/Music/iTunesへのシンボリックリンクとすれば、サーバ上のiTunes LibraryがあたかもローカルなHDD上にあるような、普通のiTunes Libraryとして扱う事が出来る。

こうしておくことで、曲ファイルがあちこちのマシンに分散する事も無く、レートや再生回数といったiTunesの特徴であるメタ情報も、全マシンで共有可能になる。ローカルマシンを変えた時でも、シンボリックリンクを作るだけでライブラリを復元(というのも何か変だが)できる。

一方、この方法の欠点は、ネットワーク──正確には自分とこのLANに繋がってなければ、一切曲が聞けないという点だ。ローカルHDD上には全く曲を持ってないので、当然だ。

この欠点は、ノートPCなどを使っていて、宅外に持ち運ぶような場合に顕著となる。というか、今の俺がまさにコレ。MacBook Proを持って、家と研究室を行き来する毎日なので、Macが手元にあるのにiTunesが使えないという、非常に哀しい状況だった。毎日、朝から晩まで研究室にいれば、曲の1つや2つくらい聞きたくなるのが、人間というものだ。

そこで俺は考えた。

SSHトンネリングでAFPを透過してやればいいじゃん♪

トンネリングの仕方は至って簡単。サーバでsshdが動いていて、クライアントでsshが使える状況で以下のコマンドを実行する。Mac OS Xならば、最初からsshが入ってるし、sshdもチェックボックスでチェックするだけで動き出す。

ssh -2 -N -C -L 60000:localhost:548 サーバのユーザー名@サーバのアドレス

サーバのユーザー名のパスワードを求められるので、入力。これでローカルホストのポート60000と、サーバのポート548(AFP用のポート)が繋がった状態になる。

ここでFinderの「サーバへ接続」で、アドレスに「afp://localhost:60000/」を指定して接続すれば、サーバのAFP共有をマウントする事ができる。後はiTunesを起動するだけ。(゚Д゚ )ウマー

宅内LANに直に繋がっている時に比べればレスポンスは劣るものの、実用上全く問題なし。速度も90kB/sec程度出ているようで、オーバーヘッドも殆どない模様(うちの回線はADSLで上り1Mbps)。

これで卒業研究も捗るってもんだ。