Lubuntu15.10ホストにVirtualBox5.0.14をインストールし、ゲストOSとしてLubuntu 14.04.5LTSを使用して仮想マシンを作成しました。
ホストシステムで実行されているWebブラウザーからゲストOS内で実行されているApacheWebサーバーにアクセスできるように、VirtualBoxでホスト専用ネットワークアダプターをセットアップしたいと思います。
これまでに、ホストOSから正常にpingできるホスト専用アダプターvboxnet0
を作成しました。ただし、Webブラウザまたはその他の手段を使用してポート80にアクセスすることはできません。
問題の原因を突き止め、適切に構成するにはどうすればよいですか?
vboxnet0
設定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
@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以外の)アクセスはできません。
デフォルトの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のスクリーンショットを参照してください。
192.168.56.1
255.255.255.0
0
そして、ゲストOS(Lubuntu 14.04.5 LTS)では、eth1
設定がDHCP設定であり、アドレスが192.168.56.101
であるのは奇妙に思えます。 2番目のアダプターでのApache開発にも非常によく似たホストオンリー接続でUbuntu14.04.5を使用していますが、セットアップは次のように分類されます。
eth0
の10.0.2.15
。eth1
の192.168.56.10
。そして、/etc/network/interfaces
の私の設定は次のとおりです。
auto eth1
iface eth1 inet static
address 192.168.56.10
netmask 255.255.255.0
したがって、ホストのみの接続でそのIPアドレスを再確認し、ネットワークインターフェイスの構成も再確認してください。
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の設定を変更して、ホストマシンをゲストマシンと同じサブネットに配置してみてください。
route
を使用して、ホストマシンのルーティングテーブルを確認します。 192.168.56.0
経由で255.255.255.0
/vboxnet0
へのルートが存在し、VirtualBoxによって作成されます。
これで、ホストからhttp://192.168.56.101
を介してゲストのApacheにアクセスできるようになり、必要に応じて、ゲストから192.168.56.1
を介してホストマシンにアクセスできるようになります。