VirtualBox仮想マシンからのlocalhostのアドレス指定


786

ローカルのテスト/開発サーバー(もちろんHTTP)があり、ポート8000​​をリッスンしています。

私はLinuxで作業しているため、Internet Explorer 6、7、8などでページをテストします。VirtualBoxを使用して仮想マシンを実行します。また、Windows環境でのFirefoxでの外観も確認する必要があります(たとえば、フォントは異なります)。

実際のマシンで、URLを使用してWebサイトを開きますhttp://localhost:8000。仮想マシンからこのlocalhostをアドレス指定する方法を教えてください。

現在、私の回避策はIPアドレスを使用することです。より良いアイデアはありますか?


38
まだ退屈だとは思えません。私は何年もVBを使用していて、髪の毛が簡単になりましたが、それでも主なハードルであり、ネットワークオプションはまだ理解することが難しく、大多数のユーザーが望むものをそのまま使用することはできません。それを使用する。おそらく数十万人がVBを使用して、ローカルホスト上のさまざまなプラットフォームでサイト(またはアプリ)をテスト実行しています。ソフトウェアのこの特定の側面を改善することで、どれだけの時間と煩わしさを免れることができるかを考えるのは気が遠くなるような気がします。
2016年

:superuser.comに同じ質問も参照してください superuser.com/questions/310697/...
Purplejacket

回答:


939

グーグルはこれを上げました: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/

7
ipconfig(VirtualBoxのWindows)で、VirtualBoxのデフォルトルーターがそのIPアドレスであることに気付きました...
2009

48
編集内容をhostsファイルに保存できるようにするには、メモ帳を右クリックして[管理者として実行]を選択してメモ帳を起動します
Noah Sussman

25
私はVirtualBoxのネットワークスイッチに持っていたAttached toから設定をBridged AdapterするNAT私のために仕事に、このために。
Troy Harvey

1
VM構成で10.0.2.2 localhostとして設定して、絶対パスが正しく解決されるようにすることもできます
Mario Peshev

5
localhostをアドレスとして要求する、いくつかのくだらない認証のためでlocalhostはなく、アクセスする必要があり10.0.2.2ます:(
Dominic

408

マックOS

私はmacOS(以前のOS X)でVirtual Boxを実行しており、Virtual Boxを使用してWindowsでIEをテストしています。

Virtual BoxのIEにアクセスlocalhosthttp://10.0.2.2、for localhostまたはhttp://10.0.2.2:3000forを介してアクセスしますlocalhost:3000

私はネットワーク設定をNATとして維持しました。私の場合、上記のようにブリッジは必要ありません。設定ファイルを編集する必要はありません。


39
実際には、IPアドレスの前に「http://」を追加する必要がありました(IE8 / WinXPボックス)。
wrtsprt 2014年

8
しかし、10.0.2.2をlocalhost:8888にマップする方法はありますか?データベースのホームURLとしてlocalhost:8888があります。VB負荷の10.0.2.2 HTMLページに行くが、彼らはしているポインティングをlocalhostにあるため、すべてのリンクが壊れる:8888
マイケル・ジョバンニPumo

@MichaelGiovanniPumo私の知る限り、URLを特定のポートに直接マップすることはできません。ポートを明示的に指定する必要があります
Jonathan Lin

2
@JonathanLin Win7のhostsファイルで10.0.2.2をlocalhostにマッピングするだけで解決しましたが、とにかくポート:8888で機能していたので、現在は機能しています。ありがとう。
マイケルジョヴァンニプモ2014

Marvelousが機能し、macOS Sierraバージョン10.12.5およびvirtualbox v 5.1.22
Tabares

82

OSXでこれを有効にするには、以下を実行する必要がありました。

  1. 仮想マシンをシャットダウンします。
  2. VirtualBox Preferences -> Network -> Host-only Networks ->「+」アイコンをクリックして移動します。OKをクリックします。
  3. ボックスを選択して[ "Settings" icon -> Network -> Adapter 2 ->接続先]ドロップダウンをクリックし、[ホストオンリーアダプター]を選択vboxnet0すると、デフォルトでネットワーク()が下に表示されます。OKをクリックします。
  4. ボックスを再度起動すると、次の場所にあるlocalhostにアクセスできるはずです。 http://10.0.2.2/

次のようlocalhostに、ホストファイル(C:\windows\system32\drivers\etc\hosts)への参照を追加することで、他のローカルホストサイトから参照したり、アクセスしたりできます。

10.0.2.2    localhost
10.0.2.2    subdomain.localhost

4
このソリューションは、少し変更を加えるだけで機能しました。新しいホストオンリーアダプター(vboxnet0)を作成した後、アダプターを編集します。ポップアップウィンドウで、[アダプター]タブに移動してIPv4 Address(例192.168.56.1)をコピーします。次に、VMを起動したら、ブラウザーを開いて次のページに移動しますhttp://192.168.56.1:3000
Robert

XPとWindows 7の両方で動作します
Sukeerthi Adiga '28

1
残念ながら、私は解決するには、私のサブドメインを取得することはできないんだけど、私は予想通りWin10に取り組んでhostsファイルをチェックするために、ここで受け入れ答え上の手順を行ってきました:serverfault.com/questions/452268/... 任意のアイデア?
ダンジャ2016年

ホストマシンMacOs High SerraとゲストWindows 7で
作業

6
「ホストオンリーネットワーク」オプションが見つかりませんでした。
Jason Moore

56

ほとんどの場合、仮想マシンのネットワークがNATに設定されています。ネットワークをブリッジに設定すると、ホスト名でホストマシンにアクセスできるはずです。たとえば、ホスト名が「jsmith-Precision-7510」で、http:// localhost:3000 /を開く場合、http:// jsmith-Precision-7510:3000 /でそのページを表示できます。

ホスト名を確認するには、ターミナル/コンソールを開き、コマンドを実行しhostnameます。ホスト名は次の行に出力されます。

ネットワーク設定をBridgedに設定する方法については、VirtualBoxのドキュメントを参照してください。


うーん、何らかの理由で(私のマシンの)GUIにはこのオプションがありません!
09

どのバージョンを使用していますか?Macでは、基本のマニュアルドキュメントの一部が完全に異なっていることがわかりました。
2009

このソリューションが大好きです。一部の古いWindowsでは、whatever.localBonjourをインストールしないと使用できないことに注意してください。
マルク=アンドレ・Lafortune

42

virtualboxに入り、ネットワーク設定を「NAT」に変更する必要がありました。その後、私はlocalhostvirtualboxのエミュレータからホストマシンで実行を打つことができましたhttp://10.0.2.2:3000


最近(2019)MicrosoftのWindows 7 IE10ゲストVM(私のホストはMacOS Sierra)をダウンロードしましたが、ネットワークのセットアップに多くの問題がありました。だから私はようやくそれをゴミ箱に捨てて、Microsoft Windows 7 IE11ゲストVMをダウンロードした。次に、これを「NAT」ネットワーキングに設定し、http://10.0.2.2ここで@Pytthによって説明されているとおりに、ホストのローカルホストにアクセスできるようにしました。
Purplejacket

これは受け入れられる答えになるはずです。
lots0logs

35

NATに接続されているアダプターがある場合、現在では、ポート転送をローカルポートに設定する方がより優れたエレガントなソリューションです。

Settings> Network> Adapter> Advanced>Port forwarding

ただ、新しいルールセットを挿入Host portしてGuest portまで80(HTTPの場合)または22(SSH用)など。

次に、次のように入力するだけでそのマシンにアクセスできます http://localhost

NATを透過モードに切り替えることもできます。


8
@Borisここで説明するのは、ホストからゲストサーバー(ポート)に到達する方法です。しかし、問題はその逆です。
PetrBodnár2016年

BTホームハブにいるとき、これが私にとって有効な唯一の選択肢だったからです
Hashim Akhtar

33

私はそれが10.0.2.2:<port>機能することを発見しましたが、無差別モードが正しく設定されている場合のみです。VMをインストールした後、[設定]> [ネットワーク]> [アダプター1]に移動しました。

デフォルトではNATが設定されており、無差別モードドロップダウンは無効になっています。無差別モードドロップダウンを有効にするNATからブリッジアダプターに切り替え、値を「拒否」から「VMを許可する」に変更しました。次に、無差別モードを無効にするNATに切り替えましたが、新しい値は保持されました。

この変更のみの後、VMを起動し、VM localhost:<port>上のホストマシンをで確認でき ました10.0.2.2:<port>


1
私はWindows 7をホストマシンとして、Windows 10をゲストとして実行していますが、VirtualBox 4.3.30または10.16.10でこのソリューションがうまくいきました。ありがとう!
マイサー

私は仮想ボックスにWindow 10をインストールしましたが、これでうまくいきました!
captainill 2016年

これは、さらに上位のspsaucierの指示と組み合わせて私にとっても機能しました。彼の指示に従って、私は無差別モードを有効にしました-すべて有効化
DyeA 2017年

31

VMのlocalhostへのリクエストをホストのlocalhostにリダイレクトできないことは、Windows(https://tools.ietf.org/html/rfc6761#section-6.3)に組み込まれ、VMはhttps:で入手できます。 //developer.microsoft.com/en-us/microsoft-edge/tools/vms/

セキュリティ上の理由から、Microsoftはlocalhostのアドレスをループバックアドレス:: 1以外に上書きするホストファイルエントリを禁止しました。したがって、次のようなVMのホストファイルに行を追加します。

10.0.2.2 localhost

無視されます。

これをオーバーライドするには(私が知っている)2つの方法があります。

1)NETSHを使用してホストにポートプロキシする

netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=8000 connectaddress=10.0.2.2 connectport=8000

(10.0.2.2はVMのデフォルトゲートウェイであり、8000はホストで解決するポートです。)

2)IISをセットアップしてApplication Request Routingを実行し、localhost:portの要求をhostIP:portに書き換えます。

https://docs.microsoft.com/en-us/iis/extensions/configuring-application-request-routing-arr/creating-a-forward-proxy-using-application-request-routing


7
私はNETSHアプローチを使用しました。魅力のように働いた。これがIMOの最良の回答です。
梁周

1
私はNETSHも使用し、魔法のように働きました。これも私のベストアンサーです。それが機能した唯一のものでした
Van_Paitin

netsh助けになったのは、ネットで見つけたものすべてを試しましたが、成功しませんでした。これ<protocol>://localhost:<port>により、IPで直接アクセスする代わりに、にアクセスできるようになります。これは、Windows 10用の受け入れ答えなければなりません
オクタヴィアンラリ

これは、関連性があり、現在
有効な

26

マックOS

MacでVirtualboxを使用してWindows環境をセットアップする場合は、アダプターのデフォルトのNAT設定を使用し、Windows VMでhostsファイルに移動して、次の行を追加します。

10.0.2.2       localhost
10.0.2.2       127.0.0.1

上記の回答とは異なり、両方の行を含めることが重要です。そうしないと機能しません。


6
これは、Macでのie / edgeのデバッグ用のmodern.ieイメージでうまく機能します。これが、私がこの質問にたどり着いた方法です。1つの例外があります。Windows10。Windows10は、hostsファイル(madness)を介したlocalhostドメインの変更を許可していません。回避策は、IISを有効にし、それを介してリバースプロキシを設定することです。 com / en-us / microsoft-edge / platform / issues /…
MaxPRafferty 2017年

@MaxPRaffertyこれを機能させることができましたか?私はこのスレッドで他のすべてを無駄にしてきました。この回答が示唆するようにホストファイルを更新し、そのリンクの手順に従いました。手順7で10.0.2.2を宣言する場所については、少しあいまいでした。ルールのどこにありますか?私は今、執拗に私のWindows VM LocalhostのIISページに直接アクセスしています
David Weber

@DavidWeberはい私はそうでした-私は実際にそのバグを報告したので、その画像をまだ利用できます。10.0.2.2は、編集画面で「rewrite url」としてリストされている「アクションurl」に移動する必要があります。メインの書き換えページ:user-images.githubusercontent.com/1894398/…、user-images.githubusercontent.com / 1894398 / ...編集ルールページ:user-images.githubusercontent.com/1894398/...
MaxPRafferty

@MaxPRaffertyヘルプとリンクをありがとう。私はまだこれを機能させることができません。とても簡単なことで、今どこに問題があるのか​​わかりません。他の各ネットワークタイプの提案を試みても、私はこれに「t」を付けましたが、それでも何もしませんでした。この時点でPCを購入する方がよいようです。
David Weber

3
DNSを備えた新しいWindowsバージョンのリゾルバーlocalhostがあるため、これはもう機能しないと思います。127.0.0.1もこのようにリダイレクトできるとは思いません(ホスト名のみ)。
kossmoboleat

22

ローカルホストマシンの場合と同じ方法で、Windows仮想マシンのホストファイルを編集する必要があります。

C:\ WINDOWS \ system32 \ drivers \ etc \ hosts

仮想ホストを10.0.2.2にリンクします。localhostだけを使用している場合は、

127.0.0.1 localhostと10.0.2.2 localhost

例えば:

10.0.2.2 localhost
10.0.2.2 local.site1.com
10.0.2.2 local.site2.com

これは、それらのドメイン名のローカルマシンを指すように仮想マシンに指示します。


Thx、これは私の場合に役立ちました(nginxを使用してdockerでローカルWebサイトを実行)-IPディレクトリ(10.0.2.2)にアクセスすると、nginxエラーが発生します。
ggzone 2018

22

hostsファイルやVirtual Boxの設定を変更する必要はありません。NATの設定を保持します。Windowsインスタンスに移動して「cmd」を実行するか、cmd.exeを開きます。コマンド「ipconfig」を実行して、デフォルトゲートウェイ IPアドレスを取得します。ブラウズhttp://10.0.2.2:8080 WindowsのIEであなたが表示されますが、お使いのMacのSafariと同じであるにhttp:// localhost:8080 /またはhttp://127.0.0.1:8080


1
ローカル開発サーバーに、にリンクされた開発依存関係がある場合localhost。(例えばWebPACKの-devのサーバー)
KUBE

なに10.2.2.3 or .4?私も.2それらにpingを実行できます
-VM

10

いくつかのことを組み合わせることで、最終的にはうまくいきました。macosxでフラスコサーバーを実行しています。

Windows VMでhostsファイルを編集しました。

  • 管理者としてメモ帳を実行する
  • 開いた C:\windows\system32\drivers\etc\hosts
  • このエントリを追加します。 10.0.2.2 outer

VMをシャットダウンし、MacのVirtualBoxで:

  • に移動し 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でテストするのはどんな悪夢なのか。簡単な方法がないのはなぜですか?


1
私はこれを1000回賛成できればいいのに。これは、単にhostsファイルを編集してデフォルトのNAT設定を使用するなど、より単純な方法を見つけた後に機能した唯一のものでした-これらの投稿のどれも私の問題を解決しませんでした。私はからWin81上のIE11のVMとMacOSのシエラを実行しているdeveloper.microsoft.com/en-us/microsoft-edge/tools/vmsコンボが他の誰もここを助けている場合には。
Manu Kanthan

FWIW、私はこれらの設定をすべてロールバックしてから、VirtualBoxを削除して再インストールし、MicrosoftからVMを再インポートしました。私はRailsサーバーをrails s -b 127.0.0.1で起動し、すべてのVMからアクセスhttp://10.0.2.2:3000しました。上からの設定変更は、全部戻してもどういうわけか残っているのでしょうか。
Manu Kanthan

1
これは私にとっては特に同じではありませんでした。特にアダプタ2の手順では、Natアダプタの設定を使用してにする必要がvboxnet1ありましたが、最終的には機能しました。手がかりをありがとう!
jfunk

4

ネットワークのVirtualbox設定にポート転送を追加することで解決しました。ホストIPセット127.0.0.1ポート:8080ゲストIP:ウェブサイトに任意のIP(10.0.2.5など)を割り当てますポート:8080ゲストマシンからIEを使用してhttp://10.0.2.5:8080にアクセスします


3

上記のように仮想ボックスで、この行のホストファイルを追加できます

10.0.2.2   outer

ただし、保存するには、VMに管理者権限がない場合は、hostsファイルをデスクトップに移動し、編集して10.0 .... outer行を追加し、ファイルを保存して、元の場所に移動します。


2

親マシンにヒットできるかどうかを確認してください: ipconfig (IPアドレスを取得してください)

ping <ip> または telnet <ip> <port>

ポートに到達できない場合は、ローカルポートを許可する親ファイアウォールに新しい受信ルールを追加してみてください。

その後、私はアクセスすることができました http://<ip>:<port>


2

仮想ボックス内

  1. ネットワークをブリッジネットワークに設定する
  2. 詳細設定の無差別モードの設定:すべて許可に移動します

ここで注意が必要なのはローカルホストです。Node.jsから実行している場合は、IPアドレスを0.0.0.0に設定し、独自のIPアドレスを検索します(例:cmd:ipconfig-> 10.0.1.3)。

そのアドレスをポート番号とともに入力します。そしてそれはうまくいきます。


1

一般的な手順:

  • 共通ネットワーク(ホストのみまたはブリッジNICを追加)
  • 適切なインターフェース(共有NICに接続されたインターフェース)でリッスンするように優先サービスを構成する
  • IP:Portを使用してターゲットサービスにアクセスし、共有ネットワークに属するIPを使用します。

0

仮想Windows 7を搭載したWindowsで、私にとって効果的だったのは、NATとポート転送を使用することだけでした(ブリッジ接続を実行できませんでした)。ここでチュートリアルを見つけました:http : //www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/(scroll down to 「ポートを仮想マシンに転送する」の部分)。

この変更により、仮想マシンのInternet Explorer 10 で「http://192.168.xx.x:8888 / mywebsite」を使用してxampp Webサイトにアクセスできました。

XAMPPコントロールパネル> Netstat(「システム」)でIPを見つけました。


0

Virtual Boxを使用している場合は、1行のコードを使用してMac OSX(およびLinuxと思います)を仮想Windowsマシンに接続できます->これをターミナルで実行する前にボックスを停止することをお勧めします。

VBoxManage modifyvm "YOUR VM NAME" --natdnshostresolver1 on

これは私が実行しているDinghyドキュメントからのものであることに注意しますが、その仮想ボックスコマンドなので、仮想ボックスである限り、実際に何を使用してもかまいません。


0

奇妙な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イメージを起動します。start>タイプcmdして端末を取得

3) notepad c:\windows\system32\drivers\etc\hosts

4)次の行を追加します 10.1.5.60 localhost

5)IEを開くと、次のURLがMacで実行されているサーバーにヒットします。 http://localhost:3000/


実際、これはMacブラウザからのlocalhostのURLを壊すようです。
ジェイソンムーア

-2

Apacheを実行しているマシンのIP(inet addr:in ifconfig)を取得し、仮想ボックスブラウザのアドレスバーに入力します。


-3

実際、user477494の答えは原則的に正しいです。

他の環境(OS Xホスト-仮想Windows XP)にも同じロジックを適用しましたが、それでうまくいきます。IPアドレスとApacheポートを解決するためにホストのLAMPスタックを循環させる必要がありましたが、それがわかれば、笑っていました。


OSXマシンでIPを設定/検索する方法についてアドバイスはありますか?
cukabeka

?コンピュータのアドレスは、システム設定/ネットワーク-> IPアドレスで確認できます。これは基本的に、マシンが外部から応答するアドレスです。内部的にはlocalhost:80はosxのapacheサーバーに対して機能します-MAMPはデフォルトでlocalhost:8888を使用します。
オリオンラッシュ

これがどの回答を指しているのかは明らかではありませんが(リンクは賢明だったでしょう)、コメントのように見えます。
isherwood
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.