127.0.0.1と192.168.xxで同じポートを使用できますか?

127.0.0.1と192.168.xxで同じポートを使用できますか?

localhost が各マシンに割り当てられたプライベート IP とどのように関係するかがよくわかりません。

localhost:8080 でサーバーを実行している場合、192.168.xx:8080 で何か他のものを実行できますか?

具体的には、localhost:8080 で Python ウェイトレス サーバーを実行し、NGINX をリバース プロキシとして使用する場合、NGINX をポート 8080 でリッスンさせることができますか?

答え1

localhost:8080 でサーバーを実行している場合、192.168.xx:8080 で何か他のものを実行できますか?

はい、異なるローカル アドレスにバインドされている限り、同じポートに異なるリスニング ソケットが存在する可能性があります (つまり、ソケットはアドレス:ポートの組み合わせに従って追跡されます)。

(ただし、特定のaddress:portリスナーと「任意のアドレス」0.0.0.0:portまたは[::]:portリスナーを混在させないでください。通常、これも許可されますが、より厳しい要件があります。たとえば、2 つのプログラムの UID が異なる場合、Linux ではこれが許可されないと思います。)

localhost が各マシンに割り当てられたプライベート IP とどのように関係するかがよくわかりません。

そうではありません。「localhost」という名前は、アドレス 127.0.0.1 と [::1] のみに解決されます。それ以外のアドレスは解決されません。実際の LAN アドレスは使用されません。

答え2

localhostは と翻訳される127.0.0.1ので、localhost:8080と は127.0.0.1:8080同じものです。

192.168.x.xは異なるIPアドレスなので、同じポートを再利用できます。 で異なるサーバーを実行できます。127.0.0.1:8080さらに192.168.0.1:8080IPアドレスがある場合は、次のように続けることもできます192.168.0.2:8080192.168.0.3:8080

関連情報