GNU/Linux >> Znalost Linux >  >> Linux

Busybox, netstat, no -p

Řešení 1:

Ekvivalentní informace můžete najít v trochu ošklivější podobě (a.k.a. hexadecimální) v /proc/net/tcp . Zde najdete inode připojení, které můžete vyhledat pod /proc/$pid/fd/ .

Například:

$ 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
...

(V normálním netstat, ale ne v busybox netstat, -e Tato možnost vám také poskytuje další informace.)

Proces, který odpovídá inodu, můžete najít pomocí následujícího příkazu:

# 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]

Pro druhý krok potřebujete přístup root.

Není tak pohodlné jako -p možnost, samozřejmě, ale funguje ve vazbě. V případě potřeby lze skriptovat.

Řešení 2:

Možná to nepomůže, pokud nemáte možnost Busybox přestavět, ale v případě, že to někomu pomůže...

Busybox má možnost konfigurace pro podporu -p přepínač Busybox netstat . Viz možnost CONFIG_FEATURE_NETSTAT_PRG , vybrané v busybox menuconfig přes Networking Utilities → netstat → Enable PID/Program name output .


Linux
  1. Linuxový příkaz netstat

  2. Zkontrolujte naslouchací porty pomocí netstat

  3. netstat:příkaz nenalezen

  1. Jak interpretovat výstup netstat -o / netstat --times

  2. převést textový soubor bitů na binární soubor

  3. alternativa k netstat -s

  1. Jak používat BusyBox na Linuxu

  2. Zdrojový kód Netstatu?

  3. Co je výchozí shell Busybox?