Ich habe eine seltsame Situation mit einem offenen Netzwerkanschluss. Meine Hauptfrage ist, warum es kein Programm gibt, das mit einem offenen TCP-Port verbunden ist:
netstat -ln --program
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5666 0.0.0.0:* LISTEN -
In meinem speziellen Fall sollte ein nrpe-Daemon (opsview install) auf Port 5666 lauschen, aber es wird kein nrpe-Daemon ausgeführt. Wenn ich versuche, es zu starten, wird es sofort beendet.
lsof -i :5666
zeigt auch keine Ausgabe. Auf meinem System läuft kein (x) inetd.
AKTUALISIEREN
Ja, ich habe diese Befehle als root ausgeführt. Telnet würde das können, aber es gab nie eine Antwort.
Nach weiteren Untersuchungen fand ich einen Kernelfehler in dmesg
: Dies war eine EC2-Instanz (tatsächlich mehrere von ihnen), auf der ein älterer Kernel ausgeführt wurde (2.6.16 ist anscheinend instabil). Um den Absturz zu stoppen, mussten die Kernel aktualisiert werden .
Es sieht so aus, als hätte der Absturz des Kernels dazu geführt, dass der Prozess abgebrochen und der Port offen gelassen wurde.
Antworten:
Vom Kernel geöffnete Ports werden nicht mit dem Programmnamen angezeigt. Einige NFS- und OCFS-Sachen fallen mir ein. Vielleicht ist es so etwas?
Oder es könnte ein Kernel-Bug sein. Überprüfen Sie die Kernel-Protokolle auf OOPS und BUG.
quelle
Hast du netstat und lsof als root oder mit sudo ausgeführt? Beachten Sie die letzte Spalte:
Aus der netstat-Manpage:
Woher weißt du, dass da keiner läuft? Wenn der Port verwendet wird, ist es sinnvoll, dass er sofort mit dem Fehler "Socket in use" beendet wird. was passiert, wenn du an den port telnetst?
quelle
führe 'netstat --tcp --udp --listening --program' als root aus . Andernfalls wird der PID- / Programmname nicht angegeben
Verwenden Sie dann den PID-Befehl kill -9
quelle
Ich habe tatsächlich ein kleines Shell-Skript geschrieben, um die folgenden gelegentlichen Fragen zu beantworten:
Speichern unter / usr / local / bin / tracer; Ausgabe:
Sie benötigen Root-Rechte, um es zu verwenden
quelle
Ich konnte den Prozess ausfindig machen, indem ich seinen Inode über netstat abrief und diesen Inode dann mit lsof verwendete. Meine ausführlichere Antwort finden Sie unter /server//a/847910/94376 .
quelle
Manchmal können nfs-bezogene Programme nicht in der Programmliste angezeigt werden.
Außerdem öffnen LDAP-Pam-Module und libnss_ldap Verbindungen zu LDAP-Servern, aber es gibt keinen tatsächlichen Prozess, der die Verbindung offen hält. Daher zeigt netstat -tnp eine aktive Verbindung ohne einen Prozess an.
quelle