脳汁portal

アメリカ在住(だった)新米エンジニアがその日学んだIT知識を書き綴るブログ

[VM] VirtualBoxのネットワーク設定

ネットワークアダプタ

VirtualBoxが仮想OSに割り当てるネットワークアダプタにはいくつか種類があるので簡単に説明。

  1. NAT(Network Address Translation)
    • アドレス変換。ゲストOS・インターネット間の通信が出来る。
    • ホストOSからゲストOSへはアクセス出来ない。
  2. ブリッジアダプタ
    • ホスト端末が複数NICを備えている場合なんかに、ひとつのNICをゲストOSに割り当てる
    • バーチャル上のWebサーバを外部に公開した場合などに使用する。
  3. 内部ネットワーク
    • ゲストOS「同士」で通信できるようになる。
    • ホストOSからゲストOSへはアクセス出来ない
  4. ホストオンリーアダプタ
    • ホストOS・ゲストOS間で通信可能。
    • ゲストOSからインターネットには出られない。

ネットワーク設定

  1. NATの設定(確認)
    • これが設定されていないとVMからインターネットにアクセス出来ない(wgetもgitも何も使えない)
    • 通常は最初から設定されているはず
      • (設定 > ネットワーク > アダプター1)
  2. ホストオンリーアダプタの設定
    • これを設定すればホストOS(Windows等)からVMにアクセスできる(teratermとか、ブラウザからアクセスしたい時など)
    1. ファイル > 環境設定 > ネットワーク > ホストオンリーネットワーク
    2. 右にある「ホストオンリーネットワークを追加」を選択
    3. 作成されたネットワークを選択して、右の「ホストオンリーネットワークを編集」を選択
    4. IPv4アドレスに設定したいIPアドレスを設定(192.168.223.1とか)
    5. VMのイメージが並んでる画面に戻って、追加したホストオンリーネットワークを使用したいVMのイメージを右クリック
    6. 設定 > ネットワーク > アダプター2
    7. ネットワークアダプタを有効化にチェック
    8. 割り当てをホストアダプターに変更
    9. 名前を今作成したアダプター(Virtual Box Host-Only Ethernet Adapter #2)へ変更
    10. 起動
  3. teraterm等からアクセス
  4. ネットワークを確認
    • 192.168.223.2/24が追加されてたらOK
$ ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:6d:16:de brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global eth0
    inet6 fe80::a00:27ff:fe6d:16de/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:ad:11:c4 brd ff:ff:ff:ff:ff:ff
    inet 192.168.223.2/24 brd 192.168.223.255 scope global eth1
    inet6 fe80::a00:27ff:fead:11c4/64 scope link
       valid_lft forever preferred_lft forever

5. 追加されていない場合は以下を参照

ネットワーク設定(認識)が自動でされない場合

  • 以下の作業は、途中で一度ゲストOSとホストOSの接続が切れるため、VMのコンソールから行うこと推奨

CentOSの場合

/sbin/ifconfig
###この時点でメモしたIPアドレスがあれば以下の作業は不要
 
ifconfig -a

vi /etc/sysconfig/network-scripts/ifcfg-eth1 ###CentOS
###以下を追加
=========ここから=========================================
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.223.2
NETMASK=255.255.255.0
NETWORK=192.168.223.0
=========ここまで=========================================

ifup eth1
###error の際はifdown eth1をしてから再Try
 
ifconfig eth1
/sbin/ifconfig
 
### ホストOSのteraterm等から疎通確認

Ubuntuの場合

/sbin/ifconfig
###この時点でメモしたIPアドレスがあれば以下の作業は不要
 
ifconfig -a
vi /etc/network/interfaces.d/eth1.cfg
============ここから==========================================
auto eth1
iface eth1 inet static
  address 192.168.223.2
  netmask 255.255.255.0
  #gateway 10.0.0.1 #no need?
  #dns-nameservers 10.0.0.10 10.0.0.11 #no need?
  #dns-search upken.jp xgj.jp #no need?
============ここまで==========================================
 
ifdown -a
ifup -a
 
ip a
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:f5:93:57 brd ff:ff:ff:ff:ff:ff
    inet 192.168.223.2/24 brd 192.168.223.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fef5:9357/64 scope link
       valid_lft forever preferred_lft forever
 
### teraterm等から疎通確認