web-dev-qa-db-ja.com

VirtualBoxポート転送がNATアダプターで機能しない

VirtualBoxで単純なポート転送を試みていますが、VirtualBox.exeはホストでポートをリッスンしているようですが、実際にはゲストへの接続を転送していません。複数のポートで試してみましたが、VirtualBoxを数回再起動しました。一方、ゲストからホストへの接続は問題ありません。情報は次のとおりです。

Host: Win7 x64
Guest: Win7 x64
VirtualBox version: VirtualBox 4.2.10
Firewalls: All firewalls on Host and guest disabled.

Virtual Box > Machine Settings > Network
 Adapter 1: 
  Attached to: NAT
  Cable Connected : True
  Port Forwarding:
   Rule 1: TCP, HostIP=127.0.0.1, HostPort=8081, GuestIP=127.0.0.1, GuestPort=8081

On Host:
[VirtualBox.exe]  TCP    127.0.0.1:8081         IBM-6KT5OPCF76P:0      LISTENING

On Guest:
I never get the connection request on port 8081 or any others I've tried.

何か案は?複数の理由から、VirtualBoxのブリッジアダプターの使用を避けたいと思います。 NATポート転送はVirtualBoxで比較的簡単だったという印象を受けました。

ありがとう!

21

間違った方法でゲストIPを指定しました(ゲストに静的にIPアドレスを割り当てている場合)または空のままにしてください。ホストIPを127.0.0.1として指定していることに注意してください。これは、転送しているポートにポートからのみアクセスできることを意味します(必要でない場合は空にする必要があります)。

VBoxManage modifyvm "win" --natpf1 ",tcp,,8081,,8081"

おそらくこれはあなたがやりたかったことです。 ( 詳細はこちらをご覧ください

15
vvlevchenko

Paravirtualized Network *(virtio-net)がキーです

  1. ポート転送に使用する仮想マシンを選択します。

    • 注:vmが停止モードであることを確認してください。
  2. 「設定」を選択します

  3. 「ネットワーク」を選択します
  4. 無料のアダプタを選択します。 「アダプター2」と言いましょう
  5. 「ネットワークアダプタを有効にする」を有効にします
  6. 添付ドロップダウンで、「NAT」を選択します
  7. 「詳細」を選択します
  8. アダプタタイプ:「Paravirtualized Network(virtio-net)」を選択[これは重要です]
  9. 「ポート転送」を選択します
  10. 「ポート転送」ダイアログボックスの右側で、「+」を選択します
  11. 提供する

    • 名前:好きなもの。 sshの例、「ssh」と言う
    • プロトコル:プロトコルのタイプ[sshの場合:TCP]
    • ホストIP:接続するホストのホスト名を提供します[ここ:127.0.0.1]
    • ホストポート:そのホストのどのポートでリモートポートに接続するか[例:60022]
    • ゲストIP:空白のままにします
    • ゲストポート:上記のホストから接続するポート。 [sshの場合、デフォルト22]
29
Amit

使用しているゲストOSは明確ではありません。

私は同じ問題に直面しました。

私のホストはMAC PCで、ゲストはVirtualBox上のCentOS 7でした。
sshポート22とhttpポート80の両方でNAT VirtualBoxレベルでゲストからホストへのポート転送を有効にしました。

しかし、http接続のMAC PCホストからCentos 7ゲストのApache HTTPサーバーに接続できないことがわかりました。

それを修正するには、firewalldサービスを設定してポート80接続を許可する必要があります。

5
Andy

Macホスト、Fedoraゲストのセットアップで同様の問題に直面しました。ホストマシンからゲストマシンのポート8000​​で実行されているHTTP Webサーバーにアクセスしようとしました。ゲストマシンでfirewall-cmdを使用してポート8000​​/tcpを開くと、問題が解決しました。

Sudo firewall-cmd --zone=public --add-port=8000/tcp
2
Iqbal

私は同様の問題に直面しましたが、ポート転送を設定するときにvirtualboxにエラーを引き起こしていたproxycapと呼ばれる企業のプロキシインターセプトソフトウェアによってインストールされたネットワークスタック内の署名されていないドライバーであることが判明しました。ポート転送を設定し、署名されていないドライバーを一覧表示し、対応するアプリケーションをアンインストールする際のエラーメッセージについては、VMマシンログを確認してください。

1
alastairtree