Port lauscht auf localhost: 8000, aber nicht auf ip: 8000

9

Hallo, ich führe eine Webanwendung auf Port 8000 aus. Wenn ich vom Hostserver localhost: 8000 darauf zugreife, reagiert sie in Ordnung. 127.0.0.1:8000 funktioniert ebenfalls, aber 192.168.1.7:8000 funktioniert nicht. 192.168.1.7 ist die IP meines Servers.

Auch wenn ich versuche, zu einer anderen Webanwendung zu wechseln, die auf Port 80 ausgeführt wird, funktioniert sie 192.168.1.7

Ich habe die UWW-Firewall aktiviert und die UWW-Standardeinstellung festgelegt. Ich benutze Ubuntu Server 12.04

Irgendwelche Vorschläge, warum ich über die IP-Adresse 8000 nicht auf Port 8000 zu meiner App gelangen kann?

Danke im Voraus!

Marionette
quelle
1
Die Anwendung hört wahrscheinlich eher auf die lokale Hostadresse (127.0.0.1) als auf alle lokalen Adressen (0.0.0.0). Sie haben in Ihrer App nicht genügend Informationen bereitgestellt, damit die Benutzer dies beheben können.
James Henstridge
Meine App auf Port 8000 ist nur eine Website. Vielleicht enthüllt dieses Netstat-Kopieren / Einfügen mehr über mein Netzwerk:
Marionette
3
Nun, Laufen netstat -tln | grep 8000könnte etwas Licht auf das Problem werfen. Wenn der lokale Adresse des Servers 127.0.0.1:8000statt 0.0.0.0:8000, dann wird es nur über die Loopback - Schnittstelle erreichbar sein.
James Henstridge
Überprüfen Sie Ihre iptables

Antworten:

5

Wie @JamesHenstridge hervorhebt, ist das beobachtete Verhalten nicht darauf zurückzuführen, dass Ubuntu Ihre Anwendung auf einigen IP-Adressen blockiert, sondern darauf, dass Ihre Anwendung explizit nur an die lokale Loopback-Schnittstelle (127.xxx) gebunden ist. Zumindest, wenn Sie keine Firewall installiert und eingerichtet haben, um diesen Port speziell zu blockieren.

Sie müssen in der Dokumentation Ihrer Anwendung nachsehen, ob eine Einstellung vorhanden ist, mit der sie andere (oder alle) Schnittstellen abhören kann.

Sergey
quelle
Sind Sie auch mit der Portweiterleitung auf Ihrem Router vertraut? Wenn Sie über Port 8000 eine Verbindung über das Internet herstellen möchten, müssen Sie Port 8000 an die IP-Adresse dieses Computers weiterleiten.
wlraider70
0

In einer Konfigurationsdatei Ihrer Anwendung sollten Sie Ihre Anwendung so einrichten, dass sie ein externes externes IP abhört: Ihren Port. Dies bedeutet, dass es eine Konfigurationsdatei gibt, in der Sie eine Anweisung finden, die die Anwendung auffordert, entweder 127.0.0.1:xxxx oder localhost: xxxx abzuhören. Dies ist die IP, die mit einer internen IP (z. B. 192.168.1.40) oder einer externen IP geändert werden muss

Manchmal sollte die IP des lokalen Hosts durch 0.0.0.0:xxxx ersetzt werden. Dies bedeutet, dass die Anwendung auf eine Anfrage von einer beliebigen IP antworten sollte.

Iptables können auch dazu beitragen, Pakete von einer internen IP an eine externe IP weiterzuleiten.

Nicolas Guérinet
quelle