Busybox, netstat, no -p


10

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)?


Ist lsof Teil dieser Version von Busybox?
— Zoredache

Leider nicht.
— a1337q

Antworten:


15

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:

$ cat /proc/net/tcp
sl  local_address rem_address   st tx_queue rx_queue tr tm->when retrnsmt   uid  timeout inode
 0: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000     0        0 6115 1 f5adc4c0 300 0 0 2 -1
...

(In normalem Netstat, aber nicht in Busybox Netstat, -ebietet Ihnen die Option auch diese zusätzlichen Informationen.)

und

$ sudo ls -l /proc/2560/fd
...
lrwx------ 1 root root 64  7 jan 22.50 3 -> socket:[6115]

Für den zweiten Schritt benötigen Sie Root-Zugriff.

Natürlich nicht so praktisch wie die -pOption, funktioniert aber in einer Bindung. Könnte bei Bedarf per Skript erstellt werden.


Klingt cool, aber mein netstat funktioniert nicht wie es sollte, es gibt mit der Option -e nichts zusätzliches aus . Ich habe 6 Spalten auch mit -e : Proto, Recv-Q, Send-Q, lokale Adresse, ausländische Adresse, Staat. Gibt es einen Weg mit den Ports? Ich kann den Hafen sehen ..
— a1337q

Du hast recht, ich muss meine Tests durcheinander gebracht haben. Ich habe es bearbeitet, um Ihnen eine funktionierende Lösung zu geben.
— Peter Eisentraut

Wie finden Sie die Nummer "2560", die Sie in Ihrem zweiten Befehl eingeben? Das ist die Frage.
— Ygoe

@ygoe müssen Sie verwenden 6115und verwenden Sie es wie folgt :find /proc/ -type l | grep /fd/ | xargs ls -la 2>/dev/null | grep 6115
— Sam

3

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 -pWechsels von Busyboxnetstat . Siehe Option CONFIG_FEATURE_NETSTAT_PRG, die in der Busybox-Menükonfiguration über Netzwerkdienstprogramme → netstat → PID- / Programmnamenausgabe aktivieren ausgewählt wurde .


0

Wenn Sie ssIhr Gerät haben oder darauf zugreifen können, kann es Ihnen auch die PID anzeigen:

ss -ltp # for TCP
ss -lup # for UDP
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.