Busybox, netstat, no -p

10

Tengo un BusyBox ultra antiguo (no pregunte por qué) (BusyBox v1.01 (2008.12.19-21: 31 + 0000) Shell incorporado (ceniza)) en mi DreamBox. Me gustaría saber qué proceso abrió qué conexión usando netstat. Pero descubrí que netstat de BusyBox no contiene la opción -p . ¿Qué otras posibilidades tengo para averiguar qué proceso ha abierto (y está usando) el socket correspondiente?

a1337q
fuente
¿Es lsof parte de esa versión de busybox?
Zoredache
Lamentablemente no.
a1337q

Respuestas:

15

Puede encontrar la información equivalente en forma ligeramente más fea (también conocida como hexadecimal) en /proc/net/tcp. Allí, puede encontrar el inodo de la conexión, que puede buscar debajo /proc/$pid/fd/.

Por ejemplo:

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

(En netstat normal, pero no en busybox netstat, la -eopción también le brinda esa información adicional).

y

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

Necesita acceso de root para el segundo paso.

No es tan conveniente como la -popción, obviamente, pero funciona en un enlace. Podría ser un guión, si es necesario.

Peter Eisentraut
fuente
Suena genial, pero mi netstat no funciona como debería, no genera nada adicional con la opción -e . También tengo 6 columnas con -e : Proto, Recv-Q, Send-Q, Dirección local, Dirección extranjera, Estado. ¿Hay alguna manera con los puertos? Puedo ver el puerto ..
a1337q
Tienes razón, debo haber estropeado mis pruebas. Lo edité para darle una solución de trabajo.
Peter Eisentraut
1
¿Cómo encuentra el número "2560" que escribe en su segundo comando? Esa es la pregunta.
ygoe
@ygoe tienes que usarlo 6115y usarlo así:find /proc/ -type l | grep /fd/ | xargs ls -la 2>/dev/null | grep 6115
Sam
3

Esto puede no ayudar, si no tiene la oportunidad de reconstruir Busybox, pero en caso de que ayude a alguien ...

Busybox tiene una opción de configuración para admitir el -pcambio de Busyboxnetstat . Consulte la opción CONFIG_FEATURE_NETSTAT_PRG, seleccionada en la configuración del menú busybox a través de Networking Utilities → netstat → Activar salida PID / Nombre del programa .

Craig McQueen
fuente
0

Si tiene o puede acceder ssa su dispositivo, también puede mostrarle el PID:

ss -ltp # for TCP
ss -lup # for UDP
krupan
fuente