18
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

Organization

Ubuntu 18.04(on VirtualBox) ホストOSからの通信

やりたいこと:ローカルにVMでLinux環境を作ってテストサーバとか動かしたい。

最初はDockerで構築しようと思ったけど、Windows10 HomeのPCなのでDocker Toolboxじゃないと構築できないし、じゃあWSL環境でネイティブのDockerが動くと評判なので入れてみたら、WSLはdocker-composeがまだ(2018年10月時点)ネットワーク周りの設定が動かない。

というわけで結局、VirtualBoxにUbuntuを入れた話。

  • ホスト: Windows10 Home
    • VirtualBox 5.2.18
  • ゲスト: Ubuntu 18.04

ホストOSとの通信やネットワークの設定で少しハマったので手順を残しておきます。

VirtualBoxのインストール

これは普通に。

ゲストOSのインストール

これも普通に。
今回はUbuntu 18.04をインストール
イメージはこの辺 http://releases.ubuntu.com/18.04/ubuntu-18.04.1-live-server-amd64.iso

この時点でVMのUbuntuからのインターネット接続はVirtualBoxがよしなにしてくれてるので問題ないはず。
ただ、ホストOSであるWindowsからゲストOSのUbuntuへは接続するネットワークの経路がないため通信できない。

ホストOSからゲストOSへの通信

VirtualBoxを入れたホストのWindows10から、ゲストのUbuntuへ接続するための(個人的に)一番単純な方法は「ホストオンリーアダプター」を使った構成。

(TODO:接続のイメージ図)

(ホストOS)ネットワークの作成

インストール時になんか設定が足りなかったのか、いろいろググって出てきた手順がうまくいかなかったので、手動で作成。

まず[グローバルツール]を表示

2018-11-03_20h06_42.png

[作成]する

2018-11-03_20h10_19.png

ホストオンリーアダプタが作成される

2018-11-03_20h42_38.png

この時点で、Windowsのネットワークにも新しく作成されたネットワークアダプタが確認できる

2018-11-03_20h54_02.png

ゲストOSのネットワーク設定を開き、アダプター2にホストオンリーアダプタを追加設定

(ホストOS)ネットワークのプロパティ

[プロパティ]ボタン押下でネットワークアドレスの設定ができる

image.png

「アダプターを手動で設定」で、VirtualBoxで動かすVMの追加ネットワークのネットワークを設定できる。(自動にするとどうなるかは未確認)
把握しやすいアドレス帯を入力しておく。
DHCPは任意。VMをサーバとして動かして静的IPを設定するのであればたぶん不要。クライアント用途で動かす予定があるならonにしておいても良い。

(VM)NICの追加

VMのネットワーク設定の、「アダプター2」のタブを開く。

image.png

「ネットワークアダプターを有効化」し、「ホストオンリーアダプター」を割り当てる

image.png

これでゲストOSにNICが追加される。
そして、ネットワークのプロパティに設定したIPアドレスに合わせてゲストOSのIPアドレスを設定する。

(ゲストOS)追加したネットワークインタフェースに固定IPを設定

Ubuntu 17.10からネットワークの設定は「Netplan」に変更されている。

ip aまたはifconfig -aで見える追加されたNIC(enp0s8のはず)に対する設定を/etc/netplan/50-cloud-init.yamlに追記する。

静的IPアドレスであればこれだけでOK(optionalも無くてよい)

--- /etc/netplan/50-cloud-init.yaml.org 2018-10-24 22:16:36.024000000 +0900
+++ /etc/netplan/50-cloud-init.yaml     2018-10-27 10:54:32.612000000 +0900
@@ -8,4 +8,7 @@
         enp0s3:
             addresses: []
             dhcp4: true
+        enp0s8:
+            addresses: [192.168.244.89/24]
+            optional: true
     version: 2

変更後netplan applyを実行すれば設定が反映され、ホストOSからこのアドレスに対して通信ができるようになる。

ホストOS起動時にバックグラウンドで指定VMを起動させる

使いたいときにVirtualBoxのマネージャーを起動してVMを起動するのも面倒なので、タスクスケジューラを使ってWindowsが起動したときにVMもバックグラウンドで動作するようにする。

タスクスケジューラを起動

image.png

実行するコマンドは以下の通り

プログラム 引数
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm "ubuntu1804_x64" --type headless

ubuntu1804_x64は起動したいVMの名前

タスクの作成

「基本タスクの作成」から

image.png

タスク名を入力

image.png

トリガーに「コンピューターの起動時」を選択

image.png

操作

image.png

プログラムと引数を入力

image.png

これでタスクが作成されるが、起動時に設定するために権限の設定を追加する。

image.png

「ユーザーがログオンしているかどうかにかかわらず実行する」を選択し、「最上位の特権で実行する」はチェック…しなくてもよい

image.png

これでPC起動時に指定のVMもバックグラウンドで起動する

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
18
Help us understand the problem. What are the problem?