VirtualBox 仮想マシンからの localhost のアドレス指定
-
12-09-2019 - |
質問
ローカルのテスト/開発サーバー (もちろん HTTP) があり、ポート 8000 をリッスンしています。
私は Linux で作業しているので、Internet Explorer 6、7、8 などでページをテストします。VirtualBox を使用して仮想マシンを実行します。また、Windows 環境の Firefox でどのように見えるかを確認する必要もあります (フォントなどは異なります)。
実機では、次の URL を使用して Web サイトを開きます。 http://localhost:8000
, 、仮想マシンからこのローカルホストにアドレス指定するにはどうすればよいですか?
現時点での回避策は、IP アドレスを使用することです。もっと良いアイデアはありますか?
解決
グーグルで調べてみるとこうなりました。 http://data.agaric.com/localhost-from-virtualbox-xp-install-ubuntu
IP を使用することを提案します。 http://10.0.2.2
, 、それは私にとってはうまくいきました。
そこで、hostsファイルを編集しました。 C:\windows\system32\drivers\etc\hosts
, 、次のエントリを追加しました。
10.0.2.2 outer
IE8 でテストしている場合は、必ず次のように入力してください http://
アドレスバーに。IPを直接入力するだけでは機能しません。
例えば:
http://10.0.2.2:3000/
他のヒント
マックOS
macOS (以前の OS X) 上で Virtual Box を実行し、Virtual Box を使用して Windows 上の IE などをテストしています。
Virtual Box の IE に移動してアクセスします。 localhost
経由 http://10.0.2.2
のために localhost
, 、 または http://10.0.2.2:3000
のために localhost:3000
.
ネットワーク設定を NAT のままにしました。私の場合、上記で提案したようにブリッジは必要ありません。設定ファイルを編集する必要はありません。
OSX でこれを有効にするには、次のことを行う必要がありました。
- 仮想マシンをシャットダウンします。
- に行く
VirtualBox Preferences -> Network -> Host-only Networks ->
「+」アイコンをクリックします。「OK」をクリックします。 - ボックスを選択し、
"Settings" icon -> Network -> Adapter 2 ->
[接続先:] ドロップダウンで、[ホストオンリー アダプター] とネットワーク (vboxnet0
) デフォルトでは以下に表示されるはずです。「OK」をクリックします。 - ボックスを再度起動すると、次の場所でローカルホストにアクセスできるようになります。
http://10.0.2.2/
次の方法で参照できます localhost
また、ホスト ファイル (C:\windows\system32\drivers\etc\hosts
) 次のようになります。
10.0.2.2 localhost
10.0.2.2 subdomain.localhost
おそらく、仮想マシンのネットワークが NAT に設定されていると思います。ネットワークをブリッジに設定すると、ホスト名でホスト マシンにアクセスできるようになります。たとえば、ホスト名が「jsmith-Precision-7510」で、 http://ローカルホスト:3000/, 、そのページは次の場所で表示できます。 http://jsmith-Precision-7510:3000/.
ホスト名を見つけるには、ターミナル/コンソールを開いてコマンドを実行します。 hostname
. 。ホスト名が次の行に出力されます。
を参照してください。 VirtualBox のドキュメント ネットワーク設定をブリッジに設定する方法については、「ブリッジ」を参照してください。
virtualbox にアクセスしてネットワーク設定を「NAT」に変更する必要がありました。その後は打てるようになりました localhost
virtualbox上のエミュレータからホストマシン上で実行されています http://10.0.2.2:3000
見つけた 10.0.2.2:<port>
ただし、無作為モードが正しく設定されている場合に限ります。VM をインストールした後、[設定] > [ネットワーク] > [アダプター 1] に移動しました。
NAT はデフォルトで設定されており、無差別モードのドロップダウンは無効になっています。NAT からブリッジ アダプターに切り替えて、無差別モード ドロップダウンを有効にし、値を「拒否」から「VM を許可」に変更しました。その後、NAT に戻しました。これにより、プロミスキャス モードが再び無効になりましたが、新しい値は保持されました。
この変更だけで、VM を起動してホスト マシンを確認できるようになりました。localhost:<port>
私のVM上で 10.0.2.2:<port>
.
アダプターが取り付けられている場合は、 NAT, 、現在では、ポート転送をローカルポートに設定する方が優れており、よりエレガントなソリューションです。
Settings
> Network
> Adapter
> Advanced
> Port forwarding
新しいルールを挿入して設定するだけです Host port
そして Guest port
に 80
(httpの場合)または 22
(ssh の場合) など。
次に、次のように入力するだけでそのマシンにアクセスできます。 http://localhost
マックOS
MacにVirtualBoxを使用してWindows環境を設定する場合は、アダプターのデフォルトのNAT設定を使用し、Windows VMでホストファイルに移動して以下を追加します。
10.0.2.2 localhost
10.0.2.2 127.0.0.1
上記の回答とは異なり、両方の行を含めることが重要です。そうしないと機能しません。
ローカル ホスト マシンの場合と同じ方法で、Windows 仮想マシン上の hosts ファイルを編集する必要があります。
C:\WINDOWS\system32\drivers\etc\hosts
そして、仮想ホストを 10.0.2.2 にリンクします。localhost のみを使用している場合は、次のように置き換えます。
127.0.0.1 ローカルホストと 10.0.2.2 ローカルホスト
例えば:
10.0.2.2 localhost
10.0.2.2 local.site1.com
10.0.2.2 local.site2.com
これにより、仮想マシンがそれらのドメイン名に対してローカル マシンを指すように指示されます。
hosts ファイルや Virtual Box の構成を変更する必要はありません。NAT の設定を維持します。Windows インスタンスに移動し、「cmd」を実行するか、cmd.exe を開きます。コマンド「ipconfig」を実行して、 デフォルトゲートウェイ IPアドレス。ブラウズ http://10.0.2.2:8080 Windows IE では、Mac Safari と同じであることがわかります。 http://ローカルホスト:8080/ または http://127.0.0.1:8080
いくつかのことを組み合わせることで、最終的に私の側でうまく機能するようになりました。macosx 上で Flask サーバーを実行します。
Windows VM でホスト ファイルを編集しました。
- メモ帳を管理者として実行する
- 開ける
C:\windows\system32\drivers\etc\hosts
- このエントリを追加します:
10.0.2.2 outer
VirtualBox で VM と Mac をシャットダウンします。
- に行く
VirtualBox > preferences > Network > Host-only Networks > +
ネットワークを追加するにはvboxnet1
- に行く
My_VM > settings > Network > Adapter 1
. - 選択する
Enable Network Adapter
そしてセットAttached to:
にBridged Adapter
. - 次に設定します
Advanced > Promiscuous Mode:
にAllow VMs
. - クリック
OK
- に行く
My_VM > settings > Network > Adapter 1
. - セット
Attached to:
戻るNAT
.
それから私はへ行きました Adapter 2
- セット
Attached to:
にHost-only Adapter
以前に追加したネットワークを選択しますvboxnet1
.
Mac 上でサーバーを起動し、 127.0.0.1:5000
これで私の VM からアクセスできるようになりました http://10.0.2.2:5000
Mac 上の IE でテストするのは何という悪夢でしょう。もっと簡単な方法はないものでしょうか?
ネットワークの下のVirtualbox設定にポート転送を追加することで解決しました。ホスト IP セット 127.0.0.1 ポート:8080ゲストIP:Web サイトの任意の IP (たとえば 10.0.2.5) ポートを指定します。8080ゲストマシンアクセスから http://10.0.2.5:8080 IEを使用する
上で述べたように、Virtual Box では、この行の hosts ファイルを追加できます
10.0.2.2 outer
ただし、VM に管理者権限がない場合は、それを保存するには、hosts ファイルをデスクトップに移動し、それを編集して 10.0....outer という行を追加し、ファイルを保存して、元の場所に移動します。
次のコマンドで親マシンにアクセスできるかどうかを確認します。ipconfig
(IPアドレスを取得します)
ping <ip>
または telnet <ip> <port>
ポートにアクセスできない場合は、ローカル ポートを許可する新しい受信ルールを親ファイアウォールに追加してみてください。
するとアクセスできました http://<ip>:<port>
バーチャルボックス内
- ネットワークをブリッジ ネットワークに設定します
- 詳細設定の無差別モードに移動します。すべて許可
ここで、注意が必要なのはローカルホストです。Node.js から実行している場合は、IP アドレスを 0.0.0.0 に設定してから、独自の IP アドレスを検索します (例: cmd:ipconfig --> 10.0.1.3)。
そのアドレスをポート番号とともに入力します。そしてそれはうまくいきます。
一般的な手順:
- 共通ネットワーク (ホストオンリーまたはブリッジ NIC を追加)
- 適切なインターフェイス (共有 NIC に接続されているインターフェイス) でリッスンするように優先サービスを構成します。
- IP:ポートを使用して対象のサービスにアクセスし、共有ネットワークに属する IP を使用します。
仮想Windows 7を備えたWindowsでは、私にとってうまくいった唯一の方法は、 NAT とポート転送 (ブリッジ接続を実行できませんでした)。ここでチュートリアルを見つけました。 http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/ (「」の部分までスクロールしてください)仮想マシンへのポートの転送").
この変更により、「」で xampp Web サイトにアクセスできるようになりました。http://192.168.xx.x:8888/mywebsite「仮想マシン上の Internet Explorer 10 で。
XAMPP コントロール パネル > Netstat (「システム」) で IP を見つけました。
Virtual Box を使用する場合、1 行のコードを使用して Mac OSX (および Linux だと思います) を仮想 Windows マシンに接続できます --> ターミナルでこれを実行する前にボックスを停止することをお勧めします。
VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on
これは私が実行している Dinghy のドキュメントからのものであることに注意してください。ただし、これは仮想ボックス コマンドであるため、仮想ボックスである限り、実際には何を使用するかは関係ありません。
奇妙な IP ではなく、ローカルホストで実行する必要があります。
1) Mac ターミナルから次のようにします。 iconfig -a
ローカル IP アドレスを見つけるには。おそらく最後です。
en7: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
options=10b<RXCSUM,TXCSUM,VLAN_HWTAGGING,AV>
ether 38:c9:86:32:0e:69
inet6 fe80::ea:393e:a54f:635%en7 prefixlen 64 secured scopeid 0xe
inet 10.1.5.60 netmask 0xfffffe00 broadcast 10.1.5.255
nd6 options=201<PERFORMNUD,DAD>
media: autoselect (1000baseT <full-duplex,flow-control>)
status: active
例えば10.1.5.60
2) Windows イメージを起動します。スタート > 入力 cmd
端末を手に入れるために
3) notepad c:\windows\system32\drivers\etc\hosts
4) 次の行を追加します10.1.5.60 localhost
5) IE を開くと、次の URL が Mac 上で実行されているサーバーにアクセスするはずです。 http://localhost:3000/
Apache を実行しているマシンの IP を取得します (inet addr:で ifconfig
) を仮想ボックス ブラウザのアドレス バーに入力します。
実際、user477494 の答えは原則として正しいです。
同じロジックを他の環境(OS X ホスト - 仮想 Windows XP)にも適用しましたが、それでうまくいきました。ホストを再起動する必要がありました ランプ IP アドレスと Apache ポートを取得するためにスタックを使用して解決しましたが、それがわかった後は笑ってしまいました。