#はじめに
前回の記事ではVMware Workstation PlayerでゲストOSを作成する方法を紹介しました。
しかしVMware Workstation PlayerでゲストOSを作成してもデフォルトの設定だと
・TeraTerm接続不可
・ネットワーク接続不可
・ファイル転送不可
と使いにくい環境であることが否めないです。
本記事では、VMware Workstation Player上のゲストOSをVMnet8を用いたNAT接続で、TeraTerm接続、インターネット接続を実現する方法を紹介します。環境によっては上手くできないこともありますので、あくまでも一例として参考にしてください。
※設定できることに重点を置いているため詳細な説明はVMwareのドキュメントを確認していくだい。
##環境
VMware Workstation 15 Player
ホストOS:Windows10 home(インターネット接続された環境)
ゲストOS:CentOS7.7
##NAT接続について
詳細はVMware Workstation Proのドキュメントですがこちらを参照してください。
要約すると
・NATデバイスによってゲストOSのIPアドレスをホストOSのIPアドレスに変換する
・VMnet8によってホストOSとゲストOSの通信をする
この2点を理解できれば本記事の設定のおいては問題ないです。
またNAT接続時に仮想DHCPサーバが起動します。
こちらもVMware Workstation Proのドキュメントですがこちらをご確認してください。
難解で少し読みにくいですが、仮想DHCPサーバによってVMnet8のIPアドレスの第4オクテットは「1」NATデバイスの第4オクテットは「2」が割り当てられると思ってください。
##ホストOS側の確認
VMware Workstation Playerインストール時にホストOSのネットワークアダプタにVMnet1,VMnet8が追加されます。本記事ではVMnet1は使用しません。
###1.仮想DHCPサーバから払い出されているVMnet8のIPアドレスの確認
コマンドプロンプトで確認します。
C:\Users\xxx>ipconfig
略
イーサネット アダプター VMware Network Adapter VMnet8:
接続固有の DNS サフィックス . . . . .:
リンクローカル IPv6 アドレス. . . . .:
IPv4 アドレス . . . . . . . . . . . .: 192.168.64.1
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .:
略
VMnet8にIPアドレス「192.168.64.1」が設定されているのが確認できます。
C:\ProgramData\VMware\vmnetdhcp.confから確認もできますが、設定箇所がわかりにくいのでコマンドプロンプトでの確認をオススメします。
###2.ゲストOSのネットワーク設定の確認
ゲストOSのネットワークはデフォルトでNAT接続に設定されていますが、念のため設定を確認します。
※接続できないときのトラブルシューティングになります。
VMware Workstation 15 Playerを起動して対象のゲストOSの「仮想マシン設定の編集」からネットワークアダプタを選択します。
ネットワーク接続がNATにチェックされているか確認します。
##ゲストOS側の設定
VMware Workstation Playerで対象のゲストOSを起動してコンソール画面からゲストOSにログインします。
###1.仮想ネットワークアダプタの設定
ゲストOSのネットワークアダプタ名を確認します。
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:5a:13:36 brd ff:ff:ff:ff:ff:ff
ネットワークアダプタ名がens33
であることが確認できたのでネットワークアダプタの設定ファイルを編集します。
※環境によってネットワークアダプタ名が異なるため、適宜読み替えてください。
[root@localhost ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33
[修正]
BOOTPROTO=dhcp ⇒ BOOTPROTO=none
ONBOOT=no ⇒ ONBOOT=yes
[追記]
IPADDR=192.168.64.30
NETMASK=255.255.255.0
GATEWAY=192.168.64.2
DNS1=8.8.8.8
IPアドレスはホストOSのVMnet8のネットワークレンジのIPアドレスをNATデバイスが使用する第4オクテット「2」以外を設定します。
サブネットマスクはVMnet8と同様の範囲を、ゲートウェイはNATデバイスのIPアドレスを設定します。
DNSはホストOSの環境にできるだけ左右されないようにGoogle Public DNS(8.8.8.8)を設定します。
###2.ネットワークサービスの再起動
[root@localhost ~]# systemctl restart network
[root@localhost ~]#
「systemctl restart network」でエラーが発生する場合ネットワークアダプタの設定ファイルが誤っている可能性があるので見直してください。
###3.接続確認
ネットワークアダプタ(ens33)の設定ファイルが反映されているか確認します。
「ip a」を入力します。
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:5a:13:36 brd ff:ff:ff:ff:ff:ff
inet 192.168.64.30/24 brd 192.168.64.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::1ed5:260e:7b11:ce9e/64 scope link noprefixroute
valid_lft forever preferred_lft forever
TeraTerm接続、インターネット接続を確認します。
ホストOSからゲストOSにTeraTerm接続し、「ping 8.8.8.8」を入力します。
[root@localhost ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=84.7 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=128 time=80.4 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=128 time=94.8 ms
^C
--- 8.8.8.8 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2010ms
rtt min/avg/max/mdev = 80.443/86.670/94.818/6.033 ms
[root@localhost ~]#
##トラブルシューティング
###TeraTerm接続できない時
ホストOSからゲストOSに対してping疎通できるか確認します。
ping疎通でいない場合は、ゲストOSのIPアドレスがVMnet8と同じレンジで設定されていない可能性があります。
ping疎通はできるがTeraTerm接続できない場合はゲストOSのセキュリティやsshd
の設定に問題がある可能性があります。
SELinux
firewalld
の設定を一時的に無効にする or /etc/ssh/sshd_config
のlistenAddress
の設定を見直してTeraTerm接続を試してください。
###インターネット接続できない時
ホストOSがインターネット接続しているか、ゲストOSのネットワーク接続はNATに設定されているか確認します。
上記の設定に問題がない場合、ゲストOSからNATデバイス(本記事は192.168.64.2)⇒Google Public DNS(8.8.8.8)の順にping疎通できるか確認します。
ping疎通がNGだった箇所のネットワークアダプタ設定を見直してください。
##おわりに
ゲストOSをインターネット接続できるようになるとyumコマンドでMySQLなどのミドルウェアをインストールするのが楽になります。ミドルウェアがインストールできれば、作成したwebアプリケーションをデプロイして動作確認することもできます。自己学習では汎用性のある環境なので是非、活用してください。