localhost:8000ではリッスンするが、ip:8000ではリッスンしないポート


9

こんにちは、ポート8000​​でWebアプリケーションを実行しています。ホストサーバーlocalhost:8000からアクセスすると、127.0.0.1:8000も機能しますが、192.168.1.7:8000は機能しません。192.168.1.7は私のサーバーのIPです。

また、ポート80で実行されている別のWebアプリケーションに移動しようとすると、192.168.1.7で機能します

ufwファイアウォールを有効にし、ufwのデフォルトを許可に設定しました。私はubuntu server 12.04を使用しています

ip-address:8000を使用してポート8000​​でアプリにアクセスできない理由に関する提案はありますか?

前もって感謝します!


1
アプリケーションは、すべてのローカルアドレス(0.0.0.0)ではなく、ローカルホストアドレス(127.0.0.1)をリッスンしている可能性があります。しかし、これを修正するのに役立つ十分な情報がアプリに提供されていません。
James Henstridge、2012

ポート8000​​で実行している私のアプリは単なるウェブサイトです。おそらく、このnetstatコマンドのコピー/ペーストは私のネットワークの詳細明らかになります:
マリオネット

3
まあ、ランニングnetstat -tln | grep 8000は問題にいくつかの光を投げかけるかもしれません。サーバーのローカルアドレスが127.0.0.1:8000以外の場合は0.0.0.0:8000、ループバックインターフェイス経由でのみアクセスできます。
James Henstridge、2012

iptablesをチェックしてください

回答:


5

@JamesHenstridgeが指摘しているように、観察している動作は、Ubuntuが一部のIPでアプリケーションをブロックしているためではなく、アプリケーションがローカルループバックインターフェイス(127.xxx)にのみ明示的にバインドしているためです。少なくとも、そのポートをブロックするようにファイアウォールをインストールおよび設定していない場合。

アプリケーションのドキュメントを調べて、他の(またはすべての)インターフェースで待機させる設定があるかどうかを確認する必要があります。


また、ルーターのポート転送に精通していますか?インターネットからポート8000​​に接続する場合は、ポート8000​​をそのマシンのIPに転送する必要があります。
wlraider70 2013年

0

アプリケーションの1つの構成ファイルで、外部のexternalIP:yourportをリッスンするようにアプリケーションをセットアップする必要があります。これは、アプリケーションに127.0.0.1:xxxxまたはlocalhost:xxxxのいずれかをリッスンするように指示するディレクティブを見つけることができる構成ファイルがあることを意味します。これは、内部IP(例:192.168.1.40)または外部IPで変更するIPです。

localhost IPを0.0.0.0:xxxxに置き換える必要がある場合があります。これは、アプリケーションが任意のIPからの要求に応答する必要があることを意味します。

iptablesは、内部IPから外部IPへのパケットの転送にも役立ちます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.