仮想マシンにTera TermでSSH接続する~その3~

やっとこさSSH接続を行う段階に至った。長かったなあ。

接続方式としてはNAT、NATネットワーク、ブリッジアダプターを取り上げてみようと思う。

参考にした記事
VirtualBox の仮想マシンに Tera Term で SSH 接続する手順 (ポートフォワーディング)
VirtualBox + CentOS 7にTeratermを使ってsshでログインする
VirtualBox上のゲストOSにSSHで接続する
VirtualBoxでGuestOSのアプリケーションに外部からアクセスする方法
【VirtualBox】NATネットワークでゲストPC同士を通信させる


NAT

対象仮想マシンの[設定]>[ネットワーク]>[アダプター1]で[割り当て]を「NAT」に設定し、[高度]>[ポートフォワーディング]をクリック。
ポートフォワーディングルール管理画面が表示されるため、ルール追加のアイコンをクリック。

画像1

以下の内容を記入する

画像3

・名前:SSH Connection(何でもよい)
・プロトコル:TCP
・ホストIP:
・ホストポート:22222(使われていないポートであれば何でもよい)
・ゲストIP:
・ゲストポート:22

画像2

↑ポート番号22222が使用されていないことの確認。

NATではゲストPC-ホストPC間の仮想ルータによる接続を行うため、ホストPCからのSSH接続を行うことができないのであった。そこでホストPC(仮想ルータ)の特定のポートに対する接続をゲストPCに流す設定を行った、ということになる。

Tera Termを起動し接続を試みると接続が上手くいった。やったね!!!!

画像5

ローカルホスト(ループバック・アドレス)への接続であればよいので

画像6

でもよいし、コマンドプロンプトから "ipconfig" 叩いて取得したホストPCのプライベートIPアドレスを指定してやってもよい。

画像8

画像8

ちなみにホストOSと同一LANに接続した別端末(要は家族のPC)から上記と同じようにプライベートIPアドレスとポートを指定してやったところ正常に接続することができた。やったね!!!!
家族のPCからホストOS(仮想ルータ)ポート2222に届いたアクセスを仮想ルータの先にあるゲストOSに流す。おお、ポートフォワーディング元来のイメージに近い。

画像16

ポートフォワーディングって本来はLAN上のどの端末に通信を流すかを決めることだと理解したけど、VirtualBox NATの場合はどのLANに流すかを決めている感じ。
こっちは1つの仮想LANに対して1台の仮想マシンしか構築されないしそういう違いはあるかなー。


また、今回はホストOS(仮想ルータ)ポート22222へのアクセスをゲストOSのポート22に流す設定だけをしておりIPアドレスについては空白のまま放置しているが(VirtualBoxのDHCP機能が自動で振ってくれる?)、敢えて設定するならばこうだろう。

画像9

・名前:SSH Connection
・プロトコル:TCP
・ホストIP:
・ホストポート:22222
・ゲストIP:10.0.2.15
・ゲストポート:22

VirtualBoxのNATアダプターを設定した際に仮想マシンに割り当てられるプライベートIPアドレスは10.0.2.15だったので、これを指定すればよい。
※一応ゲストOS側で "ifconfig" 叩いて確認するとIPアドレスは確かに10.0.2.15が割り振られている。

画像10


NATネットワーク

NATの場合は1つの仮想LAN上に1台のゲストPCが構築されるイメージだったが、NATネットワークは1つの仮想LAN上に複数のゲストPCを構築することができる。
ホストPCやインターネット側からゲストPCへの接続を行いたい場合はNAT同様にポートフォワーディングを行うことになる。

さて、設定を進めていく。

VirtualBox画面からファイル>環境設定>ネットワークと進み、下記画像のアイコンをクリックするとNATネットワーク設定が作成される。

画像11

接続の詳細を確認しておく。

画像12

次にゲストPCのネットワーク設定を行う。ネットワーク設定を開き、以下の設定を施す。
1. アダプター1については「NAT」を選択しておく。ポートフォワーディングルールをいい感じに設定する(ポート番号だけ設定すればよい)。
2. アダプター2については「NATネットワーク」を選択する(ネットワーク名:NatNetwork)
上記設定を行った仮想マシン2台を起動し "ifconfig" を叩いてみるとVirtualBoxのDHCP機能によってIPアドレスが割り振られていることを確認できた。

画像14

SSH接続も上手くいく。

NATネットワークでのSSH接続を行うだけならこれで十分なのだが、せっかくなのでポートフォワーディングルールにはIPアドレスの指定も含めてやろうと思う。完全に自己満足で。
つまり、ゲストPCのIPアドレスを固定してポートフォワーディングルールのIPアドレスの欄を埋める。

CentOS 7でローカルIPを固定する
CentOS7 IPアドレスを固定する

まず、/etc/sysconfig/network-scripts/ifcfg-enp0s3 のバックアップを取っておく(root権限)。

# cp /etc/sysconfig/network-scripts/ifcfg-enp0s3 /etc/sysconfig/network-scripts/ifcfg-enp0s3_org

ifcfg-enp0s3に対して以下の変更を施す(root権限)。

1. BOOTPROTO=dhcp → BOOTPROTO=none と変更
2. 以下を追記
HWADDR=[ifconfigで調べたenp0s3のMACアドレス]
IPADDR=[固定したいIPアドレス]
NETMASK=[ifconfigで調べたenp0s3のサブネットマスク]
GATEWAY=10.0.2.2

編集が完了したら仮想マシンを再起動して、IPアドレスが反映されていることを確認する(参考記事ではネットワーク設定反映コマンドを叩いていたけど何故か上手くいかなかった)。

画像15

OK!!!!

あとはVirtualBox NAT設定でポートフォワーディングルールを上記のIPアドレスを使って決めてやればよい。

画像16

ゲストPCのIPアドレスを固定した後に上記ポートフォワーディングルールでデタラメなIPアドレスを指定すると接続に失敗した(無論、正しいIPアドレスで接続もできた)。

NATの時と同じ要領で図示をすると以下のようになる。

画像19

VirtualBox NATの時はゲストPCへの通信をどのLANに流すかポートフォワーディングルールで決めている感じだったが、NATネットワークではどの端末(どのIPアドレス)に流すかを設定するようになる。元来のポートフォワーディングの概念とピッタリ合っている!


ブリッジアダプター

VirtualBoxから対象仮想マシンのネットワーク設定を開き、アダプター1をブリッジアダプターにする。だけ。
ブリッジアダプター接続の仮想マシンを2台用意してifconifgを叩いてみるとそれぞれそれっぽいプライベートIPアドレスが割り振られているし、

画像17

ホストPCからのping疎通も通った。

画像18

というわけで同一LAN上に新たに仮想マシンが増えたような形になっていることを確認することができた。

SSH接続は当然このIPアドレスを指定してやればよいわけで、

画像19

接続完了。

あとはゲストPCに固定IPアドレスを振ってやる。

設定内容の詳細については
CentOS 7でローカルIPを固定する
を参照するとよいだろう。

/etc/sysconfig/network-scripts/ifcfg-enp0s3 の編集内容は

1. BOOTPROTO=dhcp → BOOTPROTO=static と変更
2. 以下を追記
HWADDR=[ifconfigで調べたenp0s3のMACアドレス] ← 要らないと思う
IPADDR=[固定したいIPアドレス]
NETMASK=255.255.255.0
GATEWAY=192.168.11.1
DNS1=192.168.11.1

再起動すれば設定反映される。





この記事が気に入ったらサポートをしてみませんか?