32

Vagrant/VirtualBox で Ubuntu 12.04 LTS OS を実行しています。ゲスト ポート 8000 をホスト ポート 8888 に転送するように Vagrant を構成しました。

[default] Preparing network interfaces based on configuration...
[default] Forwarding ports...
[default] -- 22 => 2222 (adapter 1)
[default] -- 8000 => 8888 (adapter 1)
[default] Booting VM...
[default] Waiting for VM to boot. This can take a few minutes.
[default] VM booted and ready for use! 

仮想マシンが起動したら、ポート 8000 で Django 開発サーバーを起動します。

Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

わかりました。バックグラウンドに置くことができcurl localhost:8000、サーバーから出力を取得する こともできます

<div id="explanation">
  <p>
    You're seeing this message because you have <code>DEBUG = True</code> in your
    Django settings file and you haven't configured any URLs. Get to work!
  </p>
</div>

しかし、Firefox/Chrome/Telnet を使用してホスト マシンからサーバーにアクセスしようとすると、Connection Reset/Connection Lost/ERR_CONNECTION_RESET などのエラーが発生します。

最初は iptables のせいかもしれないと思ったのですが、Ubuntu はデフォルトですべてを許可していることがわかりました。また、ホスト マシンのファイアウォールをオフにしました。どうすればこれの底にたどり着くことができますか?

4

4 に答える 4

86

Django に 127.0.0.1:8000 (デフォルト) をリッスンさせました。

Mitchell の回答で説明されているように、Vagrant's port forwarding not workingは 0.0.0.0 でリッスンしていたはずです。これが彼の答えの引用です:

ループバックである 127.0.0.1 にバインドされているため、多くの場合、これは VM 内のサーバーが原因であることに注意してください。すべてのインターフェイスがアクセスできるように、サーバーが 0.0.0.0 にバインドされていることを確認する必要があります。

Django を使用している場合は、次のように開発サーバーを起動します。./manage.py runserver 0.0.0.0:8000

于 2013-08-10T00:35:47.150 に答える
4

1)。プロジェクトは として実行する必要がありますpython manage.py runserver 0.0.0.0:8000
これで問題が解決しない場合は、

2). Open your Vagrantfile and add
config.vm.network "forwarded_port", guest: 8000, host: 8001 this after
# config.vm.network "forwarded_port", guest: 80, host: 8080 line

This work in my case ;)

Note: This forward port info provided when run vagrant up
....
==> default: Forwarding ports...

default: 8000 => 8001 (adapter 1)
default: 22 => 2222 (adapter 1)

于 2015-07-04T09:21:07.493 に答える