Cómo usar netstat en Linux
linuxnetstat
El comando le brinda un tesoro de información sobre las conexiones de red, los puertos en uso y los procesos que los utilizan. Aprenda como usarlo.
Puertos, Procesos y Protocolos
zócalo web Puede conectarse o esperar para conectarse. La conexión utiliza un protocolo de red como Protocolo de Control de Transmisión (TCP) o Protocolo de datagramas de usuario UDP.ellos usan protocolo de Internet dirección y puerto de red construir conexión.
La palabra socket puede evocar imágenes de un punto de conexión físico para alambres o cables, pero en este caso, un socket es una construcción de software utilizada para manejar un extremo de una conexión de datos de red.
Los sockets tienen dos estados principales: están conectados y facilitan la comunicación de red en curso, o están esperando una conexión entrante para conectarse a ellos. Hay otros estados, como el estado en el que un socket está en medio del establecimiento de una conexión en un dispositivo remoto, pero aparte de los transitorios, puede pensar en un socket como conectado o esperando (comúnmente conocido como escuchando).
El socket de escucha se denomina servidor, y el socket que solicita una conexión con el socket de escucha se denomina cliente. Estos nombres no tienen nada que ver con funciones de hardware o computadora. Simplemente definen lo que hace cada socket en ambos extremos de la conexión.
Deberíanetstat
El comando le permite descubrir qué enchufes están conectados y qué enchufes están escuchando. Es decir, le dice qué puertos están en uso y qué procesos los están usando. Puede mostrarle la tabla de enrutamiento y las estadísticas sobre usted Interfaz de red y conexión de multidifusión.
funcion denetstat
ha sido reproducido a lo largo del tiempo en diferentes utilidades de Linux como propiedad intelectual y SS. Todavía vale la pena conocer al abuelo de todos los comandos de análisis de red, ya que está disponible en todos los sistemas operativos Linux y similares a Unix, e incluso en Windows y Mac.
Aquí se explica cómo usarlo, con comandos de ejemplo.
enumerar todos los enchufes
(-a
todos) opciónnetstat
Muestra todos los enchufes conectados y en espera. Este comando puede producir fácilmente una lista muy larga, por lo que lo canalizamos aless
.
webstat-a |menos
La lista incluye TCP (IP), TCP6 (IPv6) y tomas UDP.
La envoltura en la ventana de la terminal hace que sea difícil ver lo que está pasando. Aquí hay algunas secciones de esa lista de verificación:
Conexión a Internet activa (servidor y establecida) Proto Recv-Q Send-Q Dirección local Dirección externa Estado tcp 0 0 localhost:domain 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:ipp 0.0.0.0:* ESCUCHAR tcp 0 0 localhost:smtp 0.0.0.0:* ESCUCHAR tcp6 0 0 [::]:ssh [::]:* ESCUCHAR tcp6 0 0 ip6-localhost:ipp [::]: * LISTEN... Conectores de dominio UNIX activos (servidor y establecido) Proto RefCnt Flags Tipo Estado I-Node Pathunix 24 [ ] DGRAM 12831 /run/systemd/journal/dev-logunix 2 [ ACC ] STREAM LISTENING 24747 @/ tmp/dbus- zH6clYmvw8unix 2 [] DGRAM 26372 /run/user/1000/systemd/notifyunix 2 [] DGRAM 23382 /run/user/121/systemd/notifyunix 2 [ACC] SEQPACKET ESCUCHA 12839 /run/udev/control
La sección Active Internet enumera las conexiones externas conectadas y los sockets locales que escuchan las solicitudes de conexión remota. Es decir, enumera las conexiones de red que están (o estarán) establecidas a dispositivos externos.
La sección Dominio UNIX enumera las conexiones internas conectadas y en escucha. En otras palabras, enumera las conexiones establecidas entre diferentes aplicaciones, procesos y elementos del sistema operativo en su computadora.
La columna Internet activo es:
- prototipo: El protocolo (por ejemplo, TCP o UDP) utilizado por este socket.
- Recibir P: Cola de recepción. Estos son bytes entrantes que han sido recibidos y almacenados en búfer, esperando ser leídos y consumidos por el proceso local usando esta conexión.
- Enviar P: enviar cola. Esto muestra los bytes listos para ser enviados desde la cola de envío.
- Dirección local: Detalles de la dirección del lado local de la conexión.por defecto es
netstat
Muestra el nombre de host local para la dirección y el nombre de servicio para el puerto. - Dirección en el extranjero: La dirección y el número de puerto del extremo remoto de la conexión.
- estado: El estado del socket local. Para sockets UDP, esto suele estar en blanco. Consulte la tabla de estado a continuación.
Para conexiones TCP, el valor de estado puede ser uno de los siguientes:
- escuchar: Solo del lado del servidor. El socket está esperando una solicitud de conexión.
- Enviar sincrónicamente: Solo cliente. Este socket ha emitido una solicitud de conexión y está esperando ser aceptado.
- Recepción SYN: Solo del lado del servidor. Este socket está esperando una confirmación de conexión después de aceptar una solicitud de conexión.
- Establecido: servidor y cliente. Se ha establecido una conexión funcional entre el servidor y el cliente, lo que permite transferir datos entre los dos.
- FIN-ESPERA-1: servidor y cliente. Este socket está esperando una solicitud de terminación de conexión de un socket remoto, o un reconocimiento de una solicitud de terminación de conexión enviada previamente desde este socket.
- espera 2: servidor y cliente. Este socket está esperando una solicitud de terminación de conexión de un socket remoto.
- Cerrar esperando: servidor y cliente. Este socket está esperando una solicitud de terminación de conexión del usuario local.
- cierre: servidor y cliente. Este socket está esperando una confirmación de solicitud de terminación de conexión del socket remoto.
- revision final: servidor y cliente. Este socket está esperando el reconocimiento de una solicitud de terminación de conexión que envió al socket remoto.
- tiempo de espera: servidor y cliente. Este socket envía un reconocimiento al socket remoto, haciéndole saber que recibió una solicitud de finalización del socket remoto. Ahora está esperando para asegurarse de que ha recibido un acuse de recibo.
- cierre: No hay conexión, por lo que el socket ha sido terminado.
La columna «Dominio Unix» es:
- prototipo: El protocolo utilizado por este socket. Será «unix».
- número de referencia: Conteo de referencias. El número de procesos adicionales conectados a este socket.
- logo: Esto generalmente se establece en
ACC
,RápidoSO_ACCEPTON
, lo que indica que el socket está esperando una solicitud de conexión.SO_WAITDATA
,mostrado comoW
, lo que indica que hay datos esperando a ser leídos.SO_NOSPACE
, como muestra la imagenN
, lo que indica que no hay espacio para escribir datos en el socket (es decir, el búfer de envío está lleno). - escribe: tipo de enchufe. Consulte la tabla de tipos a continuación.
- estado: El estado del enchufe. Consulte la tabla de estado a continuación.
- Mi nodo: El inodo del sistema de archivos asociado con este socket.
- sendero: La ruta del sistema de archivos del socket.
Los tipos de socket de dominio de Unix pueden ser uno de los siguientes:
- imagen dinámica: Los sockets se usan en modo datagrama, usando mensajes de longitud fija. No se garantiza que los datagramas sean confiables, ordenados o no repetidos.
- corriente: Este zócalo es un zócalo de corriente. Este es el tipo habitual de conexión de enchufe «normal». Estos sockets están diseñados para proporcionar una entrega de paquetes secuencial (en secuencia) confiable.
- crudo: Este zócalo se utiliza como un zócalo sin procesar. Los sockets sin procesar operan en la capa de red modelo OSI Y no se refiera a los encabezados TCP y UDP desde el nivel de transporte.
- RDM: Este socket se encuentra en un extremo de una conexión de mensajes entregados de manera confiable.
- Paquete en serie: Este zócalo funciona como un zócalo de paquetes secuenciales, que es otra forma de proporcionar una entrega de paquetes fiable, ordenada y sin duplicados.
- Bolsa: Interfaz sin procesar para acceder a los sockets. Los sockets de paquetes se utilizan para recibir o enviar paquetes sin procesar en el nivel del controlador de dispositivo (es decir, la capa de enlace de datos) del modelo OSI.
El estado del socket del dominio Unix puede ser uno de los siguientes:
- libre: El zócalo no está asignado.
- audiencia: Este socket está escuchando las solicitudes de conexión entrantes.
- conectar: Este enchufe se está conectando.
- conectado: La conexión se establece y el socket puede recibir y enviar datos.
- Desconectar: La conexión se está terminando.
Wow, eso es un montón de información!muchosnetstat
Las opciones mejoran los resultados de una forma u otra, pero no cambian demasiado el contenido.vamos a ver.
Lista de enchufes por tipo
Deberíanetstat -a
Los comandos pueden proporcionar más información de la que necesita ver. Si solo quiere o necesita ver los sockets TCP, puede usar-t
La opción (TCP) limita la visualización a los sockets TCP únicamente.
webstats-at |menos
La salida de la pantalla se reduce considerablemente. Varios sockets enumerados son sockets TCP.
(-u
UDP) y-x
La opción (UNIX) se comporta de manera similar, limitando los resultados a los tipos de socket especificados en la línea de comando. Aquí está la opción -u (UDP) en uso:
Estadísticas Web-au |menos
Solo se enumeran los sockets UDP.
Lista de enchufes por estado
Para ver los sockets que están en estado de escucha o de espera, utilice-l
(escuchar) opción.
estadísticas de red -l |menos
Los sockets enumerados son los que están en estado de escucha.
Esto se puede combinar con las opciones -t (TCP, -u (UDP) y -x (UNIX) para encontrar más sockets de interés. Busquemos los sockets TCP de escucha:
webstats-lt |menos
En este momento, solo vemos el socket de escucha TCP.
Estadísticas de red por protocolo
Para ver las estadísticas de un protocolo, utilice el-s
(estadísticas) opción y pase-t
(TCP),-u
(UDP) o-x
(UNIX) opción. Si solo estás usando-s
(estadísticas), verá estadísticas para todos los protocolos. Examinemos las estadísticas del protocolo TCP.
webstat-st |menos
Una colección de estadísticas para las conexiones TCP se muestra enless
.
Mostrar nombre de proceso y PID
puede ser útil para ver número de proceso El (PID) del proceso que usa el socket y el nombre del proceso.(-p
programa) opción hace precisamente eso. Veamos cuál es el PID y el nombre del proceso que usa el socket TCP de escucha. Usamossudo
Garantiza que recibamos toda la información disponible, incluida cualquier información que normalmente requiera privilegios de raíz.
sudo netstat -p -at
Aquí está la salida en forma formateada:
Conexión a Internet activa (servidor y establecida) Proto Recv-Q Send-Q Dirección local Dirección externa Estado PID/Nombre del programa tcp 0 0 localhost:domain 0.0.0.0:* LISTEN 6927/systemd-resolv tcp 0 0 0.0.0.0:ssh 0.0.0.0:* ESCUCHAR 751/sshd tcp 0 0 localhost:ipp 0.0.0.0:* ESCUCHAR 7687/cupsd tcp 0 0 localhost:smtp 0.0.0.0:* ESCUCHAR 1176/master tcp6 0 0 [::]:ssh [:: ]:* ESCUCHAR 751/sshd tcp6 0 0 ip6-localhost:ipp [::]:* ESCUCHAR 7687/cupsd tcp6 0 0 ip6-localhost:smtp [::]:* ESCUCHAR 1176/maestro
Tenemos una columna adicional llamada «PID/Nombre del programa». Esta columna enumera el PID y el nombre del proceso que usa cada socket.
enumerar direcciones numéricas
Otro paso de desambiguación que podemos tomar es mostrar las direcciones locales y remotas como direcciones IP en lugar del dominio y el nombre de host al que se resuelven.si usamos-n
(numérico), la dirección IPv4 se muestra en formato decimal con puntos:
sudo netstat-an |menos
Las direcciones IP se muestran como valores numéricos. También se muestra el número de puerto, con dos puntos «:
” separados de la dirección IP.
La dirección IP 127.0.0.1 indica que el socket está vinculado a La dirección de loopback de la computadora local.puedes pensar en uno La dirección IP es 0.0.0.0 Significa «ruta predeterminada» para direcciones locales y «cualquier dirección IP» para direcciones externas. Dirección IPv6 mostrada como » «::
También son direcciones cero.
Los puertos listados pueden ser fácilmente Compruebe cuál es su propósito habitual:
- Veintidós: Esto es caparazón de seguridad (SSH) puerto de escucha.
- 25: este Protocolo simple de transferencia de correo (SMTP) puerto de escucha.
- 53: Esto es sistema de nombres de dominio (DNS) puerto de escucha.
- 68: Esto es protocolo de configuración huésped dinámico (DHCP) puerto de escucha.
- 631: Esto es Sistema de impresión universal UNIX (CUPS) puerto de escucha.
mostrar la tabla de enrutamiento
(-r
route) para mostrar la tabla de enrutamiento del kernel.
sudo netstat-r
Aquí está la salida en una forma ordenada:
Kernel Tabla de enrutamiento IP Puerta de enlace de destino Indicadores Genmask Ventana MSS irtt Ifacedefault Vigor.router 0.0.0.0 UG 0 0 0 enp0s3link-local 0.0.0.0 255.255.0.0 U 0 0 0 enp0s3192.168.4.0 0.0.0.0 255.255.255.03 U enp
Y esto es lo que significan las columnas:
- destino: La red de destino o el dispositivo host de destino si el destino no es una red.
- Puerta: Dirección de la entrada.
*
Si la dirección de la puerta de enlace no está configurada, aparecerá aquíUn asterisco » «. - Máscara de genes: La máscara de subred de la ruta.
- logo: Consulte la tabla de banderas a continuación.
- Mensaje corto: tamaño de segmento máximo predeterminado Para las conexiones TCP en esta ruta, esta es la cantidad máxima de datos que se pueden recibir en un segmento TCP.
- ventana: Este tamaño de ventana predeterminado Para las conexiones TCP en esta ruta, indica la cantidad de paquetes que se pueden transmitir y recibir antes de que se llene el búfer de recepción. De hecho, los paquetes son consumidos por la aplicación receptora.
- Oh: inicial Tiempo de viaje. El kernel hace referencia a este valor para ajustar dinámicamente los parámetros TCP para conexiones remotas de respuesta lenta.
- Yo afronto: La interfaz de red que transmite los paquetes enviados a través de esta ruta.
El valor de la bandera puede ser uno de los siguientes:
- tú: La ruta está activa.
- H: Target es un anfitrión y el único destino posible en esta ruta.
- GRAMO: Usa una puerta de enlace.
- Respuesta: Restaure la ruta para el enrutamiento dinámico.
- Timbre: Instalado dinámicamente por el demonio de enrutamiento.
- masculino: Cuando el daemon de enrutamiento recibe un Protocolo de mensajes de control de Internet (ICMP) paquetes.
- A: Depender de
addrconf
Instalación automática del generador de archivos de configuración de DNS y DHCP. - C: entrada de caché.
- !: Denegar ruta.
Encuentra los puertos usados por un proceso
Si canalizamos la salidanetstat
mediantegrep
, podemos buscar un proceso por nombre y determinar qué puerto está utilizando. Usamos el anterior-a
(todos),-n
(numérico) y-p
(programa) y busque «sshd».
sudo netstat-anp |grep "sshd"
grep
Al encontrar la cadena de destino, vemossshd
El daemon está usando el puerto 22.
Por supuesto, también podemos hacerlo a la inversa. Si buscamos «:22», podemos averiguar qué proceso está usando ese puerto (si lo hay).
sudo netstat-anp |grep ":22"
esta vezgrep
Al encontrar la cadena de destino «: 22», vemos que el proceso que usa este puerto essshd
Proceso daemon, ID de proceso 751.
lista de interfaces de red
(-i
interfaces) aparecerá la opciónnetstat
Tabla de interfaces de red que se pueden descubrir.
sudo netstat-i
Aquí hay una salida más limpia:
Tabla de interfaz del kernel Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flgenp0s3 1500 4520671 0 0 0 4779773 0 0 0 BMRUlo 65536 30175 0 0 0 30175 0 0 0 LRU
Esto es lo que significan las columnas:
- Yo afronto: El nombre de la interfaz.
enp0s3
interfaz es la interfaz de red externa,interfazlo
Es la interfaz de loopback. Una interfaz de bucle invertido permite que los procesos se comuniquen entre sí dentro de una computadora mediante protocolos de red, incluso cuando la computadora no está conectada a una red. - Unidad máxima de transmisión: Este unidad máxima de transmisión (UTM). Este es el «paquete» más grande que se puede enviar. Consiste en encabezados que contienen indicadores de enrutamiento y protocolo, otros metadatos y los datos reales transferidos.
- Recibido con éxito: El número de paquetes recibidos, sin errores.
- Error de recepción: El número de paquetes recibidos, con errores. Queremos que sea lo más bajo posible.
- RX-DRP: El número de paquetes descartados (es decir, perdidos). También queremos que sea lo más bajo posible.
- RX-OVR: Número de paquetes perdidos debido a desbordamiento en recepción. Esto generalmente significa que el búfer de recepción está lleno y no puede aceptar más datos, pero se han recibido más datos y deben descartarse. Cuanto menor sea este número, mejor, siendo cero perfecto.
- TX-OK: El número de paquetes transmitidos, sin errores.
- Error de recepción: El número de paquetes transmitidos, con errores. Queremos que sea cero.
- RX-DRP: El número de paquetes descartados durante el tránsito. Idealmente, esto debería ser cero.
- RX-OVR: El número de paquetes perdidos debido al desbordamiento durante la transmisión. Esto generalmente significa que el búfer de envío está lleno y no puede aceptar más datos, pero hay más datos listos para transmitirse y deben descartarse.
- logo: bandera. Consulte la tabla de banderas a continuación.
Estas banderas representan lo siguiente:
- Segundo: La dirección de transmisión está en uso.
- largo: Esta interfaz es un dispositivo de bucle invertido.
- masculino: Todos los paquetes se reciben (es decir, en modo promiscuo). Nada se filtra ni se descarta.
- Vaya: ARP (ARP) está inactivo para esta interfaz.
- invitado: Esto es un de igual a igual (PPP) conexión.
- Respuesta: La interfaz está funcionando.
- tú: La interfaz está activa.
enumerar los miembros del grupo de multidifusión
En pocas palabras, un transmisión de multidifusión Hace que el paquete se envíe una sola vez, independientemente del número de destinatarios. Para servicios como la transmisión de video, por ejemplo, esta es una gran ganancia de eficiencia desde la perspectiva del remitente.
(-g
grupos) opciónnetstat
Enumere las membresías de grupos de multidifusión para sockets en cada interfaz.
sudo netstat -g
Las columnas son muy simples:
- interfaz: El nombre de la interfaz a través de la cual se transporta el socket.
- número de referencia: Recuento de referencias, es decir, el número de procesos adjuntos al socket.
- grupo: El nombre o identificador del grupo de multidifusión.
nuevo niño del vecindario
Este ruta, propiedad intelectual, archivo de configuración, y SS comando puede proporcionar muchosnetstat
capaz de mostrarte contenido. Todos son grandes comandos y vale la pena probarlos.
nos centramos ennetstat
Es porque está disponible universalmente, sin importar qué sistema operativo similar a Unix esté usando, incluso uno oscuro.
comandos de linux | ||
documento | asfalto · fotovoltaica · gato · táctica · modo de cambio · grep · diferencia · sed · Arkansas · hombre · para empujar · ventana emergente · fsck · disco de prueba · número de serie · f.d. · pandoc · CD · $ruta · awk · participar · jq · doblar · Único · diarioctl · Cola · estado · ls · mesa de estabilidad · eco · menos · chgrp · Chon · Velocidad de rotación · Mirar · cuerda · escribe · cambiar nombre · compresión · abrir la cremallera · Montaña · desinstalar · Instalar · disco · mkfs · RM · Tabla de contenido · Sincronizar · paradero · gpg · seis · Nano · Tabla de contenido · Du · existir · reparar · intercambio · clon · arrancar · Srm | |
proceso | alias · Pantalla · óptimo · OK · agradable · Progreso · pista · sistema · multiplexor · chsh · historia · existir · lote · libre · cual · dmesg · Franco suizo · módulo de usuario · posdata · chroot · xargs · Terminal · dedo meñique · lsof · Estadísticas de máquinas virtuales · pausa · pared · Sí · matar · dormir · Sudo · demandar · tiempo · dirección de grupo · módulo de usuario · grupo · lshw · cierre · reiniciar · deténgase · cerrar · clave · lscpu · Lista de tareas cronometradas · fecha · antecedentes · fg | |
redes | estadísticas de la red · plano · pista de ruta · propiedad intelectual · SS · Quien es · fail2ban · bmón · excavar · dedo · mapa · FTP · ondulado · wget · Quién · quién soy · w · iptables · ssh-keygen · ufw |