ホストからFedoraゲストVirtualBoxで実行されているApacheサーバーにアクセスする

ホストからFedoraゲストVirtualBoxで実行されているApacheサーバーにアクセスする

ホストから Apache サーバーにアクセスする際に問題が発生します。

Windows 7 に Fedora 15 VM VirtualBox をインストールしました。この VM 内では Apache サーバーが実行されており、ゲスト内で正常に動作しています。

これを機能させるために他に何ができるかわかりません。

これが私の設定です。ホスト OS IP:

   IPv4 Address. . . . . . . . . . . : 192.168.0.10
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 192.168.0.2

VM には 2 つのネットワーク アダプターがインストールされています。

  1. VM マシンがインターネットにアクセスできるように NAT が機能します。
  2. ホスト専用アダプタ。

ホストオンリーネットワークの詳細 ホストオンリー DHCP サーバー

ゲスト上の構成は次のとおりです。

[root@localhost network-scripts]# ifconfig
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1394 (1.3 KiB)  TX bytes:1394 (1.3 KiB)

p2p1      Link encap:Ethernet  HWaddr 08:00:27:DD:DD:EA  
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fedd:ddea/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1289 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1207 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:936406 (914.4 KiB)  TX bytes:137003 (133.7 KiB)

p7p1      Link encap:Ethernet  HWaddr 08:00:27:44:A3:DB  
          inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe44:a3db/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:313 errors:0 dropped:0 overruns:0 frame:0
          TX packets:386 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:30505 (29.7 KiB)  TX bytes:44783 (43.7 KiB)

ping 192.168.56.101ホストから実行すると適切な応答が得られますが、Web サービスへのアクセスの試行はすべて失敗します。タイムアウト エラーが発生します。

答え1

通常、仮想化ゲストへの ICMP トラフィック (例: ping) が許可されているが、TCP トラフィック (例: HTTP 要求) がブロックされている場合、問題はゲスト OS で実行されているソフトウェア ファイアウォールにあります。

注記:この説明のコマンド構文は Fedora Core に固有のものですが、一般的な手順は抽象化して他の Linux ディストリビューションでも使用できます。

Fedora Core のデフォルト インストールでは、IPTables がすぐに有効になります。IPTables サービスのステータスをチェックして、それが「アクティブ」状態であるかどうかを確認します。

[root@gauss ~]# /bin/systemctl status iptables.service

さらに、現在アクティブな IPTables ルールを確認するには、IPTables 初期化スクリプトのステータスを確認します。

[root@gauss ~]# /usr/libexec/iptables.init status

INPUT チェーンに、以下に示すような IPTables のルールがある場合、そのルールはホストへの TCP/IP トラフィックと UDP トラフィックの両方をブロックする役割を担います。

REJECT     all  --  0.0.0.0/0            0.0.0.0/0            reject-with icmp-host-prohibited

HTTP トラフィックを有効にする方法には複数のオプションがあります (例: INPUT チェーンに IPTables ルールを追加して、ハイパーバイザーのホスト専用ネットワーク IP 192.168.56.1 からのポート 80 の TCP からのトラフィックを明示的に受け入れる、INPUT チェーンのユニバーサル DROP ルールを削除するなど)。

ゲストは外部に面しておらず、ホストのみのネットワーク上にあるため、最も簡単なオプションは、IPTables を停止して無効にし、再起動時に自動的に起動しないようにすることです。

[root@gauss ~]# /bin/systemctl stop  iptables.service
[root@gauss ~]# /bin/systemctl disable iptables.service

これが完了すると、Fedora Core ゲストはパブリック インターフェイスを介して HTTP 要求を処理できるようになり、ブラウザーまたはその他の HTTP クライアントで 192.168.56.101 にアクセスすると、Windows 7 ハイパーバイザーでページを表示できるようになります。

関連情報