GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Busybox, netstat, kein -p

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 .


Linux
  1. So verwenden Sie BusyBox unter Linux

  2. Quellcode von Netstat?

  3. wie man netstat auf einem bestimmten Port in Linux verwendet

  4. Probleme, busybox switch_root zum Laufen zu bringen

  5. Warum ist netstat veraltet?

Was ist BusyBox unter Linux? Wie benutzt man es?

10 grundlegende Beispiele für den Linux-Netstat-Befehl

Linux-netstat-Befehl

bash:netstat:Befehl nicht gefunden.

netstat-Befehlsbeispiele in Linux

unterschied zwischen netstat und ss unter linux?