web-dev-qa-db-ja.com

VirtualBox NAT Ubuntu 64でのポート転送?

Ubuntu9.04デスクトップ64ビットホストOSで実行されているUbuntu9.04デスクトップ64ビットゲストOSがあります(はい、同じOS)。ゲストでWebサーバーを実行し、ホストのNATからアクセスできるようにします。

私は(私が思うに) VirtualBoxポート転送命令 に従いましたが、構成を行った後、ゲスト/ VMが起動しません。

これが私が実行した構成です:

VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol" TCP
VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort" 80
VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort" 8080

どこ <Guest Name>はゲストの名前VMイメージ。

エラーは次のようになります。

enter image description here

VMの実行中に構成を実行するか、実行していないかに関係なく、同じエラーが発生します。

ゲスト追加がインストールされます。

NATポート転送を適切に構成するにはどうすればよいですか?このエラーの原因は何ですか?

5
Greg Mattes

次のコマンドを使用して、このWMに対して行ったすべてのパラメータを取得します。

VBoxManage.exe getextradata "Name_of_VM" enumerate

VMに送信されたすべての値が表示されます。

Key: GUI/SaveMountedAtRuntime, Value: yes
Key: GUI/ShowMiniToolBar, Value: yes
Key: GUI/MiniToolBarAlignment, Value: bottom
Key: GUI/LastCloseAction, Value: save
Key: GUI/LastWindowPostion, Value: 345,133,640,522
Key: GUI/Fullscreen, Value: off
Key: GUI/Seamless, Value: off
Key: GUI/AutoresizeGuest, Value: on
Key: GUI/MiniToolBarAutoHide, Value: on
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort, Value: 22
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort, Value: 22

VBoXInternalで始まるすべてのリグをコピーして削除し、次のようにコマンドに行を貼り付けます

VBoxManage.exe setextradata "Name_of_VM" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort"

最後まで価値がない。最後に、もう一度列挙すると、VBoxInternalの行が表示されなくなります。

これで、ルールの名前を変えて、NATルールを再度作成できます。

Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/HostPort, Value: 2222
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/GuestPort, Value: 22
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guestssh/Protocol, Value: TCP
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol, Value: TCP
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort, Value: 80
Key: VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort, Value: 8080

Linuxでは、PORTS <1024をリダイレクトしないように注意する必要があります。 guestshには2222を使用し、guesthttpには8080を使用します(例)使いやすさのために、私は個人的にWINDOWSで<1014ポートを使用します。

これがお役に立てば幸いです。

(英語でごめんなさい!私はフランス人です:P)

Jacques.guensherian

5

私は同じ問題を抱えていました--- OracleはNATの設定方法を変更したと思います。今ではずっときれいになっています。これはまだあるユーザーマニュアルからコピーされています: http://www.virtualbox.org/manual/UserManual.html

VBoxManage modifyvm "VM name" --natpf1 "guestssh,tcp,127.0.0.1,2222,,22"

「これにより、ローカルホストインターフェイス(127.0.0.1)に到着するすべてのTCPトラフィックが、ポート2222を介してゲストのポート22に転送されます。」

3
the_curator

VirtualBoxでポート転送を設定したときに同じ症状が発生しました。

VirtualBoxで新しいVMを作成すると、デフォルトのネットワークアダプターはe1000、あなたが従った指示に従ってpcnetではありません。

構成設定を次のように変更した場合:

VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guesthttp/Protocol" TCP
VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guesthttp/GuestPort" 80
VBoxManage setextradata "<Guest Name>" "VBoxInternal/Devices/e1000/0/LUN#0/Config/guesthttp/HostPort" 8080

これで問題が解決するはずです。


上記の構成オプションは、最初のe1000アダプタ、したがって設定のe1000/。ポートフォワードしようとしているVM)が使用しているネットワークアダプタを再確認してください。

私のインストールでは、使用可能なネットワークアダプタは2つの「PcNet」と3つの「IntelPro1000」です。

アダプターは、次のキーによって参照されます。

  • 最初のPCNet:pcnet/0
  • 2番目のPCNet:pcnet/1
  • 最初のIntelPRO/1000:e1000/0
  • 2番目のIntelPRO/1000:e1000/1
  • 3番目のIntelPRO/1000:e1000/2

たとえば、アダプタがリストの2番目の「PRO/1000」である場合は、上記の設定をe1000/1(など)に変更する必要があります。

1
catchdave