ホストから 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 つのネットワーク アダプターがインストールされています。
- VM マシンがインターネットにアクセスできるように NAT が機能します。
- ホスト専用アダプタ。
ゲスト上の構成は次のとおりです。
[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 ハイパーバイザーでページを表示できるようになります。