En el comando lsof en Ubuntu/Debian, veo muchas líneas como las siguientes:
PROGRAM 829 root 140u sock 0,8 0t0 244182 protocol: TCP
¿Cuáles son estas líneas?
¿Pueden ser resultados de intentos fallidos de conexión TCP?
Respuesta1
Esta línea se muestra cuando lsof
no se puede encontrar información adicional en el socket TCP: sabe que es un socket TCP pero no más.
Hay dos razones que se me ocurren:
Es poco probable: el socket todavía no escucha ni se conecta: es decir, se utiliza un servidor o cliente, por ejemplo
socket(AF_INET, SOCK_STREAM, 0)
para crear un socket TCP pero aún no lo he llamadolisten(2)
oconnect(2)
. Esto podría deberse a la falta de recursos o a un software defectuoso.Lo más probable hoy: el proceso visto por
lsof
las ejecuciones en otroespacio de nombres de red, normalmente en un contenedor (Docker, LXC, LXD...) y por lo tantolsof
no tiene acceso a la información relevante y no la muestra.Luego deberías ejecutar
lsof
desde el mismo espacio de nombres de red que el proceso. Ellsns
ynsenter
Los comandos pueden ser de gran ayuda para esto. Para su caso, esto probablemente funcione:nsenter -t 829 --net lsof -n -p 829
En casos normales, lsof
se mostraría IPv4
o IPv6
en lugar de sock
y tendría información adicional, como el puerto de escucha o las direcciones involucradas. Incluso se mostrará una conexión aún en curso con las direcciones involucradas y, por ejemplo SYN_SENT
.