はじめに
VirtualBoxでゲストOSをインストールした後、ネットワーク設定が原因でSSH接続やインターネット接続ができないという経験をした方も多いのではないでしょうか。この記事では、VirtualBox上の仮想サーバを安全に運用するために必要な正しいネットワーク設定方法をわかりやすく解説します。
前提環境
ホストOS(PC側)
- Windows 11
- VirtualBox 7.0.22 r165102 インストール済み
- 無線LAN(Wi-Fi)でインターネット接続
ゲストOS(仮想マシン側)
- CentOS 8.5 インストール済み
ネットワーク構成図
VirtualBoxでゲストOSを運用する際に、ホストOSからのSSH接続とゲストOSからのインターネット接続を両立させるため、以下の2つのネットワークアダプタを設定します。
- NATアダプタ
ゲストOSがホストOSのネットワークを利用してインターネットに接続するためのアダプタです。ゲストOSのプライベートIPアドレスを変換することで外部通信を可能にします。 - ホストオンリーアダプタ
ホストOSとゲストOS間でのみ通信できる専用のアダプタです。主にホストOSからゲストOSへのSSH接続に使用します。
この設定により、ゲストOSは外部通信とホストOSからのアクセスを同時に実現できます。ネットワーク構成図の例を以下に示します。

上記の方法以外に、ブリッジアダプタを使用することでSSH接続とインターネット接続を簡単に実現することも可能です。しかし、ブリッジアダプタでは仮想OSが物理ネットワークに直接接続されるため、他のデバイスや外部からの攻撃を受けるリスクが高まります。
そのため、少し手間はかかりますが、NATアダプタとホストオンリーアダプタの併用による方法を推奨します。安全にVirtualBox上の仮想サーバを運用したい場合はこちらが最適です。
設定方法
まず、VirtualBox上でネットワーク設定を変更します。仮想マシンが起動している場合は、設定変更が反映されないため必ず停止させてください。
次に、VirtualBoxマネージャの画面で対象の仮想マシンを選択し、「設定」ボタンをクリックします。ここからネットワークアダプタの追加や変更が可能です。

下記の通りアダプター1にNATを設定します。
①「ネットワーク」を押下
②「アダプター1」を押下
③「割り当て(A)」の項目に「NAT」を選択
④「OK」を押下

続いて下記の通りアダプター2にホストオンリーアダプターを設定します。
①「アダプター2」を押下
②「ネットワークアダプターを有効化(E)」にチェックを入れる
③「割り当て(A)」の項目に「ホストオンリーアダプター」を選択
④「OK」を押下

上記のネットワーク設定が完了したら、ゲストOSの電源を入れて起動します。
次に、ゲストOS側で端末(Terminal)を開き、ルートユーザに切り替えてip aコマンドを実行してください。ここで、enp0s3にはNATアダプタ、enp0s8にはホストオンリーアダプタが割り当てられていることを確認できます。

まずは、enp0s3(NATアダプタ)の設定を変更します。
ゲストOS起動時にこのインターフェースが有効になるよう、ONBOOT の設定が OFF になっている場合は ON に変更してください。
プライベートIPアドレスは自動的に割り当てられるため、特別な設定は不要です。
作業前に、enp0s3 のネットワーク設定ファイルをバックアップしておくことをおすすめします。

続いて、ゲストOSのネットワーク設定ファイルを vi で編集します。
対象は enp0s3 の設定ファイルで、ONBOOT の項目を no から yes に変更するだけです。

下記のコマンドを実行して、インターフェースenp0s3を有効化します。

ip aコマンドで状態を確認しましょう。下記の通りenp0s3にIPアドレスが割り当てられていればうまくいっています。

外部ネットワークに出れるか確認をしましょう。google.comに対してpingが通れば問題ありません。

続いて、ホストOSからゲストOSへのSSH接続を可能にするため、ゲストOSに固定IPアドレスを割り当てます。
まず、ゲストOSに設定するIPアドレスを決めるために、ホストOSのIPアドレスを確認します。
Windowsの場合は、コマンドプロンプトを起動し、ipconfig コマンドを実行してください。
ここで確認したホストOSのIPアドレスを参考に、ゲストOSの固定IPを設定します。
C:\Users\username>ipconfig
Windows IP 構成
イーサネット アダプター イーサネット 2:
接続固有の DNS サフィックス . . . . .:
リンクローカル IPv6 アドレス. . . . .: fe80::9db3:3d63:1190:dbfe%13
IPv4 アドレス . . . . . . . . . . . .: 192.168.56.1
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .:
Wireless LAN adapter Wi-Fi:
接続固有の DNS サフィックス . . . . .: flets-east.jp
IPv6 アドレス . . . . . . . . . . . .: 240b:10:a840:4f00:dd93:c986:db06:ad65
一時 IPv6 アドレス. . . . . . . . . .: 240b:10:a840:4f00:5dd9:5de1:3308:b62c
リンクローカル IPv6 アドレス. . . . .: fe80::737f:798:ba45:56df%17
IPv4 アドレス . . . . . . . . . . . .: 192.168.10.108
サブネット マスク . . . . . . . . . .: 255.255.255.0
デフォルト ゲートウェイ . . . . . . .: fe80::fab7:97ff:fe71:58a0%17
192.168.10.1イーサネットアダプタには、IPv4アドレス 192.168.56.1、サブネットマスク 255.255.255.0 が割り当てられています。
ゲストOSに、同じセグメントのIPアドレスを設定することで、ホストOSからSSH接続が可能になります。今回は、ゲストOSに 192.168.56.101 を割り当てます。
次に、設定ファイル ifcfg-enp0s3 をコピーして ifcfg-enp0s8 を作成し、以下の通り設定を変更します。この操作により、ホストオンリーアダプタの固定IP設定が完了します。

各設定項目は以下の通りです。VirtualBoxゲストOSでホストオンリーアダプタ(enp0s8)に固定IPを割り当てる際の例として示します。
- NETMASK:サブネットマスクとして
255.255.255.0を指定します。 - BOOTPROTO:固定IPを使用するため
staticを指定します。 - NAME:ネットワークデバイス名として
enp0s8を指定します。 - UUID:
enp0s3と重複しないよう、既存のUUIDは#を付けてコメントアウトします(重複するとネットワークが正しく起動しない可能性があります)。 - DEVICE:
enp0s8を指定します。 - ONBOOT:起動時にインターフェースを有効にするため
yesを設定します。 - IPADDR:ゲストOSに割り当てる固定IPとして
192.168.56.101を指定します。
設定を反映するためにNetworkManagerを再起動します。

ip aコマンドでIPアドレス192.168.56.101が割り当てられているか確認しましょう。

それではホストOSからSSH接続ができるかどうか確認してみましょう。TeraTermを起動して接続してみます。ホストに設定したIPアドレスを入力して「OK」を押下します。

ユーザ名とパスワードを入力して「OK」を押下します。

下記の通り接続出来たら成功です。

まとめ
本記事では、VirtualBox上でゲストOS(CentOS 8.5)を安全に運用するためのネットワーク設定方法を解説しました。
- ネットワーク構成:NATアダプタでゲストOSのインターネット接続を確保し、ホストオンリーアダプタでホストOSからSSH接続を可能にします。
- 設定手順:
- VirtualBoxマネージャでアダプタ1をNAT、アダプタ2をホストオンリーアダプタに設定
- ゲストOSでネットワーク設定ファイルを編集し、ONBOOTをyesに変更
- ホストオンリーアダプタに固定IP(例:192.168.56.101)を割り当て
- NetworkManagerを再起動して設定を反映
- 確認方法:
ip aでIPアドレスを確認し、GoogleへのpingやホストOSからSSH接続で通信できることを確認
NATアダプタとホストオンリーアダプタの併用により、安全かつ確実にゲストOSへのSSH接続とインターネット接続を両立できます。ブリッジアダプタも利用可能ですが、外部ネットワークへの直接接続となるためセキュリティリスクが高まる点に注意してください。
参考文献



コメント