以前使っていた自宅サーバLinux(itachiさん)がお亡くなりになってから、Linux環境がないせいで、自宅から職場のサーバに入れなくて困るーとか思ってたんですが、実はあまり必要性にかられないもんで放っておいたところ、急に仕事で要り用になってあせって良い代替案がないか調べてみた。
取りあえず、必要な用件としては外部ネットワークに居ながらにして会社の固定IPを利用してsshを扱える。という事。最初にsoftetherとかを調べてて、これを使えば、自宅から会社へ仮想ネットワークを通じて会社から外部ででられるんでは?と思ってやってたんだけど、会社から外部へでるやり方がイマイチわからん。という事で挫折。
やっぱり前の環境のように社内にLinuxマシンがあるのが一番楽で便利だし、Webの検証にもプログラム開発にも便利なんだよなあ。と改めて思い次にCygwinでsshログイン出来そうだなあ、と思って調べていくうちに行き当たったのが今回のcoLinux。正式にはCooperative Linuxというらしい。
coLinuxというのは、MacOSにおけるVirtualPCのようにWindows上でLinuxを動かすためのソフトウェアらしい。これを使って[インターネット]←→[社内LAN]←→[Windows内仮想ネットワーク]という感じで、オレのPC上のWindows内仮想ネットワークにあるcoLinuxへと繋げることで、これまで社内にLinuxがあった状態を仮想的に実現できる!と思い立ち作業を開始。
まずはcoLinuxでググると一番最初に出てくるERROR STORMさんを見ながらインストールを開始。最初に0.6.2というバージョンでやってみたんだけど、なんかカーネルパニックになってしまってよくわからんので、0.6.1で入れ直す。特に作業中に困ったことも起こらず無事起動。ちなみにインストーラではディストリビューションはDebianが入れられるんだけど、その他のディストリビューションも入れることは可能なようなのでどうしてもDebianが嫌なら探してみるのも良いと思う。Linux部分に関しては1GBのバイナリファイルを設置してcoLinux側から認識させるだけなんだけど、ダウンロード時は30MBくらいしかないので、たぶん仮想領域用に確保してるだけなんだと思う。
続いてネットワークの設定なんだけど、自分は使ってるOSがWindowsXPなんだけど、TAPドライバーというcoLinux側へ向けるための仮想ネットワークカードを使ってWindowsのネットワーク共有機能を使った形で設定。パソコンに実際ついているネットワークカードのプロパティの共有から共有の設定を行って、coLinux上のDebianの仮想ネットワークカードにも設定を行ったらあっさりと繋がった。coLinux上には仮想ネットワーク192.168.0.0を設定。この時点でcoLinux上のDebianからインターネットへの接続も出来るようになるので、apt-getでアップデートしまくる。個人的に今回最も難関だったのは、Debianにvimが入ってなかったことだろう。Debian上のネットワークの設定なんかもnanoというエディタでやったんだけど、無駄にkkkとかjjjjとか入力してしまいげんなりだった。なので、まっさきにapt-get install vimをやったね。その後、sshもインストールしてユーザ設定もして、Windows上のTerminalソフトからのログインも可能になった。
そして最後は外部からのログイン。まずは、ルータの設定でPort22へのアクセスは自分のマシンにくるように設定。その後ちと困ったのが社内LANの192.168.1.0からWindows上の仮想ネットワーク192.168.0.0への転送。Windowsにルータと同じ動作をさせれば良いんでなんかないかなと調べていると、TCPTunnel for Win32というソフトを発見。早速インストールしてPort22のアクセスを192.168.0.0へ転送するように設定して無事に接続出来るようになった。
ちなみにcoLinux、TCPTunnel for Win32共にWindowsのサービス化が可能なため、Windows起動時に動じ起動させたり簡単に出来るし、通常のアプリのように誤って終了させたり簡単に死んだりしないのが良い感じ。はっきりいってこのcoLinuxはCygwinなんて不要になるし、その他のWindows用のWebサーバや、perl、phpなども不要になる。相当に便利で、衝撃的だった。さすがに商用で使う気はしないけど、社内テスト用とか、個人用とかで追加のマシンってのは全く要らなくなる。
ソフトの開発者様、インストールの解説サイト様、その他関係者様全てに感謝!