VirtualBoxのネットワーク設定とフォルダ共有を完全解説 - 初心者向けチュートリアル
本記事はVirtualBox管理シリーズの第4回目です。今回は、VirtualBoxにおけるネットワーク設定とデータ共有について、知っておくべきすべてを詳しく解説していきます。
仮想マシンの構成方法を3通り、そしてホストマシンと仮想マシン間でデータを共有する方法を3通りご紹介します。このチュートリアルをマスターすれば、VirtualBoxを自信を持って、しかも楽しく使いこなせるようになるはずです。それでは始めましょう。
はじめに
より理解を深めたい方は、まず以下の関連記事を読んでおくことをおすすめします。本日の内容をスムーズに学ぶための基礎知識が得られます。
・VirtualBox Guest Additionsのインストール方法
・VirtualBox 3の魅力
・VirtualBox 3とCompizのスライドショー
・VirtualBox 3でDirectXを活用する方法
また、本シリーズの最初の3回の記事も併せてご覧ください。
・VirtualBoxでディスクをクローンする方法
・VirtualBoxにハードディスクを追加する方法
・VirtualBoxでディスク容量を拡張/縮小する方法
それでは、本題に入りましょう。
VirtualBoxのネットワークオプション
インストール済みの任意の仮想マシンを選択し、「設定」→「ネットワーク」を開きます。ここからが本番です。初期状態では「アダプター1」のみが表示されています。各仮想マシンには最大4つのネットワークアダプターを搭載でき、必要に応じて個別に有効化できます。ほとんどのユーザーは1つあれば十分でしょう。
「アダプタータイプ」は、VirtualBoxが仮想マシンに提供する仮想化ハードウェアを定義する項目です。特定のアダプタータイプで問題が発生した場合は、別のタイプを試してみてください。デフォルトは「PCnet-FAST III」です。
そのほかに、旧式マシン向けの「PCnet-FAST II」や、「Intel PRO/1000」シリーズが3種類(うち2つはサーバー版)用意されています。サーバー版は本番環境でVirtualBoxを運用する方にとって有用ですが、一般のホームユーザーにとってはどれを選んでも体感差はほとんどありません。
最も重要なのが「割り当て(Aattached to)」セクションです。ここでは、仮想ネットワークアダプターが物理ハードウェアとどのように接続されるかを定義します。選択する方式によって、動作結果は大きく異なります。
ネットワークタイプの種類
選択肢は「NAT(デフォルト)」「ブリッジ」「内部ネットワーク」「ホストオンリー」の4つです。もちろん「未割り当て」という選択肢もありますが、実質的に利用できるものではないため省略します。
NAT(ネットワークアドレス変換)
NAT方式では、仮想マシンには外部からルーティングできないプライベートIPアドレスが割り当てられます。
具体例を挙げましょう。ホストのIPアドレスが192.168.1.1である場合、VirtualBoxのNATデバイスは10.0.2.1として認識され、仮想マシンには10.0.2.xの範囲からアドレスが割り振られます。10.0.2.x/24サブネットへのルーティング経路が存在しないため、ホスト側からこれらの仮想マシンに直接アクセスすることはできません。
この構成は、ゲストOSのIPアドレスが何であれ特に気にしない場合に便利です。ただし、ポートフォワーディングが必要な場合や、外部にサービスを公開したい場合、さらにはネットワーク経由での共有を行いたい場合には不向きです。
メリット: 設定が簡単で、外部から隔離された安全な環境になる。
デメリット: ホストから仮想マシンへのルートが存在せず、ネットワーク共有ができない。
ブリッジアダプター
ブリッジアダプター方式では、稼働中の仮想マシンが、ホストのアクティブなネットワークインターフェースと同じDHCPサーバーからIPアドレスを取得しようとします。「ブリッジ(橋渡し)」という名称は、両者が同じネットワークに接続されることに由来します。
アクティブなネットワークデバイスが複数ある場合は、どれをVirtualBoxとブリッジするかを選択できます。ここでは例として無線LANアダプターのwlan0を使用します。
具体例:ホストがルーターから192.168.1.100をリースしている場合、仮想マシンは同じルーターから192.168.1.103をリースします。これにより両マシンは同一ネットワークを共有し、通常のネットワークルールが適用されます。実用上は、仮想マシンがLAN上のもう1台のコンピュータとして動作することになります。
ただし注意点があります。接続先の機器(スイッチ、ルーター、ISPなど)が複数のIPアドレスのリースを許可していない場合、この構成は機能しません。したがって、モデムなどに直接接続してインターネットにアクセスしている環境では、ブリッジ接続が使えないことがあります。
メリット: ポートフォワーディングやサービス公開による柔軟なネットワーク管理が可能。従来型のネットワーク共有がそのまま使える。
デメリット: 直接インターネット接続環境では動作しない可能性がある(ルーター必須)。初心者には概念の理解がやや難しい。仮想マシンがネットワークに露出するため、セキュリティ面での配慮が必要。
ホストオンリーアダプター
ホストオンリーアダプターは非常に興味深い方式です。ブリッジアダプターとよく似ていますが、IPアドレスの割り当てに「vboxnet0」という専用の仮想ネットワークデバイスを使用する点が異なります。
ホストマシン自体が事実上のVirtualBoxルーターとして機能し、そのIPアドレスは192.168.56.1になります。このアダプターは、ホストオンリー設定の仮想マシンが起動していないときは使用されませんが、仮想マシンが起動するとIPアドレスを供給し、自分のネットワーク内にもうひとつの内部LANを形成します。
具体例:ホストのIPアドレスが192.168.56.1、仮想マシンのIPアドレスが192.168.56.101となります。
これはVMware Serverの仕組みによく似ています。VMware Serverにはvmnet1とvmnet8という2つの仮想アダプターがあり、NATおよびホストオンリー用のIPアドレスをゲストに割り当てます。ただし、VirtualBoxのNATアダプターとは異なり、VMware Serverは常にホストのデフォルトネットワークデバイスをブリッジするため、NAT接続のマシンにも直接ネットワークアクセスが可能です。残念ながら、VirtualBoxにはまだこの利便性はありません。
とはいえ、VirtualBox 3でvboxnet0が追加されたことで、この優れたソフトウェアのネットワーク利用は格段に簡単になりました。以前のバージョンで私がどれほど苦労したかは、VMGLのチュートリアルをご覧いただければ分かります。当時はすべてを手動で設定する必要があったのです。ちなみに、デフォルトのIPアドレス割り当て範囲は変更することも可能です。
非常に重要な点として、ホストオンリーアダプターを使用しても、ゲストOSはインターネットにアクセスできないことを覚えておいてください。実際、アクセスは不可能です。vboxnet0にはデフォルトゲートウェイが存在しないためです。ローカルネットワーク外への通信を可能にするには、別のアダプターを経由するよう設定し、パケットフォワーディングを有効化し、ファイアウォールルールの再設定まで行う必要があります。そこまでするなら、最初からブリッジ接続を使えばよいのです。
ホストオンリーアダプターは、マシン同士が相互に通信できればよく、サブネット外へのアクセスを必要としないプライベートネットワークの構築に役立ちます。
メリット: 動作の検証やペネトレーションテストなど、ノイズの多いテスト環境の構築に最適。IPアドレス経由の従来型ネットワーク共有も可能。
デメリット: ブリッジ接続と同様に初心者には理解が難しい。仮想マシンからインターネットにアクセスできない。プライベートネットワーク上の他マシンにセキュリティリスクをもたらす可能性もある。
内部ネットワーク
個人的な意見ですが、内部ネットワークはあまり魅力的な選択肢ではありません。ホストオンリー+ NATの組み合わせに似ていますが、通信はゲストマシン同士の仮想ネットワーク内だけで完結し、ホストからのアクセスは一切できず、実際のNAT機能もありません。つまり、外部世界へのアクセスを持たない、ゲスト専用のプライベートLANが手に入るだけです。
VirtualBoxでのデータ共有
ネットワークオプションを理解したところで、次は共有機能を試してみましょう。VirtualBoxでデータを共有する方法は2つあります。1つはIPアドレスを使った直接的なネットワークアクセス、もう1つは「共有フォルダー」機能の利用です。
個人的にはネットワークを使った方法をおすすめします。現実世界でもこのやり方が標準だからです。他のマシンにネットワーク経由でリクエストを送り、相手側でNFSやSambaといった共有サービスが待ち受けしており、認証が正しく行われれば、共有の一覧が表示され、ファイルのやり取りができるようになります。FTPやSSHを使った共有も、同様に従来型のネットワークチャネルを利用する方法です。
一方、共有フォルダーは、ホスト上にフォルダーを作成し、それを仮想マシン内部にマウントする機能です。すべてのネットワーク構成で動作し、VirtualBoxの内部共有サーバーを通じてゲストから共有データへのアクセスを可能にします。
ネットワーク経由での共有
前述のとおり、ネットワーク経由の共有が可能なのはブリッジ接続とホストオンリー接続の場合だけです。具体的な例を2つ見てみましょう。最初のステップは、ゲストマシン側で共有を許可することです。
次に、仮想マシンのIPアドレスを指定してアクセスします。
Windowsの場合:
「スタート」→「ファイル名を指定して実行」を開き、「\XXX.XXX.XXX.XXX」と入力します。XXXの部分は仮想マシンの実際のIPアドレスに置き換えてください。
Linuxの場合:
ファイルマネージャーのアドレスバーに「smb://XXX.XXX.XXX.XXX」と入力します。「smb://」はSambaネットワークプロトコルを意味し、XXXの部分にはゲストマシンのIPアドレスを指定します。
ブリッジ接続の場合はこのように表示され、ホストオンリー接続の場合も同様の手順でアクセスできます。
画面タイトルの「Windows共有」は気にしないでください。Sambaは主にWindowsホストとの共有に使われますが、Linuxマシン間ではNFSが一般的です。ただしSambaはWindowsとLinuxの両方で動作するため、こちらが推奨されます。Samba共有の詳細については、専用のチュートリアル記事をご参照ください。
共有フォルダーの設定
補足:ここまでの手順はWindowsゲストでもLinuxゲストでも共通です。そこで最後の共有フォルダーのデモンストレーションは、Windowsマシン上で行うことにしました。
共有フォルダーの設定はとても簡単です。まず、ホスト上で共有したいフォルダーを準備します。任意の仮想マシンの「設定」メニューを開き、「共有フォルダー」へ移動してください。
右側のペインに、そのマシンの共有フォルダー一覧が表示されます。追加や削除は自由に行えます。右側にある小さなアイコンがそのためのボタンです。
フォルダーパス:
共有したい実際の物理パスを指定します。Windowsなら「C:\shared」、Linuxなら「/home/roger/shared」のような形式になります。
フォルダー名:
ゲスト側に表示される共有の名称です。スペースを含まない名前(「Shared-folder」や「Banana」など)を使用してください。この名前は実際のフォルダー名と同じでも構いませんし、異なっても問題ありません。ただし重要なのは、これはパスではないという点です。仮想マシンはホストの物理ハードウェアを見ることができないため、参照用のシンボリックな名前として機能します。
パスを作成したら、仮想マシンを起動しましょう。
Windowsゲストの場合:
仮想マシンがWindowsの場合、コマンドラインまたはエクスプローラーの「ツール」→「ネットワークドライブの割り当て」からネットワーク共有にアクセスできます。
コマンドラインでは「net use」コマンドを使用します。
net use <ドライブレター> \\vboxsvr\share-name
「net use」はネットワークドライブをマウントするためのコマンドです。
「<ドライブレター>」は仮想マシン内で共有に割り当てられるドライブです。E:、G:、X:など、空いている任意のドライブレターを指定できます。
「\\vboxsvr\share-name」は共有へのパスです。「\\vboxsvr」がVirtualBoxの共有サーバーを表し、「share-name」は先ほど設定したフォルダー名です。たとえば共有名を「Rambo」とした場合、パスは「\\vboxsvr\Rambo」となり、コマンド全体は次のようになります。
net use h: \\vboxsvr\Rambo
エクスプローラーの「ツール」メニューから操作する場合は、GUIでドライブを選択して完了できます。
「ログオン時に再接続する」にチェックを入れておけば、仮想マシンを起動するたびにこの作業を繰り返す必要がなくなります。「完了」をクリックすると、「マイコンピュータ」に新しいドライブが表示され、そのドライブを開けば共有フォルダーの内容にアクセスできます。
Linuxゲストの場合:
ターミナルウィンドウでシンプルなコマンドを1つ実行するだけです。
mount -t vboxsf share マウントポイント
「vboxsf」は共有フォルダーをマウントする際に使用される疑似ファイルシステムタイプで、VirtualBoxの仮想共有サービスに対する抽象的な翻訳レイヤーです。
「share」は先ほど設定したフォルダー名です。忘れないでください、必要なのはパスではなく名前です。たとえば共有名が「Banana」なら、share = Bananaとなります。
「マウントポイント」は、共有フォルダーをマウントしたいLinuxツリー上の任意のディレクトリです。たとえば「/home/roger/shares-go-here」などです。
したがって、コマンドは次のようになります。
mount -t vboxsf Banana /home/roger/shares-go-here
これで、ホスト上の共有フォルダー内のすべての内容が、仮想マシン内の指定パスから閲覧できるようになります。
この作業を自動化したい場合は、マウント設定を「/etc/fstab」に追記しましょう。fstabの編集方法の詳細については、Linuxコマンドのチュートリアル記事をご参照ください。
ちなみに、設定メニューのヘルプにもこの手順の説明が記載されていますので、参考にしてみてください。
以上で解説は終わりです。
まとめ
これで、VirtualBoxのネットワークと共有について知っておくべきすべてを習得しました。WindowsでもLinuxでも、ブリッジ、ホストオンリー、NAT、ネットワーク経由の共有、共有フォルダーなど、あらゆる手法を網羅しています。本チュートリアルをお楽しみいただけたなら幸いです。
今後も有益な情報をお届けしていきますので、ぜひお楽しみに。
-
VirtualBox 3.0.0 徹底レビュー!DirectX対応とネットワーク機能強化がすごい
私のお気に入りのデスクトップ仮想化ソフトウェアといえば、VirtualBoxとVMware Serverです。どちらも愛用しており、それぞれに魅力があります。全体的にはよく似た製品ですが、片方にしかない独自の機能を持っており、互いをうまく補完し合う関係にあると言えます。 つい先日、VirtualBox 3.0.0が大きな話題とともにリリースされました。これは、旧バージョンやVMware Serverと比べてどこまで進化したのかを確かめる絶好の機会です。深呼吸して、私と一緒にツアーに出かけましょう。長めの前置きで少々お付き合いいただきますが、きっと価値のある内容のはずです。 VirtualBo
-
仮想マシンでの3Dアクセラレーション パート2:VirtualBoxとOpenGLの設定方法チュートリアル
本記事は、仮想マシンにおける3D仮想化の設定と活用方法を解説する全3回シリーズの第2回です。今回は、WindowsまたはLinuxホスト上にインストールしたVirtualBoxで動作するWindows仮想マシンに対して、OpenGLアプリケーション(およびゲーム)向けの3Dアクセラレーションを有効にする方法を学びます。前回の第1回では、VMware製品を使ってWindows上のDirectXプログラムに3Dアクセラレーションを有効化する手順をご紹介しました。このときはホストOSがWindowsでもLinuxでも問題なく動作しました。そして最終回となる第3回では、LinuxホストとLinux仮想