Linux nos ofrece una serie de comandos con los cuales tendremos la oportunidad de administrar y supervisar todo lo relacionado con la red lo cual juega un papel esencial en el comportamiento general de nuestro equipo (servidor o no) ya que fallas en la red simplemente ocasionan que muchos procesos y tareas no serán ejecutadas de forma correcta, existen un conjunto de comandos dedicados a esto y Solvetic te explicará cuales son ellos.
Aprenderemos a usar estos comandos para llevar el control de la red y descartar posibles fallos.
1. Instalar netstat en Linux
En distribuciones Ubuntu o Debian ejecutaremos:
sudo apt install net-tools
En CentOS o Red Hat ejecutamos:
yum install net-tools
En Arch ejecutamos:
pacman -S net-tools
2. Ver procesos en Linux con netstat
En Linux podemos visualizar los procesos activos con el siguiente comando:
sudo netstat -tulpen
- Protocolo usado
- Paquetes enviados y recibidos
- Dirección IP local
- Dirección remota de conexión
- Estado del puerto o protocolo
- Usuario que usa el protocolo
- PID
- T: despliega las conexiones TCP
- U: genera las conexiones UDP
- L: nos permite ver únicamente los sockets de escucha
- P: despliega el programa al que pertenece la conexión
- E: da un informe con detalles extendidos
- N: hace referencia a las direcciones, los usuarios y los puertos en formato numérico
A tener en cuenta lo siguiente, en el caso de las conexiones tcp4 / udp4 (tcp y udp), podemos ver que la dirección local se establece con la sintaxis 0.0.0.0, allí el proceso puede escuchar conexiones desde cualquier máquina que este en capacidad de establecer una conexión a esta desde de la red, pero si vemos la sintaxis 127.0 .0.1 esto indica que solo se escuchan conexiones en el host local por lo tanto no admite conexiones desde equipos remotos hacia este.
3. Ver todas las conexiones de red Linux con netstat
Para listar todas las conexiones debemos usar el parámetro -a de la siguiente forma:
sudo netstat -atupen
4. Ver todas las conexiones establecidas Linux con netstat
Podemos listar únicamente las conexiones establecidas, para ello ejecutamos lo siguiente:
sudo netstat -atupen | grep ESTABLECIDO
- Protocolo usado
- Dirección IP local junto al puerto usado
- IP remota
- PID
- Programa usado
Podemos filtrar este resultado por IP, para saber dónde está la conexión, para ello ejecutamos:
whois IP| less
5. Usar el comando ss en Linux
El comando ss es una herramienta con la cual podemos volcar estadísticas de sockets y despliega información idéntica a netstat, permite ver detalles más completos de la información de estado y TCP del destino y local.
Los comandos ss puede desplegar estadísticas para Sockets de dominio PACKET, TCP, UDP, DCCP, RAW y Unix.
Para listar los puertos y protocolos básicos ejecutaremos:
sudo ss -tlunp
- NetID local
- Estado de ese NetID
- Paquetes enviados y recibidos
- Dirección local junto al puerto
- Puerto remoto
- T: despliega conexiones TCP
- L: nos muestra únicamente los sockets de escucha
- U: despliega las conexiones UDP
- N: hace referencia a las direcciones, usuarios y puertos numéricos
- P: despliega el programa al que pertenece la conexión
6. Ver todas las conexiones de red Linux con ss
Si deseamos visualizar todas las conexiones de red ejecutamos lo siguiente:
sudo ss -taunp
7. Ver todas las conexiones establecidas Linux con ss
Para este caso debemos ejecutar lo siguiente:
sudo ss -tunp
8. Usar y ver todas las conexiones de red Linux con Isof
El comando lsof (LiSt Open Files) es un comando con el cual podemos conocer qué archivos se abren mediante qué proceso en Linux, esto es clave para identificar puntualmente el estado de un proceso.
Para realizar esto usaremos el siguiente comando:
sudo lsof -nP -i
- Comando usado
- PID del comando
- Usuario asociado a ese comando
- Tipo de direccionamiento usado
- Dispositivo
- Tamaño
- Modo usado
- Nombre del proceso
- La n hace referencia a la dirección numérica y la p indica el puerto en formato numérico.
9. Ver conexiones establecidas Linux con Isof
Para esto ejecutaremos lo siguiente:
sudo lsof -nP -iTCP -sTCP:ESTABLISHED
10. Ver procesos Linux con Isof
Podemos listar todos los procesos de escucha con lsof así:
sudo lsof -nP -iTCP -sTCP:LISTEN
Como un punto extra es posible ejecutar lsof sin ningún argumento y veremos lo siguiente:
lsof
- cwd current working directory (directorio de trabajo actual)
- rtd root directory (directorio root)
- txt program text (texto del programa txt)
- mem memory-mapped file archivo de memoria mapeado
[panelplain='sección Type']En la sección Type podemos encontrar resultados como:
- DIR: Directory (Directorios)
- REG: archivos de registro
- CHR Character: archivos especiales
- FIFO First In First Out
Vemos como esta serie de utilidades enfocadas en el trabajo de red son esenciales en Linux para controla numerosos aspectos tanto de los puertos como de los protocolos teniendo en cuenta que la información desplegada es clave para un control general sobre ellos.