Ich habe einen Dienst, der einen Port abhört, wie öffne ich den Port extern?

Ich habe einen Dienst, der auf einem TCP-Port lauscht, und er wird mit diesem Befehl aufgelistet:

>netstat -atp tcp | grep -i "listen"
tcp4       0      0  192.168.2.5.8070       *.*                    LISTEN          
tcp4       0      0  *.postgresql           *.*                    LISTEN
...and more

aber es ist nicht von anderen Computern im selben Netzwerk aus zugänglich, und es wird nicht mit diesem Befehl aufgeführt:

>nmap 192.168.2.5
PORT     STATE SERVICE
5432/tcp open  postgresql

(aber zB PostgreSQL wird aufgelistet).

Ich kann lokal auf den Webserver zugreifen http://192.168.2.5:8060, aber nicht von anderen Computern im selben Netzwerk. Wie kann ich den Port extern öffnen?

Die Firewall System Preferences > Security & Privacy > Firewallist ausgeschaltet .

Welcher Dienst ist es?
Es ist ein hausgemachter Webserver. Aber ich bekomme das gleiche Problem mit jedem TCP-Server, den ich codiere.
Der übliche Test wäre, telnet 192.168.2.5 8060was zeigt das?
OS X hat mindestens drei Firewalls; hast du die anderen beiden überprüft? sudo pfctl -sawird den Status von "pf" und sudo ipfw showdie ältere "ipfw"-Firewall ausgeben. Siehe diese Frage und meine Antwort für einige Beispiele, wie die Ausgabe aussehen sollte.
@GordonDavisson möchte das eine Antwort geben?

Antworten (3)

Unter MacOS X höher als 10.8 sollten Sie eingehende Verbindungen für diese Anwendung zulassen.

Innerhalb:

System Preferences > Security & Privacy > Firewall > Firewall Options…

Klicken Sie auf +und wählen Sie die zu verwendende Anwendung aus.

Ich habe Firewall: Off This computer's firewall is currently turned off. All incoming connections to this computer are allowed.in diesen Einstellungen.
→ Jonas: Danke, dass du dieses wichtige Detail hinzugefügt hast. Für mich ist es eigentlich unvorstellbar, ein Betriebssystem ohne eine grundlegende Firewall auszuführen, die sich protokolliert und überprüft :[.

Wenn die Datei /etc/ipfilter/ipfw.confvorhanden ist, müssen Sie sie entweder entfernen oder bearbeiten, damit ipfwder Datenverkehr nicht blockiert wird. Da ipfwes veraltet ist, löschen Sie wahrscheinlich einfach die Datei und starten Sie neu.

Es stellt sich heraus, dass dieses Problem auf ein Netzwerkproblem zurückzuführen ist. Die beiden Computer konnten sich nicht erreichen. Also gab es kein Problem mit den Firewalls oder so.