4

かなり一般的なDjango開発サーバー構成と思われるものをセットアップしようとしていますが、ゲストOSとホストOS間のポート転送に問題があります。

私が実行している:

  • Win7ホスト
  • VirtualBox 4.1.2
  • UbuntuServer11.04ゲスト。

NATを使用してVirtualBoxに接続し、組み込みのVirtualBoxポート転送機能(ゲストの[設定]->[ネットワーク]->[ポート転送]メニューから)を使用して、.vboxXMLに次のセクションが含まれるようにします。

<NAT>
        <DNS pass-domain="true" use-proxy="false" use-host-resolver="false"/>
        <Alias logging="false" proxy-only="false" use-same-ports="false"/>
        <Forwarding name="guestdjango" proto="1" hostip="127.0.0.2" hostport="9080" guestport="8080"/>
        <Forwarding name="guesthttp" proto="1" hostip="127.0.0.2" hostport="8080" guestport="80"/>
        <Forwarding name="guestssh" proto="1" hostip="127.0.0.2" hostport="2222" guestport="22"/>
</NAT>

ホストから、ポート2222でゲストにSSH / SFTPで接続でき、nginx「Welcometonginx!」が表示されます。127.0.0.2:8080で。

これらを確認した後、Djangoをセットアップし、Djangorunseverを実行します。

python manage.py runserver 127.0.0.1:8080

ゲストからLynxを使用すると、127.0.0.1:8080に「Congratulations」Djangoページが表示されます。

ただし、ホストから127.0.0.2:9080に移動すると、「接続がリセットされました」というメッセージが表示されます。

4

1 に答える 1

20

ポートフォワーディングでどのように機能するかは完全にはわかりませんが、通常、runserverを外部ネットワークに公開するには、ローカルホスト以外のものにバインドする必要があります。つまり、runpython manage.py runserver 0.0.0.0:8080です。それが機能するかどうかを確認します。

于 2011-09-10T21:58:16.803 に答える