Ich möchte alle Ports auflisten, die eine PID derzeit abhört.
Wie würden Sie mir empfehlen, diese Art von Daten über einen Prozess zu erhalten?
ip
monitoring
port-forwarding
iproute
ThorSummoner
quelle
quelle
ss
gibt es keine PID-Filterung außer für Netlink-Sockets.Antworten:
Sie können
ss
aus dem iproute2-Paket (das ähnlich istnetstat
) Folgendes verwenden :oder (für ältere iproute2 Version):
Ersetzen Sie 1234 durch die PID des Programms.
quelle
-u
oder nur-t
für udb oder tcp. : +1: Und diese können alle wiess -tlnp
ss -tlnp | cat
ss -nlp | cat
, zeigen Sie mir in groben Zügen die Abhörprozesse (-l), ihre Portnummern (-n) und ihre Prozessinformationen (-p) und versuchen Sie nicht, die Ausgabe an meine Shell anzupassen| cat
( oder weniger oder was auch immer). Ich habe nur zwei Jahre gebraucht, um mich daran zu gewöhnen: DMir ist kein Weg mit
iproute2
Werkzeugen bekannt. Aber als Workaround können Sie dies ausprobieren.sollte Ihnen die Informationen geben, die Sie suchen.
Ausgabe
Ich habe diesen Befehl von hier erhalten , bin mir aber nicht sicher, welchen Link ich genau habe, da ich alle im Notizbuch vermerkt habe. Aber Sie könnten auch von dort aus nachsehen.
quelle
Sie können
netstat
dies verwenden, um die PID jedes Hörvorgangs zu ermitteln.netstat - Druckt Netzwerkverbindungen, Routingtabellen, Schnittstellenstatistiken, Maskeradeverbindungen und Multicast-Mitgliedschaften
-a, --all Zeigt sowohl empfangende als auch nicht empfangende Sockets an (für TCP bedeutet dies, dass Verbindungen hergestellt wurden). Zeigen Sie mit der Option --interfaces Schnittstellen an, die nicht markiert sind
--numeric, -n Zeigt numerische Adressen an, anstatt zu versuchen, symbolische Host-, Port- oder Benutzernamen zu ermitteln.
-p, --program Zeigt die PID und den Namen des Programms an, zu dem jeder Socket gehört.
Hier ist ein Beispiel:
quelle
netstat
iproute2 nicht mehr weiterentwickelt wird, und ich versuche, dies zu vermeiden.Die Antwort von @jofel zeigt Ihnen, welches Tool Sie verwenden müssen
ss
. Hier ist der Ersatz für die anderen Netzwerk-Tools in iproute2.Die veralteten Befehle und ihre iproute2-Entsprechungen lauten wie folgt:
Die Grundliste finden Sie auch hier auf Wikipedia: http://en.wikipedia.org/wiki/Iproute2 .
Verweise
quelle
Eine andere Methode,
lsof
wenn Sie nicht die PID kennen, sondern nur den Namen des Programms:quelle
lsof
4.89 auf Ubuntu 16.04pgrep <program name>
Wählen Sie dann die PID, die Sie für den obigen Befehl benötigen. Ersetzen$(pgrep [programName])
durch die PID #Hast du es versucht, macht das auch gleich
quelle