Das Problem: Auf Port 8080 lauscht etwas
- Wenn ich die Seite mit Safari lade, erhalte ich eine leere Seite (Seite ist weiß, aber "Entwickeln → Seitenquelle anzeigen" ist ausgegraut)
Wenn ich an Port 8080 telnete, bekomme ich eine Antwort
$ telnet 127.0.0.1 8080 Trying 127.0.0.1... Connected to localhost (127.0.0.1). Escape character is '^]'.
Aber
lsof
zeigt keinen Prozess an, der auf Port 8080 lauscht$ sudo lsof -iTCP -sTCP:LISTEN -P -n | grep 8080 $
netstat
zeigt keinen Prozess an, der Port 8080 verwendet$ netstat -n | grep 8080 $
Ich kann Port 8080 programmgesteuert öffnen (z. B. mit einem Webserver), ohne dass ein Fehler bezüglich des verwendeten Ports auftritt
nmap
listet den Port nicht als verwendet aufsudo nmap 127.0.0.1 Starting Nmap 6.01 ( http://nmap.org ) at 2012-10-03 16:16 CEST Nmap scan report for localhost (127.0.0.1) Host is up (0.000081s latency). Not shown: 990 closed ports PORT STATE SERVICE 22/tcp open ssh 631/tcp open ipp 1023/tcp open netvenuechat 3283/tcp open netassistant 3306/tcp open mysql 3689/tcp open rendezvous 5001/tcp open commplex-link 5003/tcp open filemaker 5432/tcp open postgresql 50003/tcp open unknown Nmap done: 1 IP address (1 host up) scanned in 10.92 seconds
Dasselbe gilt für Port 80, jedoch nicht für andere Ports (z. B. 81 oder 8081).
Frage Welcher Prozess antwortet auf diese Ports, wenn kein anderer Prozess sie öffnet? Welchen Zweck hat dieses Verhalten?
Bearbeiten
Wenn ich den Port mit einem Programm öffne, kann der Port normal verwendet werden. Sobald der Port geschlossen ist, tritt das seltsame Verhalten erneut auf. Beispiel:
- Der Zugriff auf Port 8080 stellt eine Verbindung zu einem unbekannten Prozess her
- Ich öffne den Hafen mit Kater
- Zugriffe auf Port 8080 gehen an Tomcat und alles ist in Ordnung
- Ich schließe den Hafen (Kater beenden)
- der Port ist als nicht belegt gelistet (so)
- Der Zugriff auf Port 8080 stellt eine Verbindung zu einem unbekannten Prozess her
Die Firewall-Regeln zeigen nur, dass der Port nicht blockiert ist
$ sudo ipfw show 00001 926004 100891783 allow ip from me to any dst-port 80,8080,3128,5001,5003,443 65535 125057043 94341114828 allow ip from any to any
Bearbeiten 2
- Das Empfangsprogramm ist kein HTTP-Server (dh es reagiert nicht auf eine
GET index.html HTTP/1.0
Anfrage)
Antworten:
Dieses Problem ist mir auf meinem Macbook aufgefallen. Ich habe versucht, Port 8080 für einige Tests zu verwenden, und die Fehlermeldung erhalten, dass bereits ein anderer Prozess darauf wartet. Mein Aufruf von hat
nmap
unterschiedliche Ergebnisse zurückgegeben, je nachdem, ob ich verwendet habesudo
oder nicht. Das ergab für mich keinen Sinn.Ich war wirklich besorgt, als ich nicht herausfinden konnte, welche Prozesse über diese Ports empfangsbereit waren
sudo lsof -P -n -iTCP | grep LIST
. Dies ließ mich glauben, dass sich absichtlich bösartige Software versteckte.Am Ende entfernte ich Dateien,
/Library/LaunchDaemons/
bis ich sie auf den Täter eingegrenzt hatte. Die für alle diese geöffneten Ports verantwortliche Anwendung war der Cisco AnyConnect Secure Mobile Client. Leider müssen alle diese Ports geöffnet sein, damit dieser Cisco VPN-Client funktioniert. Anscheinend ist es auch für das Hinzufügen der Firewall-Regel verantwortlich, mit der Sie berichtet habenipfw show
.Es verwirrt mich immer noch, warum nicht angezeigt wird, welcher Prozess bei der Verwendung für die offenen Ports verantwortlich ist
lsof
. Keine Anwendung sollte in der Lage sein, eine Auflistung mit dieser Methode zu vermeiden. Möglicherweise wird der Grund für die Nichtauflistung des Prozesses in einer anderen Stapelwechselfrage beantwortet.quelle
sudo lsof -i -P | grep 8080
wie Sie auf eine ip zeigte ich nicht kannte, undifconfig | grep that
zeigte , dass es Schnittstelle en4 war. Diese Schnittstelle hatte Cisco VPN eingerichtet, und sie war vorhanden, obwohl Cisco VPN bereits deinstalliert wurde.Ich bin heute Morgen auf dieses Problem gestoßen, habe mich auf Twitter beschwert und erfahren, dass das Problem in den letzten Versionen von Any Connect behoben wurde . Ich habe ein Upgrade auf die neue Version durchgeführt und habe keinen Rätselprozess mehr, der an Port 8080 gebunden ist.
quelle
In meinem Fall habe ich das von lsof.
Nachdem ich mich in LaunchDaemon eingegraben hatte, fand ich diese Dateien und löschte sie.
Dann ist der Hafen frei geworden.
Ich denke, dieser Prozess ist mit Garn verbunden, aber er wurde nicht automatisch gelöst, selbst wenn ich Garn entfernt habe.
quelle