VirtualBoxでSSH接続できない?NAT+ホストオンリーで解決するネットワーク設定手順【AlmaLinux 9】

はじめに

VirtualBoxでゲストOSをインストールした後、ネットワーク設定が原因でSSH接続やインターネット接続ができないという経験をした方も多いのではないでしょうか。この記事では、VirtualBox上の仮想サーバを安全に運用するために必要な正しいネットワーク設定方法をわかりやすく解説します。

前提環境

ホストOS(PC側)

  • Windows 11
  • VirtualBox 7.0.22 r165102 インストール済み
  • 無線LAN(Wi-Fi)でインターネット接続

ゲストOS(仮想マシン側)

  • AlmaLinux 9.6 インストール済み

ネットワーク構成図

VirtualBoxでゲストOSを運用する際に、ホストOSからのSSH接続ゲストOSからのインターネット接続を両立させるため、以下の2つのネットワークアダプタを設定します。

  • NATアダプタ
    ゲストOSがホストOSのネットワークを利用してインターネットに接続するためのアダプタです。ゲストOSのプライベートIPアドレスを変換することで外部通信を可能にします。
  • ホストオンリーアダプタ
    ホストOSとゲストOS間でのみ通信できる専用のアダプタです。主にホストOSからゲストOSへのSSH接続に使用します。

この設定により、ゲストOSは外部通信とホストOSからのアクセスを同時に実現できます。ネットワーク構成図の例を以下に示します。

ブリッジアダプタを使用すれば、1つのNICでSSH接続とインターネット接続を同時に実現することも可能です。ブリッジアダプタでは物理ネットワークと同一セグメントに直接参加するため、
DHCP配布やファイアウォール設定によっては意図せず外部公開状態になる可能性があります。

そのため、少し手間はかかりますが、NATアダプタとホストオンリーアダプタの併用による方法を推奨します。安全にVirtualBox上の仮想サーバを運用したい場合はこちらが最適です。

設定方法

まず、VirtualBox上でネットワーク設定を変更します。仮想マシンが起動している場合は、設定変更が反映されないため必ず停止させてください。

次に、VirtualBoxマネージャの画面で対象の仮想マシンを選択し、「設定」ボタンをクリックします。ここからネットワークアダプタの追加や変更が可能です。

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

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

※仮想マシンが起動中だとアダプター2の追加はできませんので、停止中に作業してください。

上記のネットワーク設定が完了したら、ゲストOSの電源を入れて起動します。

次に、ゲストOS側で端末(Terminal)を開き、ルートユーザに切り替えて ip a コマンドを実行してください。ここで、enp0s3にはNATアダプタ、enp0s8にはホストオンリーアダプタが割り当てられていることを確認できます。

外部ネットワークに接続できるか確認しましょう。一例として、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 を割り当てます。

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

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

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

※デフォルトの設定では、rootユーザではSSH接続ができないので、SSH接続用のユーザを作成しておいてください。

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

まとめ

本記事では、VirtualBox 上で AlmaLinux 9.6 を安全に運用するためのネットワーク設定方法について解説しました。

ポイントは以下の通りです。

  • NATアダプタでゲストOSのインターネット接続を確保する
  • ホストオンリーアダプタでホストOSからのSSH接続経路を確保する
  • ホストオンリー側に固定IPアドレスを設定して安定した接続を実現する
  • ip aping、SSH接続で必ず動作確認を行う

NATとホストオンリーアダプタを併用することで、

  • 外部ネットワークへの通信
  • ホストOSからの安全なリモート接続

を分離でき、検証環境として扱いやすい構成になります。

ブリッジアダプタは構成がシンプルな反面、物理ネットワークへ直接参加するため、環境によっては意図せずアクセス可能な状態になる可能性があります。検証用途や学習用途であれば、本記事で紹介した構成がバランスの取れた選択肢といえるでしょう。

VirtualBox環境でSSH接続ができない、インターネットに接続できないといったトラブルの多くは、ネットワーク構成の理解不足が原因です。本記事の手順をベースに構成を整理すれば、安定した仮想サーバ環境を構築できます。

今後は、firewalld設定やポートフォワーディング設定、複数VM構成などへ発展させることで、より実践的な検証環境を構築していくことも可能です。

安全かつ安定した仮想環境構築の参考になれば幸いです。

参考文献

Virtualbox NAT and host-only connection
Because I'm working on multiple locations, I experience problems with my development servers. Because work on a variety ...

コメント