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?


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


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 .


0

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

ss -ltp # for TCP
ss -lup # for UDP
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.