Windows 10 の Virtualbox でホストされている CentOS7 VM 上の nginx Web サーバーにアクセスする

Windows 10 の Virtualbox でホストされている CentOS7 VM 上の nginx Web サーバーにアクセスする

設定:

Virtualbox 5 ベータ 4 (4.3.8 でもテスト済み) 内の Windows 10 Pro サーバー (プレビュー バージョン 10074) 上で実行されている単一の CentOS 7.1 VM。静的 HTML ファイルを提供するために nginx/1.9.0 を使用します。

VM は、Virtualbox 内の NAT 設定を使用してイントラネットに接続されています。標準の Virtualbox 設定を使用して、ポート 22、80、443 をサーバーから VM に転送しました。

問題:

VM 内では、curl を使用して任意のページを取得できます (curl localhost期待どおりの結果が返されます)。ただし、ホストの Windows サーバーまたはイントラネットの他のクライアントからページを取得しようとすると (ホスト上の IP または localhost のいずれかを使用して)、「接続できません」または「接続がリセットされました」というエラーが発生します。

VM で netstat を使用して、nginx が 0.0.0.0 と [::] の両方でポート 80 と 443 をリッスンしていることを確認しました。また、Windows サーバーで、VM が実行されていないときはポート 80 と 443 が未使用であり、VM が実行されているときはポートがリッスンされていることを確認しました。

nginx によって生成されたログを確認すると、access.log には curl リクエストのみが含まれ、error.log には関連するものは何も表示されません。

ただし、サーバー (ポート 22) 上で sshd も実行しており、イントラネット上の任意のマシンから (インターネット ルーターのポートを転送すると外部からも) 接続できるため、これはファイアウォールの問題ではないと思います。

試みられた解決策:

Windows ファイアウォールを開いてポート 80/443 への着信接続を許可することと、Virtualbox をプログラム例外に追加することの両方を試しました。また、ファイアウォールを完全に無効にすることも試しました。

ホスト サーバーでポート 1000 より大きいポートに移動しようとしましたが、ポート 22 は正常に動作しているようなので、あまり意味がありません。

残念ながら、VM 接続を NAT から他のタイプに変更することはできません。Virtualbox は、Windows 10 ではまだアダプタ ブリッジングをサポートしていないようです (複数回の再インストールと新しいベータ リリースを試しました)。

答え1

firewall-cmdVM のファイアウォールを通過する http および https トラフィックを許可するには、を使用する必要がありました。古いバージョンの CentOS では が使用されていましたiptables

関連情報