Ich habe eine extrem alte BusyBox ( fragen Sie nicht warum) (BusyBox v1.01 (2008.12.19-21: 31 + 0000) Eingebaute Shell (Asche)) auf meiner DreamBox. Ich möchte mit netstat herausfinden, welcher Prozess welche Verbindung geöffnet hat. Aber ich habe herausgefunden, dass der netstat von BusyBox die Option -p nicht enthält . Welche anderen Möglichkeiten muss ich haben, um herauszufinden, welcher Prozess den entsprechenden Socket geöffnet hat (und verwendet)?
10
Antworten:
Sie finden die entsprechenden Informationen in etwas hässlicherer Form (auch bekannt als hexadezimal) in
/proc/net/tcp
. Dort finden Sie den Inode der Verbindung, unter dem Sie nachschlagen können/proc/$pid/fd/
.Beispielsweise:
(In normalem Netstat, aber nicht in Busybox Netstat,
-e
bietet Ihnen die Option auch diese zusätzlichen Informationen.)und
Für den zweiten Schritt benötigen Sie Root-Zugriff.
Natürlich nicht so praktisch wie die
-p
Option, funktioniert aber in einer Bindung. Könnte bei Bedarf per Skript erstellt werden.quelle
6115
und verwenden Sie es wie folgt :find /proc/ -type l | grep /fd/ | xargs ls -la 2>/dev/null | grep 6115
Dies kann nicht helfen, wenn Sie nicht die Möglichkeit haben, Busybox neu zu erstellen, aber falls es jemandem hilft ...
Busybox verfügt über eine Konfigurationsoption zur Unterstützung des
-p
Wechsels von Busyboxnetstat
. Siehe OptionCONFIG_FEATURE_NETSTAT_PRG
, die in der Busybox-Menükonfiguration über Netzwerkdienstprogramme → netstat → PID- / Programmnamenausgabe aktivieren ausgewählt wurde .quelle
Wenn Sie
ss
Ihr Gerät haben oder darauf zugreifen können, kann es Ihnen auch die PID anzeigen:quelle