web-dev-qa-db-ja.com

静的IPとApacheを備えたVirtualBoxホストオンリーアダプター

Lubuntu15.10ホストにVirtualBox5.0.14をインストールし、ゲストOSとしてLubuntu 14.04.5LTSを使用して仮想マシンを作成しました。

ホストシステムで実行されているWebブラウザーからゲストOS内で実行されているApacheWebサーバーにアクセスできるように、VirtualBoxでホスト専用ネットワークアダプターをセットアップしたいと思います。

これまでに、ホストOSから正常にpingできるホスト専用アダプターvboxnet0を作成しました。ただし、Webブラウザまたはその他の手段を使用してポート80にアクセスすることはできません。

問題の原因を突き止め、適切に構成するにはどうすればよいですか?

VMネットワーク設定

enter image description here

VirtualBox vboxnet0設定

enter image description here

enter image description here

ゲスト内のテスト結果

VMを起動してApacheを起動した後(Sudo service Apache2 startを使用)、ゲストOS内でFirefoxを使用してhttp://localhost/のテストページに問題なくアクセスできます。

対応するApacheVirtualHostは<VirtualHost *:80>/etc/Apache2/sites-enabled/000-default.confとして定義されているため、どのホストからもアクセスできない理由がわかりません。

また、sshdとMySQLサーバーがゲストで実行されています。 localhostにsshすると、nmapは関連するすべてのポートが開いていることを示します(22、80、3306)。

ホストでのテスト結果

ホストOSでは、vboxnet0は次のように表示され、ping可能です。

% ifconfig vboxnet0
vboxnet0  Link encap:Ethernet  HWaddr 0a:00:27:00:00:00  
          inet addr:192.168.10.10  Bcast:192.168.10.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:192 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 B)  TX bytes:16176 (16.1 KB)

% ping 192.168.10.10
PING 192.168.10.10 (192.168.10.10) 56(84) bytes of data.
64 bytes from 192.168.10.10: icmp_seq=1 ttl=64 time=0.023 ms

ただし、どのポートにもアクセスできません。

% nmap 192.168.10.10 -p 22,80,3306

Starting Nmap 6.47 ( http://nmap.org ) at 2016-08-20 21:29 CEST
Nmap scan report for 192.168.10.10
Host is up (0.000027s latency).
PORT     STATE  SERVICE
22/tcp   closed ssh
80/tcp   closed http
3306/tcp closed mysql

Nmap done: 1 IP address (1 Host up) scanned in 0.07 seconds

IPアドレスを一致させようとしています

@MarkoPoloによるコメントによると:

192.168.10.10はホストOSからping可能ですが、ゲストOSからこのIPアドレスにアクセスできません。

実際、ゲストOSには、vboxnet0で指定されたDHCP範囲のIPアドレスがあります。

eth1      Link encap:Ethernet  HWaddr 08:00:27:0d:b4:6a  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe0d:b46a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:11 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1180 (1.1 KB)  TX bytes:1422 (1.4 KB)

IPアドレス192.168.56.101は、ホストOSから到達できません。つまり、pingを実行できず、Webブラウザを使用してアクセスできません。

ifconfigを使用してeth1のIPアドレスを192.168.10.10に更新してみました。その後、ゲストOSからhttp://192.168.10.10でApacheにアクセスできますが、ホストOSから(ping以外の)アクセスはできません。

1
tmh

短い答え。

デフォルトのVirtualBoxネットワーク設定について私が知っていることに基づいて、192.168.10.10を使用するホストのみの接続は間違ったサブネット上にあり、このことを機能させるために間違った領域で調整が行われています。

ホストOSでホストオンリーアダプタを設定する場合、IPv4アドレスは192.168.56.1である必要があります。次に、セットアップ後、ゲストOSでeth1インターフェイスを192.168.56.10のようなIPアドレスを使用するように設定します。

より長い答え。

VirtualBoxを使用する場合、内部疑似ソフトウェアルーターは192.168.56.x範囲のIPアドレスで動作するように設定されます。 DHCPサーバーの範囲-静的IPアドレスを設定しないでください-192.168.56.101から192.168.56.254の範囲になり、静的IPアドレスを設定するには、192.168.56.2から192.168.56.100の間にIPアドレスを設定する必要があります。したがって、ゲストOS構成の使用(Lubuntu 14.04.5 LTS)では、192.168.56.10などのIPアドレスを使用することをお勧めします。

ただし、設定した192.168.56.10値を[アダプター]領域に設定しないでください。代わりに、アダプターの設定を次のように調整してください。以下のMacOSXのスクリーンショットを参照してください。

  • IPv4アドレス:192.168.56.1
  • IPv4ネットワークマスク:255.255.255.0
  • IPv6アドレス:[空白のままにする]
  • IPv6ネットワークマスクの長さ:0

Screenshot of the network settings for a Host only interface in the Mac OS X version of VirtualBox.

そして、ゲストOS(Lubuntu 14.04.5 LTS)では、eth1設定がDHCP設定であり、アドレスが192.168.56.101であるのは奇妙に思えます。 2番目のアダプターでのApache開発にも非常によく似たホストオンリー接続でUbuntu14.04.5を使用していますが、セットアップは次のように分類されます。

  • IPアドレスがeth010.0.2.15
  • IPアドレスがeth1192.168.56.10

そして、/etc/network/interfacesの私の設定は次のとおりです。

auto eth1
iface eth1 inet static
      address 192.168.56.10
      netmask 255.255.255.0

したがって、ホストのみの接続でそのIPアドレスを再確認し、ネットワークインターフェイスの構成も再確認してください。

4
JakeGould

VirtualBoxを使用したホストオンリーネットワーキングの目的

あなたの例では、1台のゲストマシンともちろんホストマシンのみで構成されるVirtualBoxでホストオンリーネットワークをセットアップしようとしています。

ただし、ホストオンリーネットワークは、複数のゲストマシンに対応できるように設計されていることに注意してください。 Host-only-network内のすべてのゲストマシンは、他のおよびホストマシンと通信できます。しかし、外の世界ではではありません:

Outside world <--> NIC <--> Host <--> vboxnet0 <--> virtual NIC <--> Guest OS
                   ---                --------      -----------
                                                   (virtual NIC <--> Guest OS #2)
                                                    ...
                                                   (virtual NIC <--> Guest OS #n)

ホストとゲストのIPアドレスを区別する

192.168.10.10は、ホストマシンではvboxnet0として表示されるため、ゲストOSのIPアドレスになると想定しています。

この仮定は正しくありません。実際、192.168.10.10ホストマシンのIPアドレスです。 ホスト専用ネットワーク内に複数のゲストマシンがあるとすると、それらすべてがそのIPアドレスを使用してホストOSにアクセスできます。

vboxnet0は、ホストとゲストの間のゲートウェイとして機能します。これは簡単に確認できます。ホストマシンで任意のポートを開くと(たとえば、ncを使用)、192.168.10.10のゲストOSからそのポートにアクセスできるはずです。

ゲストの実際のIPアドレスは、上記のように、VirtualBoxの192.168.56.101設定のDHCP構成から取得されたvboxnet0です。これが期待されることです。ホストから192.168.56.101上のゲストOSにアクセスできるはずです。

(ここで複数のゲストマシンが機能することに注意してください。さらに多くのゲストマシンをvboxnet0に割り当てると、指定されたDHCP範囲からIPアドレスも取得されます。静的IPアドレスを割り当てることもできます。ただし、ホストのIPアドレス、つまりvboxnet0のアドレスと同じサブネット内にある必要があることに注意してください。)

トラブルの考えられる原因と解決策

ゲストマシンは192.168.56.101として到達可能である必要がありますが、これは機能しないと説明しています。 VirtualBoxの構成は良さそうです。ルーティング/サブネットの問題に直面している可能性が高くなります(ホストマシン上の他のネットワークインターフェイスに関係している可能性があります)。

次のようにVirtualBoxの設定を変更して、ホストマシンをゲストマシンと同じサブネットに配置してみてください。

enter image description here

routeを使用して、ホストマシンのルーティングテーブルを確認します。 192.168.56.0経由で255.255.255.0/vboxnet0へのルートが存在し、VirtualBoxによって作成されます。

これで、ホストからhttp://192.168.56.101を介してゲストのApacheにアクセスできるようになり、必要に応じて、ゲストから192.168.56.1を介してホストマシンにアクセスできるようになります。

0
tmh