数学やプログラミングや映画など

新米SEがwebと数学と映画についてつらつら書きたいブログです。

VMwarePlayer上のOSにホストOSからSSH接続する話

概要

 

VMware上のゲストOS(今回はCentOS6)にホストOS(windows10)からSSHで接続したいな、

と思ったらわかっていないことが多く、苦労したので設定メモ。 

 

 

ゲストOS側(VMware上のCentOS6)の設定

ifcfg-eth0の設定

 

/etc/sysconfig/network-scripts/ifcfg-eth0の初期状態

 

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:00:00:00:00:00:00
TYPE=Ethernet
UUID=00000000-0000-0000-0000-000000000000
ONBOOT=no
NM_CONTROLLED=yes
BOOTPROTO=dhcp

 

 ※一部英数字を0に変えてます。

 

こいつをこうしてやります。

 

# cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
HWADDR=00:00:00:00:00:00:00
TYPE=Ethernet
UUID=00000000-0000-0000-0000-000000000000
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.100.200
NETMASK=255.255.255.0

 

上記の変更した項目は

ONBOOT:起動時にONにするか否か

BOOTPROTO:プロトコルを設定し、IPアドレスを取得します。今回は無効に

IPADDR:IPアドレス、ホストと同じグループになるように設定します

NETMASK:サブネットマスク、ホストと同じものを設定します

 

ホストOS側(windows10)の設定

NATの設定ファイルを変更します。

C:\ProgramData\VMware\vmnetnat.conf を変更

[省略]

[incomingtcp]

22 = 192.168.100.200:22

 上記の項目では以下のような規則で設定を追加します。

ホストOSのポート番号 = ゲストOSのIPアドレス:ポート番号

SSHのポート番号のデフォルト値は基本的に22であるので今回はそのまま使用。

 

 NATの設定ファイルを変更したので、タスクマネージャからVMware NAT Serviceを探して再起動します。

 

 ゲストOS(CentOS6)のネットワークを再起動

# ifdown eth0

# ifup eth0

# ifconfig

eth0  -略- 
inet addr:192.168.100.200 Bcast:192.168.100.255 Mask:255.255.255.0
-略-

 ipアドレスがしっかり書き換わっているのを確認します。

 

 さてこれでいけるはずだが失敗

 はい、ホストOSからゲストOSへpingが通りません。

>ping 192.168.100.200

192.168.100.200 に ping を送信しています 32 バイトのデータ:
192.168.100.100 からの応答: 宛先ホストに到達できません。

 

SElinuxを切ってみる

SElinuxSSH接続を拒否してる可能性を考慮して、一応切ってみる。

/etc/sysconfig/selinux ファイルをvim編集

SELINUX=disabled

経験上と先人達の知恵から、とりあえず切っておく。

もちろんしっかりわかった上で設定できるならあったほうが良いが、

今回はとりあえず切る。(ごめんなさい)

 

でも残念ながらpingが通らず、

やってから思ったけどpingが通らないなら関係ない項目だよね。

 

VMwareの設定の再確認からの成功

そもそもゲストOSとホストOSが同一ネットワークに居ることを前提に進めていましたが、

そこから疑うことに。

参考

http://www.nslabs.jp/linux-nat-on-vmware.rhtml

 どうやらVMwareのネットワーク接続の設定によってネットワークの構成が変わるようです。

ブリッジ接続であればホストOSとゲストOSが同一LANに属してくれるようです。

(失敗したときはNATになっていたのでそれぞれ別のLANに属していました)

とりあえずブリッジ接続に変更し、ホストOSからゲストOSにpingを飛ばす。

>ping 192.168.100.200

192.168.100.200 に ping を送信しています 32 バイトのデータ:
192.168.100.200 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.100.200 からの応答: バイト数 =32 時間 <1ms TTL=64

 無事、同一LANに居るようです。

SSH接続も無事にすることができたので、とりあえず所望の動作はできるようになりました。

 

まとめ、今回のポイント

  • DHCPを切ることにより勝手なIPアドレスを振られることを防ぐ
  • IPアドレスとネットマスクを正しく設定し、論理的に同一LANに属するようにする
  • VMwareの設定で、物理的(仮想的?)に同一LANに属するようにする(今回はブリッジ接続で解決)

とりあえず同一LANに居ればSSHで接続はできますからねー