Busybox, netstat, no -p


10

Ho un ultra vecchio (non chiedo perché) BusyBox (BusyBox v1.01 (2008.12.19-21: 31 + 0000) Shell integrata (ash)) sul mio DreamBox. Vorrei scoprire quale processo ha aperto quale connessione usando netstat. Ma ho scoperto che il netstat di BusyBox non contiene l' opzione -p . Quali altre possibilità devo scoprire quale processo ha aperto (e sta usando) il socket corrispondente?


Lsof fa parte di quella versione di busybox?
Zoredache,

Sfortunatamente no.
a1337q,

Risposte:


15

Puoi trovare le informazioni equivalenti in una forma leggermente più brutta (aka esadecimale) in /proc/net/tcp. Qui puoi trovare l'inode della connessione, che puoi consultare sotto /proc/$pid/fd/.

Per esempio:

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

(Nel normale netstat, ma non in busybox netstat, l' -eopzione fornisce anche informazioni aggiuntive.)

e

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

È necessario l'accesso root per il secondo passaggio.

Non è conveniente come l' -popzione, ovviamente, ma funziona in modo vincolante. Potrebbe essere scritto, se necessario.


Sembra bello, ma il mio netstat non funziona come dovrebbe, non produce nulla di aggiuntivo con l' opzione -e . Ho anche 6 colonne con -e : Proto, Recv-Q, Send-Q, indirizzo locale, indirizzo estero, stato. C'è un modo con le porte? Riesco a vedere il porto ..
a1337q,

Hai ragione, devo aver incasinato i miei test. L'ho modificato per darti una soluzione funzionante.
Peter Eisentraut,

2
Come trovi il numero "2560" che digiti nel tuo secondo comando? Questa è la domanda
giovedì

1
@ygoe devi usarlo 6115e usarlo in questo modo:find /proc/ -type l | grep /fd/ | xargs ls -la 2>/dev/null | grep 6115
Sam

3

Questo potrebbe non aiutare, se non hai l'opportunità di ricostruire Busybox, ma nel caso in cui aiuti chiunque ...

Busybox ha un'opzione di configurazione per supportare lo -pswitch di Busyboxnetstat . Vedere l'opzione CONFIG_FEATURE_NETSTAT_PRG, selezionata nel menu di busybox tramite Utilità di rete → netstat → Abilita output nome programma / PID .


0

Se hai o riesci ad accedere ssal tuo dispositivo, può mostrarti anche il PID:

ss -ltp # for TCP
ss -lup # for UDP
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.