VMでWebアプリを実行しています。
VM内からブラウザーを介してlocalhost:8888
でアプリを表示できます。
同じURLのホストからアプリを表示できません。それが目標です。
VBoxManage modifyvm "VM name" --natdnshostresolver1 on
を試しましたが、影響はありませんでした。
私の設定は:
(ゲスト)NATの場合はifconfig
kirkland@GC:~$ ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:d0:fc:0e
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::4c67:70b5:c37b:8fa8/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:7431 errors:0 dropped:0 overruns:0 frame:0
TX packets:3587 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7444830 (7.4 MB) TX bytes:731870 (731.8 KB)
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:65536 Metric:1
RX packets:1566 errors:0 dropped:0 overruns:0 frame:0
TX packets:1566 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:655936 (655.9 KB) TX bytes:655936 (655.9 KB)
(ゲスト)/ etc/hosts
127.0.0.1 localhost
127.0.1.1 GC
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
localhost:8888
URLは、VM内でのみ有効なURLです。そのVM外では、ip.ad.dr.ess:8888
またはhostname:8888
を使用する必要があります。後者の場合、ネットワーク上のip.ad.dr.ess
に解決されるホスト名への依存関係が導入されます。
デフォルトでは、VirtualBoxでVMを作成すると、ネットワークアダプター1はNATに設定されます。これにより、VMに10.0.2.15/24
のIPアドレスと10.0.2.2
(ホストである必要があります)のデフォルトルートが付与されます。要するに、ウィンドウは、最初に追加のフープをジャンプすることなく、提供しているアドレスNATにルーティングしません。
VMをシャットダウンし、VMネットワークアダプター1の設定を「ブリッジ」に変更すると、特別なルートを追加せずにホスト(およびローカルネットワーク上のすべてのホスト)がそのVMと通信できるようになりますまたはジャンプしてフープ。
VMを再起動します。 localhost:8888
への接続を確認してください。また、hostname:8888
(/ etc/hostsファイルのループバック/ localhostアドレスにホスト名がnot
が追加されていると想定)およびip-address:8888
への接続を確認します。編集:投稿された/ etc/hostsの詳細に基づいて、VMをare
にバインドし、したがってWebアプリケーションをループバックネットワークにバインドします。この構成は、VM外ではまったく使用できません。
Webサーバーとアプリケーションが最初に構成/インストールされたIPに依存せず、LANにDHCPサーバーがある場合、VMに接続する必要がある他の唯一の情報は、 DHCPを介して割り当てられたIPアドレス。
VMのIPアドレスを見つけるには、Ubuntuデスクトップからターミナル/コンソールウィンドウを開き(ctrl-alt-T)、hostname、ifconfig、およびgrep /etc/hosts
コマンドを使用して断片をまとめ、アドレスを見つけます。 。開いているターミナルから、hostname
と入力し、Enterキーを押します。これはおそらくgcです。同じターミナルでifconfig eth0 | awk '/Bcast/{print $2}'
と入力すると、アドレスが表示されます。/etc/hostsに、アドレスの後にホスト名が続く行が必要です。 grep [hostname] /etc/hosts
またはgrep [address] /etc/hosts
が必要な行を見つけます。現在のアドレスとそれに続くホスト名以外のものを思いついた場合は、/ etc/hostsファイルを変更して正しい情報を追加する必要があります。
これで、LAN上のホストは、ポート8888でVMのIPに接続できるはずです。これらのホスト/クライアントがhostname:8888
を介してwebappにアクセスするには、クライアントのホストファイル、ローカルDNS、またはDHCPサーバーで提供されている可能性のあるmDNSサービスも。
これを達成するには、ブリッジモードを使用する方がはるかに良いと思います。それが不可能または望ましくない場合は、ホストに静的ルートが必要になります。
静的ルートを追加するには、次の操作を行います。ホストのネットワークプロパティを確認します。 VirtualBox Host-Only Networkと呼ばれるアダプタが見つかります。そのIPアドレスを見つけます。おそらく192.168.56.1です。これがデフォルトだと思いますが、別の値にすることもできます。それをa.b.c.dと呼びます。次に、ゲストのIPアドレスを取得します。それをw.x.y.zと呼びます。 (最初の3つのオクテットは両方のアドレスで同じである必要があります。)それができたら、ホストでDOSプロンプトを開き、次のコマンドを入力します。
route add w.x.y.z mask 255.255.255.0 a.b.c.d
それが機能する場合は、-pスイッチを指定して同じコマンドを実行し、それを永続的にすることができます(それ以外の場合は、次にホストを再起動するときにこのコマンドは消えます)。