VirtualBox Debian ゲストを処理するために nat を使用する Windows 7 ホストがあります。このクライアントは、ポートリダイレクトを介して外部からアクセスできるいくつかのWebサービスを実行しています。
URLを介してこれらのサービスへの外部アクセスを提供する必要がありますが、正しいDNS解決に頼ることができないため、ホストIPをゲスト環境に伝播する必要があります。ホストへの影響を最小限に抑えながらこれを行うにはどうすればよいですか?
いくつかの説明: 「外部」、「外部アクセス」は、ホストと同じレベルのウェブブラウザを指す。ホストアドレスにのみ依存することはできません。
千の言葉よりも一枚の写真が重要です。
+--------------+ External
| Windows Host | network +---------------------+
| +----+ | | Web client |
| | | NAT | +----------------+ |
| | ------------------------> Page generated | |
| | | | | |by VM with URLs | |
| | VM | | | |to host | |
| | | | | +--------|-------+ |
| | | FWD | | |
| | <--------------------------------+ |
| | | | +---------------------+
| +----+ |
+--------------+
答え1
これを達成する1つの方法は、このようなサイトの技術を利用することです。Whatsmyip.com。必要なのは、要求が受信されたIPアドレスをクライアントに送り返すネットワーク上のWebサーバーだけです。
NATを使用しているので、サーバーはNATルーター(この場合は仮想マシンホスト)のアドレスを元のアドレスとして扱うことに注意してください。
whatsmyip.php
これを実現するには、WebサーバーのWebルートディレクトリにPHPスクリプト(つまり)を生成できます。
//whatsmyip.php
<?php
//Gets the IP address
$ip = getenv("REMOTE_ADDR") ;
Echo "$ip;
?>
たとえば、ゲストからアクセスします。http://webserver/whatsmyip.php
(源泉:Thoughtco.com )
これで、サービスでその回答を評価できます。
答え2
Guntbertの答えを考えると、これには以下が含まれます。
- 特定の回答で説明されているように、「外部」ネットワーク上のサードパーティのWebサーバーを使用してリモートアドレスレスポンダをホストします。
- VMの初期化段階(および/またはネットワークコンテキストに基づいて定期的に)中にWindowsホストの外部アドレスを参照します。
- 検索されたアドレスを使用してページを構築するときにURLを偽造してください。