Inspeccionar detalles de sockets en /proc/net
En este paso, explorará el directorio /proc/net
, que proporciona información detallada sobre la pila de red y los protocolos de red en el kernel de Linux. Aquí es donde comandos como ss
y netstat
obtienen sus datos.
El sistema de archivos /proc
es un sistema de archivos virtual que proporciona información sobre procesos y otra información del sistema. Es una forma poderosa de inspeccionar el estado interno del kernel.
Dentro de /proc/net
, encontrará archivos que contienen datos en bruto sobre las conexiones de red. Por ejemplo, tcp
, udp
, tcp6
y udp6
contienen información sobre los sockets TCP y UDP activos (IPv4 e IPv6 respectivamente).
Veamos el contenido del archivo tcp
. Escriba el siguiente comando en su terminal y presione Enter:
cat /proc/net/tcp
Verá una salida que se parece a esto:
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt uid timeout inode ref pointer drops
0: 0100007F:0019 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 12345 1 0000000000000000 0
1: 00000000:0016 00000000:0000 0A 00000000:00000000 00:00000000 00000000 0 0 67890 1 0000000000000000 0
... (more lines)
Esta salida es menos legible para humanos que ss
o netstat
porque son datos en bruto del kernel. Cada línea representa un socket TCP y contiene varios campos, incluyendo:
sl
: El índice de la lista de sockets.
local_address
: La dirección IP local y el puerto en formato hexadecimal. 0100007F
es la representación hexadecimal de 127.0.0.1
(dirección de bucle interno), y 0019
es la representación hexadecimal del puerto 25.
rem_address
: La dirección IP remota y el puerto en formato hexadecimal.
st
: El estado del socket (por ejemplo, 0A
representa LISTEN
).
tx_queue
: El tamaño de la cola de transmisión.
rx_queue
: El tamaño de la cola de recepción.
uid
: El ID de usuario que posee el socket.
inode
: El número de inodo del socket.
También puede ver los sockets UDP mirando el archivo /proc/net/udp
:
cat /proc/net/udp
Y para los sockets IPv6, puede verificar /proc/net/tcp6
y /proc/net/udp6
.
Si bien normalmente no analizará estos archivos directamente en el uso diario, comprender que aquí es donde se origina la información de red proporciona una comprensión más profunda de cómo Linux gestiona las conexiones de red. Comandos como ss
y netstat
esencialmente leen y formatean los datos de estos archivos para facilitar la comprensión.
Ahora ha explorado la información de sockets en bruto disponible en el sistema de archivos /proc/net
.
Haga clic en Continuar para completar el laboratorio.