外部クライアントからVirtualboxゲストへのhttpリクエストをルーティングできません

外部クライアントからVirtualboxゲストへのhttpリクエストをルーティングできません

Ubuntu 14.04 を実行する Virtualbox ゲストと node.js Web サーバーがあります。Virtualbox ホストは Windows 8.1 クライアントです。ノード サーバーをセットアップした後、外部からのアクセスを提供するのが困難になっています。

ノード サーバーはポート 5005 で実行されているため、通常は、ファイアウォールからポート転送ルールを作成して、5005 のすべてのリクエストを同じポートのゲスト IP (192.168.2.13) にルーティングするだけです。これを行うと、外部の場所から行ったリクエストがファイアウォールに到達して許可されますが、外部クライアントは応答を受信しません。ネットワーク内からプライベート IP にアクセスすると、正しく期待どおりに応答します (つまり、サーバーは確実に稼働しています)。

同じプロセスを試して、ホスト マシン (ゲスト VM ではなく) でサーバーを実行すると、動作します。これは、ファイアウォールの構成に問題がないことを示しています。ファイアウォールからゲスト IP に ping を実行できるので、接続は正常のようです。

つまり、VM のネットワーク設定で問題が発生しているようですが、それは何でしょうか? VB ゲストは、VirtualBox のブリッジ ネットワーク モデルを使用して、静的 IP で構成されています。

IpTables も UFW もゲスト上の何かをブロックするように構成されていません (私が知っている限り)

何を見逃したのでしょうか?

答え1

ゲストのデフォルトゲートウェイが正しく設定されていなかったことが判明しました。これを確認するには、次のコマンドを実行しました。

route -N

ゲスト上で、デフォルトルートが設定されていないことが示されました。これを修正するには、

route del default
route add default gw 192.168.2.100 eth1

ゲストはインターネットからの NAT トラフィックと適切に通信できるようになります。

関連情報