
Ich verstehe nicht ganz, wie sich localhost auf die private IP bezieht, die jedem Rechner zugewiesen wird.
Wenn ich einen Server auf localhost:8080 betreibe, kann ich dann etwas anderes auf 192.168.xx:8080 ausführen?
Genauer gesagt: Wenn ich einen Python-Waitress-Server auf localhost:8080 betreibe und NGINX als Reverse-Proxy verwende, kann ich NGINX dann auf Port 8080 lauschen lassen?
Antwort1
Wenn ich einen Server auf localhost:8080 betreibe, kann ich dann etwas anderes auf 192.168.xx:8080 ausführen?
Ja, es können verschiedene Listening-Sockets auf demselben Port vorhanden sein, solange sie an unterschiedliche lokale Adressen gebunden sind (d. h. die Sockets werden entsprechend der Adresse:Port-Kombinationen verfolgt).
(Vermeiden Sie jedoch das Mischen bestimmter address:port
Listener mit der „beliebigen Adresse“ 0.0.0.0:port
oder [::]:port
dem Listener. Normalerweise ist das auch erlaubt, unterliegt aber strengeren Anforderungen. Ich glaube beispielsweise, dass Linux dies nicht erlaubt, wenn die beiden Programme unterschiedliche UIDs haben.)
Ich verstehe nicht ganz, wie sich localhost auf die private IP bezieht, die jedem Rechner zugewiesen wird.
Das ist nicht der Fall. Der Name „localhost“ wird ausschließlich in die Adressen 127.0.0.1 und [::1] aufgelöst, sonst nichts. Er verwendet niemals Ihre tatsächlichen LAN-Adressen.
Antwort2
localhost
lässt sich mit übersetzen 127.0.0.1
, daher sind localhost:8080
und 127.0.0.1:8080
dasselbe.
192.168.x.x
ist eine andere IP-Adresse, daher kann der gleiche Port wiederverwendet werden. Sie können verschiedene Server weiter 127.0.0.1:8080
und weiter ausführen 192.168.0.1:8080
, und wenn Sie mehrere IP-Adressen haben, können Sie sogar weitermachen mit zB: 192.168.0.2:8080
und192.168.0.3:8080