ローカルIPアドレス192.168.1.6(ネットワークユーティリティとifconfigの両方から報告)のマシンでOS X Mountain Lionを実行しており、接続したいポート8000でローカル(Django)開発Webサーバーを実行しています同じマシンでゲストOSを実行している仮想マシンから。
ホストOS(つまり、アドレスが192.168.1.6のマシンのメタルで実行されているOS X)で、127.0.0.1:8000に移動することにより、ブラウザーを介してテストWebサーバーに接続できます。またはlocalhost:8000;ただし、マシンのローカルIPアドレスを使用する場合は除きます。これがさらに混乱する理由は次のとおりです。
次にipfwのルールを示します。
00100 allow tcp from any to any dst-port 8000
65535 allow ip from any to any
これは、ポートが実際にテストサーバーによってリッスンされていることの追加の確認です。
netstat -an | grep 8000
tcp4 0 0 127.0.0.1.8000 *.* LISTEN
ここで何が起こっているのですか?どういうわけかポート22はポート8000とは異なる方法で処理されていますが、それらの違いを探すために考えられるすべての場所で、私は見つけることができません。ローカルIPアドレスを使用してこのマシンのポート8000にアクセスできないのはなぜですか?
Django開発サーバーを起動するときに、アドレスを明示的に指定する必要があります。
python manage.py runserver 192.168.1.6:8000
または、サーバーをすべてのインターフェースで実行したい場合は、以下を使用できます。
python manage.py runserver 0.0.0.0:8000
それ以外の場合、Django開発サーバーはデフォルトでローカルインターフェースでのみ実行されます。