山崎屋の技術メモ

IT業界で働く中でテクノロジーを愛するSIerのシステムエンジニア👨‍💻 | AndroidとWebアプリの二刀流🧙‍♂️ | コードの裏にあるストーリーを綴るブログ執筆者✍️ | 日々進化するデジタル世界で学び続ける探究者🚀 | #TechLover #CodeArtisan、気になること、メモしておきたいことを書いていきます。

VirtualBox に入れた CentOS のネットワーク設定

VirtualBox シリーズの第二弾です。

  • 第三弾 VirtualBox に入れた CentOS のネットワーク設定   ← この記事


前回、前前回と VirtualBox のインストールから、仮想マシンへの CentOS インストールを取り上げました。

今回は、ゲスト OS を作成した際に自動で作成された NAT モードのアダプタを有効にして、ゲスト OS からインターネットにつながるようにします。

また、ホスト OS からゲスト OS に SSH で接続できるよう、ポートフォワーディングの設定を行います。

※ Linux 勉強用のお試し環境のため、セキュリティとかは考慮していません。

バージョンは以下のとおりです。

ホスト OS : Windows 7
VirtualBox : 5.2.6
ゲスト OS : CentOS 7.4

NAT モードとは

VirtualBox がルータとなり、 ホスト OS と ゲスト OS を中継するモード です。ゲスト OS から ホスト OS にアクセスすることや、ゲスト OS からホスト OS を経由してインターネットアクセスをすることができます。

ただし、デフォルトでは ホスト OS から ゲスト OS へのアクセスは行えません。

ポートフォワーディングとは

NAT モードでホスト OS からゲスト OS にアクセスできるようにする設定です。ホスト OS の、あるポートにアクセスすると自動でゲスト OS のあるポート(通常は SSH の22番ポート)に転送(フォワーディング)してくれます。

ネットワークを有効にする

CentOS をインストールした直後に「nmcli device」でネットワークの状態を確認すると、enp03s が disconnected になっています。(「enp03s」の名前は人によって異なる可能性があります。)
f:id:yyama1556:20180210162337p:plain

当然、外部への ping も通りません。
f:id:yyama1556:20180210162659p:plain

というわけで、設定ファイルを修正します。ファイル「/etc/sysconfig/network-script/ifcfg-enp03s」を覗いてみると、「ONBOOT=no」が指定してあると思います。これを「ONBOOT=yes」に直してリブートしましょう。

「nmcli device」のコマンド結果が以下のように connected になりました。
f:id:yyama1556:20180210163038p:plain

また、外部への ping も、通るようになりました。
f:id:yyama1556:20180210163102p:plain

ポートフォワーディングの設定

続いて、ホスト OS から ゲスト OS に SSH 接続できるよう、ポートフォワーディングの設定を行います。

VirtualBox マネージャーより、仮想 OS を選択し「設定」→「ネットワーク」→「高度」→「ポートフォワーディング」を選択します。
f:id:yyama1556:20180210164101p:plain

以下の画面が表示されますので、赤枠の追加ボタンをクリックします。
f:id:yyama1556:20180210164236p:plain

ポートフォワーディング ルールの画面が表示されるので、以下のように入力します。名前は適当に、ホストポートはウェルノウンポートを外して 1024 以上の適当な番号、ゲストポートは SSH の 22 を指定して OK ボタンを押します。
f:id:yyama1556:20180210164541p:plain

設定画面も OK ボタンで閉じます。

SSH サーバの起動とファイアーウォール設定

ゲスト OS 側で SSH サーバの起動とファイアーウォール設定が必要なのでは?と考えていました。が、調べたところ、すでに SSH は起動していて、ファイアーウォールも 22 番ポートの穴あけは完了していました。

$ yum list installed | grep ssh-server

で、SSH サーバがインストールされていることを確認し、

$ systemctl status sshd.service

で、サービスが起動していることを確認しました。
f:id:yyama1556:20180210171922p:plain


また、ファイアーウォールの設定を

firewall-cmd --list-all

で確認します。Service に ssh が入っていますね。
f:id:yyama1556:20180210172215p:plain

したがって、この章は省略します。

SSH 接続を試す

では、ホスト OS で TeraTerm を立ち上げ、localhost の 2000番 ポートに接続してみます。
f:id:yyama1556:20180210165420p:plain

無事、ゲスト OS の 22 番ポートに SSH 接続できました。
f:id:yyama1556:20180210165601p:plain

まとめ

これで ゲスト OS から外部への接続および、ホスト OS から ゲスト OS への SSH 接続ができるようになりました。

他のサイトでは、ホスト OS → ゲスト OS の接続方法をホストオンリーアダプタで紹介しているページが多いですが、NAT モードだけでもできることがわかりました。

これで、Linux のお勉強準備が整いました。引き続き、シェル芸の勉強に移りたいと思います。

では。

おうちで学べる仮想化のきほん

おうちで学べる仮想化のきほん

VirtualBox/Ubuntuスタートアップガイド (OIAX BOOKS)

VirtualBox/Ubuntuスタートアップガイド (OIAX BOOKS)

はじめてのVirtualBox―オープンソースの「仮想化ツール」の使い方を詳細解説! (I・O BOOKS)

はじめてのVirtualBox―オープンソースの「仮想化ツール」の使い方を詳細解説! (I・O BOOKS)