web-dev-qa-db-ja.com

仮想Windowsマシンを使用してローカルWebサイトを閲覧する:それは可能ですか?

Web開発プロセスでは、アプリケーションとWebサイトのレイアウトを複数のブラウザーでテストする必要があることがよくあります。これらのブラウザをすべてスタンドアロンで実行することはほぼ不可能であり、 IETester などのアプリケーションは問題なく動作せず、Windows 7で実行できないため、これらのブラウザで仮想マシンを実行できると便利です。 「ネイティブ」な体験をするために。

現在、Virtual Windows XP running IE7を使用してこれを試しています。私自身のセットアップはWindows 7 RC164ビットです。当社のWebサイトとアプリケーションのほとんどは、Windowsホストファイルのマッピングを使用してローカルで開発されています。

問題:

仮想マシン内から http://mywebsite.localhost に移動すると、仮想マシン上の実際のOSではなく、仮想マシンのホストファイルが照会されます。また、まったく同じマッピングが追加された場合でも、ブラウザは(明らかに)「仮想ローカルホスト」に移動します。

  • 仮想マシンにWindows7ホストファイルを照会させる方法はありますか?
  • 仮想マシンのローカルホストを実際のWindows7ローカルホストと同じにする方法はありますか?
5
Aron Rotteveel

開始する前に以下の手順全体を読み、それらに従うことを元に戻すために何をする必要があるかを確認してください。これはメモリからのものです。今はMacを使用しています。

VMwareを使用し、VMネットワークモードでNAT [仮想マシンの通常の略語]]を使用していることを前提としています。

通常のVMwareの用語に従って、VMwareを実行するオペレーティングシステムのインストールにはホストシステムという用語を使用し、VMware内で実行するシステムにはゲストシステムという用語を使用します。

パートI:VMwareがシミュレートするNATネットワーク(通常はネットワーク8))でホストシステムのIPアドレスを見つけます。

ホストマシンでcmd.exeを開き、次のように入力します。

ipconfig/all

VMware NATインターフェイスのIPアドレスを書き留めます

パートII:hostsファイルを統一する

ホストシステムのhostsファイル%systemroot%\ System32\Drivers\Etc\hostsを変更して、ローカルホストに127.0.0.1ではなくVMware NATアダプターのIPアドレスを使用するようにします。 Webサイト。

WebサーバーがそのIPアドレスでリッスンしていることを確認してください。

パートIII:hostsファイルを利用可能にする

ホストシステムのコマンドラインで:

rmtshare \\name-of-Host-system\hostspath=%systemroot%\System32\Drivers\Etc /grant Everyone:r

そのパスに機密情報がないことを確認してください。

パートIV:hostsファイルのフェッチ

ゲストシステム上に、次の内容のバッチファイルc:\ hostsfile\vm_hosts_copy.batを作成します。

copy \\name-of-Host-system\hostspath\hosts %systemroot%\System32\Drivers\Etc

これをレジストリにインポートします。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
"CopyHostsFile"="c:\hostsfile\cm_hosts_copy.bat"

これがすべて完了すると、ホストシステムとすべてのゲストシステムで同じhostsファイルを操作できるようになります。ゲストシステムのhostsファイルは、再起動するたびに更新されます。ホストシステムの通常の場所、%systemroot%\ System32\Drivers\Etc\hostsで変更するだけです。

これは、すべてのWindows VMで使用でき、マルチプラットフォームテスト用のほとんどのUnixシステムでsmbclientおよび/etc/rc.localを使用した類似のスクリプトを使用できます。

4
Bernd Haug

NATの代わりにブリッジネットワークを使用するようにVMを構成します(まだ行っていない場合)。これで、VMはホストと同じネットワーク上にあります。

ゲストVMのホストファイルをワークステーションと同じになるように構成します(VMホスト)。

すなわち:
[IP of VM Host] mywebsite.localhost

1
Swoogan

これに対する正解はすでにスーパーユーザーに存在します https://superuser.com/questions/144453/virtualbox-guest-os-accessing-local-server-on-Host-os -しかし私はここに要約します:

127.0.0.1またはlocalhostが各コンピューターがそれ自体を参照するためのマジックアドレスであるように、10.0.2.2は、少なくともVirtualBox内でゲストOSがそのホストを参照するためのマジックアドレスです。世界。ホストOSでローカルに提供されるWebサイトにアクセスできるVirtualBox VMを設定するための私のプロセスは次のとおりです。

  1. VirtualBoxと拡張パックをダウンロードしてインストールします https://www.virtualbox.org/wiki/Downloads
  2. ゲストOSをダウンロードしてインストールします。おそらくMicrosoftから https://developer.Microsoft.com/en-us/Microsoft-Edge/tools/vms/ -この記事の執筆時点では、事前構成された設定を編集する必要はありません(オレンジ色の立方体.ovfファイルをダブルクリックしてVM)をインストールします)
  3. ゲストの追加をインストールします
  4. ホストファイルC:\Windows\System32\Drivers\etc\hostsの権限を変更して編集し、ホストOSに対して行ったハッキン​​グを繰り返します。たとえば、127.0.0.110.0.2.2に置き換えます。 10.0.2.2 local.dev.example.comのような行を追加できます
  5. webブラウザーを起動し、手順4でマスクしたURL(local.dev.example.com)を押します-ホストOSによって提供されるページが読み込まれます

ホストファイルをハッキングしない場合は、ゲストOSで直接10.0.2.2を使用できます。お役に立てば幸いです。

1
Jon z

横向きですが、テストに多数のVMを使用する場合は、通常のDNSサーバーに転送するテストゾーンを使用してホスト上にDNSサーバーをセットアップします。次に、ローカルDNSサーバーを使用するようにホストを変更すると、VMがそれに続くはずです。

アンダース

0
chankster

仮想マシン内からWindows7ファイルシステムにアクセスできるため、起動時にWindows7ホストファイルをVMのホストファイルにコピーするようにVM)を設定できるようです。ただし、Windows 7を試してみることができないため、これは実際的な答えではなく理論的な答えです。

0
user10501

Squidまたは別のプロキシをホストマシンに配置し、すべてのゲストにそれをプロキシとして使用させるので、localhostがホストのlocalhostになり、ホストのhostsファイルが尊重されます。

0
Jure1873

仮想マシンのローカルホストを実際のWindows7ローカルホストと同じにする方法はありますか?

上記はあなたが概念的なスピードバンプを打っているかもしれないと私に思わせます。あなたのVMはそのホストをローカルホストとは考えません(そしてそうすべきではありません)。それはネットワーク上の別の論理デバイスです。

Localhostは一種の予約用語であり、常に127.0.0.1を指します。転覆しようとすると、(棒を使うだけでなく)頭をスレッジハンマーから切り離して杖にするのとよく似ています。

DNSファイルとホストファイルはまさにこの理由で存在します。

0
Kara Marfia