VMware-server上のゲストOSをインストールして、ホストOSとの通信を試みる。
必要なのは、ゲストOSのIPアドレスだ。
もちろん、ゲストOSのsshdが動いていること、ゲストOSのssh用通信ポートが開いていることが必要。
ゲストOSのIPアドレスを知るためには、ゲストOSの端末上でifconfigコマンドを使わないといけない。
ホストOS上でifconfigコマンドを使っても、ゲストOSのIPアドレスを表示できないのだ。
今回、仮想マシンのネットワーク設定は、「NAT」を選んでいる。
仮想マシンのネットワーク設定は、「ブリッジ」、「NAT」、「ホストオンリー」の3種類がある。
「ホストオンリー」は、ホストOSとゲストOSとの間でだけ通信ができるというもの。ゲストOSが外部と通信するのはダメ。
外部と通信できるのは、「ブリッジ」と「NAT」なのだが、この両者には違いがあって、
「ブリッジ」は、ゲストOSがルーター(モデム)と直接つながっているイメージ。
「NAT」は、ゲストOSがホストOSを通じてルーターとつながっているイメージだ。
前者は、ルーターとホストOS、ゲストOSが1つのネットワークにある。
後者は、ルーターとそれぞれのOSが別々につながり、2つのネットワークができている。
今回、ホストOSのあるネットワークが、ゲストOSのあるネットワークとは別に存在するようになっているため、ホストOSからゲストOSのIPアドレスは「見えない」。
しかし、ゲストOSのIPアドレスがわかっていれば、ホストOSから、sshコマンドでゲストOSのIPアドレスを直に指定することでssh接続ができる。
下記の例のように。
$ ssh user@192.168.75.128
user@192.168.75.128's password:
Last login: Thu Oct 16 23:58:00 2008
[user@localhost user]$
(参考)
ホストOS上のifconfigコマンドの結果。
$ /sbin/ifconfig
eth0 Link encap:イーサネット ハードウェアアドレス 00:21:85:1e:2f:e4
inetアドレス:192.168.0.8 ブロードキャスト:192.168.0.255 マスク:255.255.255.0
lo Link encap:ローカルループバック
inetアドレス:127.0.0.1 マスク:255.0.0.0
inet6アドレス: ::1/128 範囲:ホスト
vmnet1 Link encap:イーサネット ハードウェアアドレス 00:50:56:c0:00:01
inetアドレス:192.168.164.1 ブロードキャスト:192.168.164.255 マスク:255.255.255.0
vmnet8 Link encap:イーサネット ハードウェアアドレス 00:50:56:c0:00:08
inetアドレス:192.168.75.1 ブロードキャスト:192.168.75.255 マスク:255.255.255.0
ゲストOSでのifconfigコマンドの結果。
$ /sbin/ifconfig
eth0 リンク方法:イーサネット ハードウェアアドレス 00:0C:29:13:AF:01
inetアドレス:192.168.75.128 ブロードキャスト:192.168.75.255 マスク:255.255.255.0
lo リンク方法:ローカルループバック
inetアドレス:127.0.0.1 マスク:255.0.0.0
必要なのは、ゲストOSのIPアドレスだ。
もちろん、ゲストOSのsshdが動いていること、ゲストOSのssh用通信ポートが開いていることが必要。
ゲストOSのIPアドレスを知るためには、ゲストOSの端末上でifconfigコマンドを使わないといけない。
ホストOS上でifconfigコマンドを使っても、ゲストOSのIPアドレスを表示できないのだ。
今回、仮想マシンのネットワーク設定は、「NAT」を選んでいる。
仮想マシンのネットワーク設定は、「ブリッジ」、「NAT」、「ホストオンリー」の3種類がある。
「ホストオンリー」は、ホストOSとゲストOSとの間でだけ通信ができるというもの。ゲストOSが外部と通信するのはダメ。
外部と通信できるのは、「ブリッジ」と「NAT」なのだが、この両者には違いがあって、
「ブリッジ」は、ゲストOSがルーター(モデム)と直接つながっているイメージ。
「NAT」は、ゲストOSがホストOSを通じてルーターとつながっているイメージだ。
前者は、ルーターとホストOS、ゲストOSが1つのネットワークにある。
後者は、ルーターとそれぞれのOSが別々につながり、2つのネットワークができている。
今回、ホストOSのあるネットワークが、ゲストOSのあるネットワークとは別に存在するようになっているため、ホストOSからゲストOSのIPアドレスは「見えない」。
しかし、ゲストOSのIPアドレスがわかっていれば、ホストOSから、sshコマンドでゲストOSのIPアドレスを直に指定することでssh接続ができる。
下記の例のように。
$ ssh user@192.168.75.128
user@192.168.75.128's password:
Last login: Thu Oct 16 23:58:00 2008
[user@localhost user]$
(参考)
ホストOS上のifconfigコマンドの結果。
$ /sbin/ifconfig
eth0 Link encap:イーサネット ハードウェアアドレス 00:21:85:1e:2f:e4
inetアドレス:192.168.0.8 ブロードキャスト:192.168.0.255 マスク:255.255.255.0
lo Link encap:ローカルループバック
inetアドレス:127.0.0.1 マスク:255.0.0.0
inet6アドレス: ::1/128 範囲:ホスト
vmnet1 Link encap:イーサネット ハードウェアアドレス 00:50:56:c0:00:01
inetアドレス:192.168.164.1 ブロードキャスト:192.168.164.255 マスク:255.255.255.0
vmnet8 Link encap:イーサネット ハードウェアアドレス 00:50:56:c0:00:08
inetアドレス:192.168.75.1 ブロードキャスト:192.168.75.255 マスク:255.255.255.0
ゲストOSでのifconfigコマンドの結果。
$ /sbin/ifconfig
eth0 リンク方法:イーサネット ハードウェアアドレス 00:0C:29:13:AF:01
inetアドレス:192.168.75.128 ブロードキャスト:192.168.75.255 マスク:255.255.255.0
lo リンク方法:ローカルループバック
inetアドレス:127.0.0.1 マスク:255.0.0.0