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 EstablecidoEntonces 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 -tPor 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:httsTCP 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 ESTABLECIDOP4. Cómo hacer que netstat muestre solo conexiones UDP
Esto lo puede hacer usando la opción de línea de comando -u.
netstat -uP5. ¿Cómo hacer que netstat muestre solo enchufes de escucha?
Esto es posible usando la opción de línea de comando -l.
netstat -lPor 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-pPor 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/firefoxConsulte 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-sEn 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 -rEl 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 wlx18a6f713679bTenga 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.