ゲストからホストへのVirtualboxの「ポート転送」[終了]


162

これが私のセットアップです:

- Host: Windows XP
- Guest: Ubuntu 10.04
- Networking: NAT

ゲストにApache Webサーバーを設定していますが、Windowsマシンでこれを実行できるようにしたいと思います。

- go to the browser, type http://localhost:8000

また、ネットワークをブリッジに変更しようとして、新しいIPを取得しました。しかし、http://:8000を実行しようとすると、接続できなかったと表示されます。


1
私も同じ問題を抱えていました。ゲストOS判明ポート80をブロックしたアクティブなファイアウォール持っていた
ニコラス・シャンクス

149
私の毎日のワークフローの一部としてVirtualBoxを使用するWeb開発者として、これがオフトピックとしてマークされていることに同意しません。再開をご検討ください。
スペアサイクル2013

1
1. VMに移動します2. ifconfig(ローカルIPを取得-10.0.2.Xである必要があります)3.ホストマシンに到達するためにssh 10.0.2.2
Mark Roberts

@deeperDATAこれはWeb開発者の仕事の範囲内にある可能性がありますが、スタックオーバーフローは仕事のすべての部分をカプセル化することを意図していません。これは、その要件が複数のスタック交換サイトにまたがっているという私たちの職業が複雑であることの証です。
Kevin Lawrence、

1
動作するまでに長い時間がかかりました。私たちの問題は、ゲストシステムでのアプリケーションのIPバインディングであり、マシン名にバインドされていました。これは、ubuntuでは127.0.1.1を意味します。バインディングを0.0.0.0に変更しました。ポート転送の設定:ホストIP = DNSホストIP、ホストポート= 8080は、eth0のユーザーレビューIP = IPゲストポート= 8080
slowy

回答:


222

ネットワーク通信ホスト->ゲスト

ゲストに接続し、IPアドレスを確認します。

ifconfig 

結果の例(IPアドレスは10.0.2.15):

eth0      Link encap:Ethernet  HWaddr 08:00:27:AE:36:99
          inet addr:10.0.2.15  Bcast:10.0.2.255  Mask:255.255.255.0

Vboxインスタンスウィンドウに移動します->メニュー->ネットワークアダプター:

  • アダプターはNATである必要があります
  • 「ポート転送」をクリックします
  • 新しいレコードを挿入(+アイコン)
    • ホストIPには127.0.0.1を入力し、ゲストIPアドレスには以前から取得しました。ステップ(私の場合は10.0.2.15)
    • あなたの場合ポートは8000です-両方に配置しますが、必要に応じてホストポートを変更できます

ホストシステムに移動し、ブラウザで試してください。

http://127.0.0.1:8000

またはネットワークIPアドレス(次のコマンドを実行して、ホストマシンで見つけます)。

ネットワーク通信ゲスト->ホスト

この場合、ポート転送は必要ありません。通信はLAN経由でホストに戻ります。

ホストマシンで、netw IPアドレスを確認します。

ipconfig

結果の例:

IP Address. . . . . . . . . . . . : 192.168.5.1

ゲストマシンでは、ホストと直接通信できます。たとえば、pingで確認します。

# ping 192.168.5.1
PING 192.168.5.1 (192.168.5.1) 56(84) bytes of data.
64 bytes from 192.168.5.1: icmp_seq=1 ttl=128 time=2.30 ms
...

11
両方のポートが8000になることはありません。ホストポートは8000または必要なものになりますが、ゲストポートは80でなければなりません
Yasin

5
この場合、VMからホストに移動するには、VMに移動してITS IPアドレス(以下の10.0.2.15)を取得する必要があります。VMからホストマシンにアクセスするためのIPは10.0.2.2(慣例により)です。
マークロバーツ

5
ゲストにNATを使用している場合...ホストで実行されているサービスが127.0.0.1のみにバインドされている場合、ゲストはホストのパブリックIPを使用してそのサービスに接続できません(サンプルサービス:privoxy)。代わりに、Markが述べたように10.0.2.2を使用する必要があります。または、デフォルトのゲートウェイとして表示される「ゲスト-run」(ルートで実行)を使用します。
desm 2014年


2
ホストまたはゲストのIPアドレスを指定する必要はなく、ボックスを空白のままにしておくことができます。localhostからのみ接続する場合は、ホストとして127.0.0.1を指定することをお勧めします。
mwfearnley 2017年

14

それは可能ではありません。localhostデフォルトは常にローカルオペレーティングシステムのループバックデバイスです。
仮想マシンは独自のオペレーティングシステムを実行しているため、外部からアクセスできない独自のループバックデバイスがあります。

ブラウザなどでアクセスしたい場合は、代わりにローカルIPを使用して接続します。

http://192.168.180.1:8000

これはもちろん単なる例ですifconfig。ゲストオペレーティングシステムのシェルでコマンドを発行することにより、実際のIPを確認できます。


私もこれを試しましたが、NATとブリッジの両方で機能しませんでした。ゲストのapacheログはエラーを出さず、apacheはゲストで稼働しています。
カルメン

正しいIPを使用していますか?これは、仮想マシンからアドレスにアクセスしてみることで確認できます。それが失敗した場合は、どちらか間違ったIPを使用しているか、あなたのapacheのは、ポート8080でリッスンするように設定されていません
クリス・

私のために働いた-ありがとう!
Matt Frear 2013

私のためにも働いた。「localhost」をホストOSのIPアドレスに置き換える前に、/ var / log / auth.logに「Server refused your key」と「Access denied」が常に表示されていましたが、/ etc / ssh / sshd_configのLogLevel DEBUG3
VR

@Chrisはmysite.localhost、IPアドレスのみを使用してホストを参照する必要があるため、ホスト上では、のような仮想ホストエントリがゲストマシンにアクセスできないことを意味しますか?
ダンジャ2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.