Lösung 1:
Sie finden die entsprechenden Informationen in etwas hässlicherer Form (alias hexadezimal) in /proc/net/tcp
. Dort finden Sie den Inode der Verbindung, den Sie unter /proc/$pid/fd/
nachschlagen können .
Zum Beispiel:
$ 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, der -e
Option gibt Ihnen auch diese zusätzlichen Informationen.)
Sie können den Prozess, der dem Inode entspricht, mit dem folgenden Befehl finden:
# for x in $(find /proc/ | grep /fd/); do ls -la $x 2>/dev/null done | grep 6115
...
lrwx------ 1 root root 64 7 jan 22.50 /proc/2560/fd/3 -> socket:[6115]
Für den zweiten Schritt benötigen Sie Root-Zugriff.
Nicht so praktisch wie -p
Option, offensichtlich, aber funktioniert in einer Bindung. Könnte bei Bedarf geskriptet werden.
Lösung 2:
Dies hilft vielleicht nicht, wenn Sie nicht die Möglichkeit haben, Busybox neu zu erstellen, aber falls es jemandem hilft...
Busybox hat eine Konfigurationsoption, um den -p
zu unterstützen Schalter der Busybox netstat
. Siehe Option CONFIG_FEATURE_NETSTAT_PRG
, ausgewählt in busybox menuconfig über Networking Utilities → netstat → Enable PID/Program name output .