Uso del comando netstat en Linux

Aprenda qué comando netstat y algunos de los ejemplos en tiempo real son.


netstat (estadísticas de red) es una herramienta de línea de comandos que muestra conexiones de red (entrantes y salientes), tablas de enrutamiento y una serie de estadísticas de interfaz de red.

Está disponible en sistemas operativos Linux, Unix-like y Windows. netstat es potente y puede ser una herramienta útil para solucionar problemas relacionados con la red y verificar estadísticas de conexión.

Si escribe netstat -help, obtendrá las siguientes pautas de uso.

[[correo electrónico protegido] ~] # netstat -help
uso: netstat [-vWeenNcCF] [] -r netstat {-V | –version | -h | –help}
netstat [-vWnNcaeol] […]
netstat {[-vWeenNac] -I [] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw]} [retraso]

-r, – tabla de enrutamiento de visualización de ruta
-I, –interfaces = mostrar tabla de interfaz para
-i, –interfaces pantalla tabla de interfaz
-g, –groups muestra membresías de grupos de multidifusión
-s, – estadísticas muestran estadísticas de red (como SNMP)
-M, –masquerade display conexiones enmascaradas

-v, –verbose ser detallado
-W, –wide no trunca las direcciones IP
-n, –numeric no resuelve nombres
–los hosts numéricos no resuelven los nombres de host
–los puertos numéricos no resuelven los nombres de los puertos
–los usuarios numéricos no resuelven los nombres de usuario
-N, –nombres de hardware de resolución simbólica
-e, –extender mostrar otra / más información
-p, – los programas muestran PID / nombre del programa para enchufes
-o, – temporizadores muestran temporizadores
-c, – listado continuo continuo

-l, – escuchar los enchufes del servidor de escucha de pantalla
-a, –todos muestran todos los enchufes (predeterminado: conectado)
-F, –fib display Base de información de reenvío (predeterminado)
-C, caché de enrutamiento de visualización de caché en lugar de FIB
-Z, –context display Contexto de seguridad SELinux para sockets

= {- t | –tcp} {-u | –udp} {-U | –udplite} {-S | –sctp} {-w | –raw}
{-x | –unix} –ax25 –ipx –netrom
= Use ‘-6 | -4’ o ‘-A’ o ‘-‘; predeterminado: inet
Lista de posibles familias de direcciones (que admiten enrutamiento):
inet (DARPA Internet) inet6 (IPv6) ax25 (AMPR AX.25)
netrom (AMPR NET / ROM) ipx (Novell IPX) ddp (Appletalk DDP)
x25 (CCITT X.25)
[[correo electrónico protegido] ~] #

Déjame mostrarte algunos de los ejemplos del comando. Lo siguiente se prueba en RHEL / CentOS, pero no veo ninguna razón para no trabajar en otra distribución como Ubuntu.

Conexión establecida

Si está buscando todas las conexiones establecidas desde el servidor.

[[correo electrónico protegido] ~] # netstat -natu | grep ‘ESTABLECIDO’
tcp 0 21 68.183.37.102:22 222.186.31.135:21714 ESTABLECIDO
tcp 0 36 68.183.37.102:22 52.148.155.182:49859 ESTABLECIDO
tcp 0 0 68.183.37.102:22 61.177.142.158:55481 ESTABLECIDO
[[correo electrónico protegido] ~] #

Si tiene muchas conexiones establecidas y está interesado en buscar una de las IP, puede usar otro grep.

[[correo electrónico protegido] ~] # netstat -natu | grep ‘ESTABLECIDO’ | grep 61.177.142.158
tcp 0 1280 68.183.37.102:22 61.177.142.158:33932 ESTABLECIDO
[[correo electrónico protegido] ~] #

Conexión de escucha

Supongamos que ha comenzado algún servicio, y que se supone que debe escuchar en una IP en particular: Puerto, esto sería útil para verificar.

[[correo electrónico protegido] ~] # netstat -an | grep ‘ESCUCHAR’
tcp 0 0 127.0.0.1:25 0.0.0.0:* ESCUCHAR
tcp 0 0 0.0.0.0:111 0.0.0.0:* ESCUCHAR
tcp 0 0 0.0.0.0:22 0.0.0.0:* ESCUCHAR
tcp6 0 0 ::: 111 ::: * ESCUCHAR
tcp6 0 0 ::: 80 ::: * ESCUCHAR
tcp6 0 0 ::: 22 ::: * ESCUCHAR
[[correo electrónico protegido] ~] #

O puede usar el argumento -l para mostrar todos los sockets de escucha.

[[correo electrónico protegido] ~] # netstat -l
Conexiones activas a Internet (solo servidores)
Proto Recv-Q Send-Q Dirección local Dirección extranjera Estado
tcp 0 0 localhost: smtp 0.0.0.0:* ESCUCHAR
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* ESCUCHAR
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* ESCUCHAR
tcp6 0 0 [::]: sunrpc [::]: * ESCUCHAR
tcp6 0 0 [::]: webcache [::]: * ESCUCHAR
tcp6 0 0 [::]: ssh [::]: * ESCUCHAR
udp 0 0 0.0.0.0:805 0.0.0.0:*
udp 0 0 0.0.0.0:sunrpc 0.0.0.0:*
udp 0 0 localhost: 323 0.0.0.0:*
udp6 0 0 [::]: 805 [::]: *
udp6 0 0 [::]: sunrpc [::]: *
udp6 0 0 ip6-localhost: 323 [::]: *
Sockets de dominio UNIX activos (solo servidores)
Tipo de banderas de Proto RefCnt Estado Ruta de nodo I
unix 2 [ACC] ESCUCHAR STREAM 15108 / run / dbus / system_bus_socket
unix 2 [ACC] ESCUCHAR STREAM 8202 / run / systemd / journal / stdout
unix 2 [ACC] SEQPACKET ESCUCHANDO 12813 / run / udev / control
unix 2 [ACC] STREAM LISTENING 17542 público / recogida
unix 2 [ACC] STREAM LISTENING 15165 /var/run/rpcbind.sock
unix 2 [ACC] STREAM LISTENING 17546 público / limpieza
unix 2 [ACC] ESCUCHAR STREAM 15605 /var/lib/gssproxy/default.sock
unix 2 [ACC] ESCUCHAR STREAM 12706 / run / systemd / private
unix 2 [ACC] ESCUCHAR STREAM 17549 public / qmgr
unix 2 [ACC] STREAM LISTENING 17571 public / flush
unix 2 [ACC] STREAM LISTENING 17553 privado / tlsmgr
unix 2 [ACC] ESCUCHAR STREAM 17586 public / showq
unix 2 [ACC] STREAM LISTENING 17556 privado / reescribir
unix 2 [ACC] STREAM LISTENING 17559 privado / rebote
unix 2 [ACC] STREAM LISTENING 17562 privado / aplazar
unix 2 [ACC] STREAM LISTENING 17565 privado / rastreo
unix 2 [ACC] STREAM LISTENING 17568 privado / verificar
unix 2 [ACC] ESCUCHAR STREAM 17574 privado / proxymap
unix 2 [ACC] ESCUCHAR STREAM 17577 privado / proxywrite
unix 2 [ACC] STREAM LISTENING 17580 privado / smtp
unix 2 [ACC] STREAM LISTENING 17583 privado / relé
unix 2 [ACC] STREAM LISTENING 17589 privado / error
unix 2 [ACC] STREAM LISTENING 17592 privado / reintento
unix 2 [ACC] STREAM LISTENING 17595 privado / descartar
unix 2 [ACC] STREAM LISTENING 17598 privado / local
unix 2 [ACC] STREAM LISTENING 17601 privado / virtual
unix 2 [ACC] STREAM LISTENING 17604 privado / lmtp
unix 2 [ACC] STREAM LISTENING 17607 privado / yunque
unix 2 [ACC] STREAM LISTENING 17610 privado / scache
unix 2 [ACC] STREAM LISTENING 15606 /run/gssproxy.sock
[[correo electrónico protegido] ~] #

Aproveche grep para filtrar los resultados..

Número de puerto utilizado por PID

Usted sabe que su aplicación se inició y conoce PID (Identificador de proceso) pero no está seguro de cuál es el número de puerto que está utilizando. El siguiente ejemplo es para PID 3937

[[correo electrónico protegido] ~] # netstat -anlp | grep 3937
tcp6 0 0 ::: 80 ::: * ESCUCHE 3937 / httpd
unix 3 [] STREAM CONECTADO 2442387 3937 / httpd
[[correo electrónico protegido] ~] #

Como puede ver, el puerto 80 se está utilizando para PID 3937.

Estadísticas de todos los protocolos

¿Tiene desconexiones frecuentes debido al paquete descartado? -s argumento le mostrará estadísticas generales donde puede prestar atención a los paquetes de mensajes descartados.

[[correo electrónico protegido] ~] # netstat -s
Ip:
731422 paquetes totales recibidos
0 reenviado
0 paquetes entrantes descartados
731399 paquetes entrantes entregados
787732 solicitudes enviadas
16 cayeron por falta de ruta
Icmp:
5277 mensajes ICMP recibidos
Mensaje de 120 entradas ICMP fallido.
InCsumErrors: 6
ICMP histograma de entrada:
destino inalcanzable: 193
tiempo de espera en tránsito: 16
solicitudes de eco: 5060
echo respuestas: 2
9355 mensajes ICMP enviados
0 mensajes ICMP fallaron
ICMP salida histograma:
destino inalcanzable: 4295
echo respuestas: 5060
IcmpMsg:
InType0: 2
InType3: 193
InType8: 5060
InType11: 16
OutType0: 5060
OutType3: 4295
Tcp:
42 aperturas de conexiones activas
35226 aberturas de conexión pasiva
1693 intentos fallidos de conexión
645 restablecimientos de conexión recibidos
2 conexiones establecidas
646705 segmentos recibidos
648037 segmentos enviados
99463 segmentos retransmitidos
27377 segmentos malos recibidos.
150893 restablecimientos enviados
InCsumErrors: 27377
Udp:
74547 paquetes recibidos
4814 paquetes a puerto desconocido recibido.
56 paquetes reciben errores
74584 paquetes enviados
0 recibir errores de búfer
0 errores de búfer de envío
InCsumErrors: 56
UdpLite:
TcpExt:
177 cookies SYN inválidas recibidas
1693 reinicios recibidos para enchufes embrionarios SYN_RECV
316 zócalos TCP tiempo finalizado espera en temporizador rápido
3 paquetes rechazados en conexiones establecidas debido a la marca de tiempo
70248 confirmados retrasos enviados
6 acks retrasados ​​más retrasados ​​debido a la toma bloqueada
El modo de reconocimiento rápido se activó 3082 veces
17 SYNs para ESCUCHAR enchufes caídos
28179 paquetes directamente en cola para recvmsg prequeue.
9802 bytes recibidos directamente en el contexto del proceso desde prequeue
72106 encabezados de paquetes predichos
94182 confirmaciones que no contienen datos de carga recibida
40094 confirmaciones previstas
332 veces recuperado de la pérdida de paquetes mediante acuses de recibo selectivos
8 ventanas de congestión recuperadas sin inicio lento por DSACK
1173 ventanas de congestión recuperadas sin inicio lento después de un reconocimiento parcial
1029 tiempos de espera después de la recuperación SACK
8 tiempos de espera en estado de pérdida
329 retransmisiones rápidas
3 retransmisiones delanteras
32 retransmite en arranque lento
44785 otros tiempos de espera de TCP
TCPLossProbes: 9763
TCPLossProbeRecovery: 1732
54 retransmisiones SACK fallidas
3144 DSACK enviados para paquetes antiguos
4 DSACK enviados por paquetes fuera de servicio
695 DSACK recibidos
1 DSACK para paquetes fuera de servicio recibidos
44 conexiones restablecidas debido a datos inesperados
76 conexiones restablecidas debido al cierre temprano del usuario
6079 conexiones canceladas debido al tiempo de espera
TCPDSACKIgnoredNoUndo: 448
TCPSpuriousRTOs: 5
TCPSackShiftFallback: 465
IPReversePathFilter: 11
TCPRcvCoalesce: 32369
TCPOFOQueue: 4313
TCPOFOMerge: 4
TCPChallengeACK: 2
TCPSynRetrans: 43670
TCPOrigDataSent: 208010
TCPACKSkippedSeq: 12
IpExt:
InNoRoutes: 12
InOctets: 133789295
OutOctets: 151093769
InNoECTPkts: 731338
InECT1Pkts: 3
InECT0Pkts: 1568
InCEPkts: 108
[[correo electrónico protegido] ~] #

Información de enrutamiento del núcleo

¿Tienes un problema de enrutamiento? o, la conectividad no funciona como se esperaba debido a que la conexión viaja a través de una ruta diferente?

Verifique rápidamente la tabla de enrutamiento.

[[correo electrónico protegido] ~] # netstat -r
Tabla de enrutamiento IP del núcleo
Puerta de enlace de destino Banderas Genmask Ventana MSS irtt Iface
puerta de enlace predeterminada 0.0.0.0 UG 0 0 0 eth0
10.16.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
68.183.32.0 0.0.0.0 255.255.240.0 U 0 0 0 eth0
link-local 0.0.0.0 255.255.0.0 U 0 0 0 eth0
[[correo electrónico protegido] ~] #

PID utilizado por el número de puerto

Muy útil para solucionar problemas de conflicto de puertos. Digamos que está intentando iniciar el servidor Apache o Nginx, que escucha en el puerto 80 pero no puede porque algún otro proceso ya está utilizando el puerto 80.

[[correo electrónico protegido] ~] # netstat -anlp | grep 80 | grep ESCUCHE
tcp6 0 0 ::: 80 ::: * ESCUCHE 3937 / httpd
[[correo electrónico protegido] ~] #

Y, puede ver que el PID 3937 está usando ese puerto.

Si está utilizando AIX, entonces

netstat -Aan | grep $ númeropuerto

Esto mostrará la dirección del bloque de control de protocolo en hexadecimal

Una vez que tenga hexadecimal, puede ejecutar a continuación para obtener qué proceso contiene un número de puerto.

rmsock $ address_of_pcb tcpcb

Lista de interfaces de red.

¿Tener múltiples interfaces ethernet? o no estoy seguro y quiero averiguarlo?

[[correo electrónico protegido] ~] # netstat -i
Tabla de interfaz de kernel
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 793026 0 0 0 849443 0 0 0 BMRU
lo 65536 6 0 0 0 6 0 0 0 LRU
[[correo electrónico protegido] ~] #

Escucha continua

Una excelente opción al solucionar problemas relacionados con fallas de servicios. Supongamos que una aplicación se bloquea aleatoriamente cada pocos minutos. Pero, no estoy seguro de cuándo exactamente. Puede usar el argumento -c que mostrará continuamente los resultados.

[[correo electrónico protegido] ~] # netstat -anlpc | grep 8080
tcp6 0 0 ::: 8080 ::: * ESCUCHE 11766 / httpd
tcp6 0 0 ::: 8080 ::: * ESCUCHE 11766 / httpd
tcp6 0 0 ::: 8080 ::: * ESCUCHE 11766 / httpd
tcp6 0 0 ::: 8080 ::: * ESCUCHE 11766 / httpd

Cuando deja de actualizarse, sabes que está bloqueado.

Conclusión

netstat es uno de los comandos más utilizados por sysadmin y espero que los ejemplos anteriores le den una idea de lo que puede hacer con él. Si desea obtener más información sobre la administración de Linux, consulte este Curso Udemy.

TAGS:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map