GNU/Linux >> Tutoriales Linux >  >> Linux

Tutorial del comando netstat de Linux para principiantes (8 ejemplos)

Si es nuevo en la línea de comandos de Linux y está interesado en aprender cosas sobre redes, hay muchas utilidades de línea de comandos que debe tener en cuenta. Una de estas herramientas es netstat. . En este artículo, discutiremos este comando usando algunos ejemplos fáciles de entender.

Pero antes de hacerlo, vale la pena mencionar que todos estos ejemplos han sido probados en una máquina con Ubuntu 16.04 LTS.

Comando Linux netstat

El comando netstat le permite imprimir conexiones de red, tablas de enrutamiento, estadísticas de interfaz, conexiones enmascaradas y membresías de multidifusión. La siguiente es su sintaxis:

netstat [OPCIONES]

Así es como lo explica la página man:

 Netstat imprime información sobre el subsistema de red de Linux. El
       tipo de información impresa se controla mediante  el  primer  argumento,  como
       sigue:

   (ninguno)
       De forma predeterminada,  netstat  muestra  una  lista de sockets abiertos. Si no
       especifica ninguna familia de direcciones, se imprimirán los sockets activos de todas las
       familias de direcciones configuradas.

   --route , -r
       Pantalla las tablas de enrutamiento del núcleo. Consulta la descripción en la ruta (8) para
       detalles. netstat -r y route -e producen el mismo resultado.

   --groups , -g
       Mostrar información de pertenencia a grupos de multidifusión para IPv4 e IPv6.

   -- interfaces, -i
       Mostrar una tabla de todas las interfaces de red.

   --masquerade , -M
       Mostrar una lista de conexiones enmascaradas.

   - -statistics , -s
       Mostrar estadísticas de resumen para cada protocolo.

Los siguientes son algunos ejemplos de preguntas y respuestas que le darán una buena idea de cómo funciona el comando netstat.

P1. ¿Cómo usar el comando netstat?

El uso básico es bastante simple:simplemente ejecute el comando netstat sin ninguna opción.

netstat

Por ejemplo, en mi caso, se produjo el siguiente resultado:

Conexiones de Internet activas (sin servidores)
Proto Recv-Q Send-Q Dirección local           Dirección extranjera         Estado      
tcp        0      0 192.168.1.7:59510       mails11.telegram.:https ESTABLECIDO
tcp 0 0 192.168.1.7:57318 13.70.5.200:https establecido
tcp 0 1 192.168.1.7:51238 52.114.32.7:https syn_sent
tcp 390 0 192.168.1.7:60392 del03s09 inf10 .1:https establecidos
tcp 0 1 192.168.1.7:51240 52.114.32.7:https syn_sent
tcp 0 0 192.168.1.7:50196 DEL03S10-IN-F10.1:HTTPS tiempo_wait
TCP 0 0 192.168.1. 1.7:54578       del03s10-in-f14.1:https TIME_WAIT  
tcp        0      0 192.168.1.7:51310       del03s10-in-f2.1e:https TIME_WAIT

Entonces, de forma predeterminada, el comando muestra una lista de todos los sockets abiertos.

P2. ¿Cómo hacer que netstat muestre direcciones numéricas?

De forma predeterminada, el comando netstat intenta determinar nombres simbólicos de host, puerto o usuario. Esto puede ralentizar la herramienta. Sin embargo, si está de acuerdo con los valores numéricos, puede hacer que la herramienta genere valores numéricos usando la opción de línea de comando -n.

netstat-n

Por ejemplo, en mi caso, se produjo el siguiente resultado:

Conexiones de Internet activas (sin servidores)
Proto Recv-Q Send-Q Dirección local           Dirección extranjera         Estado      
tcp        0      0      0 192.168.1.7:59510       149.154.171.22:443       ESTABLECIDO
ESTABLECIDO TCP 0 0 192.168.1.7:57318 13.70.5.200:443 Establecido
TCP 0 0 192.168.1.7:51682 52.114.32.7:443 Time_wait
TCP 0 0 192.168.1.7:54884 172.217.161.14:43:43:
TCP 0 0 192.168.1.7:35112 172.217.161.5:443 Establecido
TCP 0 0 192.168.2.97:45662 148.251.237.53:21 Establecido
TCP 0 0 192.168.1.7:50892 149.154. 164.224:443 establecido
TCP 0 0 192.168.1.7:58772 172.217.194.189:443 Time_wait
TCP 0 1 192.168.1.7:47728 144.76.158.93:443 Syn_sent
TCP 0 1 192. :47730       144.76.158.93:443       SYN_SENT   
tcp        0 0 192.168.1. /> TCP 0 0 192.168.1.7:44156 152.195.11.6:443 Establecido
TCP 0 0 192.168.1.7:58478 52.229.174.94:443 Establecido
TCP 52 0 127.0.1:60342 127.0.1.1.1.1:1:139 Establecido
TCP 0 0 192.168.1.7:58820 172.217.161.3:443 Establecido
TCP 0 0 192.168.1.7:45588 52.175.17.224:443 Time_wait
TCP 0 0 192.168.1.1.7:50890 149.154.164.224:443 ESTABLECIDO
tcp 0 0 192.168.1.7:58192 52.77.195.144:443 ESTABLECIDO
tcp 0 0 192.168.1.7:54224 172.217.31.2:443 ESTABLECIDO
tcp 0 0 127,0 .1.1:139           127.0.0.1:60342         ESTABLECER D
TCP 0 0 192.168.1.7:34500 192.241.190.153:443 Establecido
TCP 0 0 192.168.1.7:54888 172.217.161.14:443 Establecido

Entonces puede ver que solo se produjeron valores numéricos en la salida (en la columna Dirección extranjera) esta vez.

P3. ¿Cómo hacer que netstat muestre solo conexiones tcp?

Esto lo puede hacer usando la opción de línea de comando -t.

netstat -t

Por ejemplo, en mi caso, se produjo el siguiente resultado:

Conexiones de Internet activas (sin servidores)
Proto Recv-Q Send-Q Dirección local           Dirección extranjera         Estado      
tcp        0      0      0 192.168.1.7:44236       152.195.11.6:https       ESTABLECIDO
TCP 0 0 192.168.1.7:59510 Mails11.telegram.:https Establecido
TCP 0 0 192.168.1.7:57318 13.70.5.200:https establecido
TCP 0 0 192.168.1.7:42706 MAA05S05 en F4 .1E:https establecidos
tcp 0 0 192.168.1.7:51984 DEL03S10-IN-F2.1E:https establecidos
tcp 0 0 192.168.1.7:51786 52.114.32.7:https establecido
TCP 0 0 192.168.1. 1.7:47788       hiperservidor.semse:https SYN_SENT   
tcp        0      0 192.168.1.7:52298       xx-fbcdn-shv-01-m:https ESTABLECIDO
tcp        0 0 192.168.1. com:FTP establecido
TCP 0 0 192.168.1.7:50728 DEL03S10-IN-F10.1:HTTPS TIME_WAIT
TCP 0 0 192.168.1.7:56468 DEL03S09-IN-F3.1E:HTTPS establecido
tcp 0 0 192.168.1.7:50892 149.154.164.224:https establecido
tcp 0 0 192.168.1.7:45670 52.175.17.224:https establecido
tcp 0 0 192.168.1.7:55180 del03 f14.1:https time_wait
tcp 0 1 192.168.1.7:47790 HyperServer.semse:https syn_sent
tcp 0 0 192.168.1.7:59548 correos11.telegram.:https establecido
tcp 0 0 0 0 0 0 0 0 0 192.168.1.7:35818       32.4a.37a9.ip4.st:https ESTABLECIDO
tcp        0      0 192.168.1.7:50888       149.154.164.224:https   ESTABLECIDO D
TCP 0 0 192.168.1.7:33360 DEL03S10-IN-F13.1:HTTPS TIME_WAIT
TCP 0 0 192.168.1.7:52332 207.46.140.70:htps establecido
TCP 0 0 0 192.168. 1.7:58478 52.229.174.94:https establecido
TCP 0 0 192.168.1.7:54374 DEL03S01-IN-F2.1E:HTTPS TIME_WAIT
TCP 0 0 192.168.1.7:50216 104.24.1.68:htts TCP 52 0 Localhost:60342 ANSH:Netbios-SSN establecido
TCP 0 0 192.168.1.7:50890 149.154.164.224:https establecido
TCP 0 0 192.168.1.7:55200 del03S10 en F14 .1:https time_wait
tcp 0 0 192.168.1.7:54224 del03S01-in-f2.1e:https establecido
tcp 0 0 ANSH:netbios-ssn localhost:60342 establecido
tcp 0 0 0 0 192.168.1.7:55212       del03s10-in-f14.1:https TIME_WAIT  
tcp        0      1 192.168.1.7:47800       hyperserver.se MSE:https syn_sent
tcp 0 0 192.168.1.7:45668 52.175.17.224:https establecido
tcp 0 0 192.168.1.7:58878 DEL03S10S10 0 192.168.1.7:34500       do-11.lastpass.co:https ESTABLECIDO
tcp        0      0 192.168.1.7:41844       a23-35-40-198.dep:https ESTABLECIDO

P4. Cómo hacer que netstat muestre solo conexiones UDP

Esto lo puede hacer usando la opción de línea de comando -u.

netstat -u

P5. ¿Cómo hacer que netstat muestre solo enchufes de escucha?

Esto es posible usando la opción de línea de comando -l.

netstat -l

Por ejemplo, en mi caso se produjo el siguiente resultado:

 Conexiones de Internet activas (solo servidores) 
Proto Recv-Q Send-Q Dirección local Dirección Extraña Estado
TCP 0 0 ANSH:Dominio *:*Escuchar
TCP 0 0 Localhost:IPP:IPP *:*Escuchar
tcp 0 0 *:Microsoft-ds *:*escuchar
tcp 0 0 *:netbios-ssn *:*escuchar
tcp6 0 0 IP6-LocalHost:IPP [::]:*Escuchar
tcp6 0 0 [::]:microsoft-ds [::]:*escuchar
tcp6 0 0 [::]:netbios-ssn [::]:*escuchar <
...
...
...

P6. ¿Cómo hacer que netstat muestre el nombre y el PID de los programas?

En caso de que desee que netstat muestre el nombre de los ID de procesos a los que pertenece cada socket, use la opción de línea de comando -p.

netstat-p

Por ejemplo:

Conexiones de Internet activas (sin servidores)
Proto Recv-Q Send-Q Dirección local           Dirección extranjera         Estado       PID/Nombre del programa
tcp        0      0 192.168.1.7:57318       13.70.5.200: https     3247 /Firefox
tcp 0 0 192.168.1.7:36732 13.76.170.95:https establecido 3247 /Firefox
tcp 0 0 192.168.1.7:52050 149.154.164.224:htps establecido 3247 /Firfefefefefefefefefefefefefefefefox
tcppppppppppP 0 0 192.168.1. 1.7:60590 Mails11.telegram.:https establecido 3247 /Firefox
TCP 0 0 192.168.1.7:52254 149.154.164.224:https establecido 3247 /Firefox
TCP 0 0 192.168.2.97:45666 Blog establecido com:ftp   ESTABLECIDO 3160/filezilla  
tcp        0      0 192.168.1. 7:35818 32.4a.37a9.ip4.st:https establecido 3247 /Firefox
TCP 0 0 192.168.1.7:52528 52.114.32.7:https establecido 3247 /Firefox
TCP 0 0 192.168.1.7:55950 Del03S10-In-F14.1:HTTPS establecido 3247 /Firefox
TCP 68 0 Localhost:60342 ANSH:Netbios-SSN establecido 2625 /GVFSD-SMB-Brow
TCP 0 0 192.168.1.7:44974 152.195. 11.6:HTTPS establecidos 3247 /Firefox
TCP 0 0 192.168.1.7:36730 13.76.170.95:HTTPS establecido 3247 /Firefox
TCP 0 0 ANSH:Netbios -SSN Localhost:60342 establecido -
TCP 0 0 192.168.1.7:52732 Del03S10-In 1.7:53072       207.46.140.70:https     ESTABLECIDO 3247/firefox    
tcp        0      0 192.168.1.7:34500       do-11.lastpass.co:https ESTABLECIDO 3247/firefox

Consulte la última columna para obtener información sobre el nombre del programa/PID.

P7. ¿Cómo hacer que netstat imprima estadísticas de red?

Esto se puede hacer usando la opción de línea de comando -s.

netstat-s

En este caso, la herramienta produce información como el total de paquetes recibidos, descartados, entregados y mucho más. El siguiente es un ejemplo de salida cuando se usó la opción de línea de comando -s.

Ip:
    592215 paquetes totales recibidos
    41 con direcciones no válidas
    0 reenviados
    0 paquetes entrantes descartados
    580699 paquetes entrantes entregados
    539118 solicitudes enviadas out
    627 paquetes salientes descartados
    482 descartados debido a que falta la ruta
    2 fragmentos fallidos
Icmp:
    2337 mensajes ICMP recibidos
    6 mensajes ICMP de entrada fallidos.
    Histograma de entrada ICMP:
        Destino inalcanzable:2337
    3917 Mensajes ICMP enviados
    0 Mensajes ICMP fallidos
    Histograma de salida ICMP:
        Destino inalcanzable:3917
IcmpMsg:
        InType3:2337
        OutType3:3917
Tcp:
    10943 aperturas de conexiones activas
    127 aperturas de conexiones pasivas
    38 intentos de conexión fallidos
    467 restablecimientos de conexión recibidos
    34 conexiones establecidas
    443643 segmentos recibidos
    414589 segmentos enviados
    6929 segmentos retransmitido
    428 segmentos defectuosos recibidos.
    11713 restablecimientos enviados

...
...
...

P8. ¿Cómo hacer que netstat muestre la tabla de enrutamiento del kernel?

Esto se puede hacer usando la opción de línea de comando -r.

netstat -r

El siguiente es el resultado producido en mi caso:

 IP del Kernel de la tabla de enrutamiento 
Gateway destino Genmask Banderas ventana SMS irtt de Iface
por defecto 192.168.1.1 0.0.0.0 UG 0 0 0 wlx18a6f713679b
local de enlace 255.255.0.0 * T 0 0 0 wlx18a6f713679b
192.168.1.0     *               255.255.255.0   U         0 0          0 wlx18a6f713679b

Tenga en cuenta que netstat -r y ruta -e producir el mismo resultado.

Conclusión

Entonces, como ya habrá entendido, el comando netstat es una herramienta muy importante. Proporciona muchas funciones; solo hemos arañado la superficie aquí. Una vez que haya terminado de practicar todo lo que hemos discutido en este tutorial, diríjase a la página de manual de la herramienta para obtener más información.


Linux
  1. Tutorial de comando cd de Linux para principiantes (8 ejemplos)

  2. Tutorial de comandos de comunicación de Linux para principiantes (5 ejemplos)

  3. Tutorial de comando Linux df para principiantes (8 ejemplos)

  4. Tutorial de comando de fecha de Linux para principiantes (8 ejemplos)

  5. Tutorial de comando de nombre de host de Linux para principiantes (5 ejemplos)

Linux who Command Tutorial para principiantes (8 ejemplos)

Tutorial de comandos Linux nl para principiantes (7 ejemplos)

Tutorial de comandos de Linux nm para principiantes (10 ejemplos)

Tutorial de comandos OD de Linux para principiantes (6 ejemplos)

Tutorial de comando Linux w para principiantes (5 ejemplos)

Tutorial de comandos ss de Linux para principiantes (8 ejemplos)