Una oportunidad para pescar, vi a un amigo en el grupo preguntar qué hace el comando netstat -tnpl . Este comando se ha usado mucho, pero realmente no lo he estudiado, pero esto es un problema, no puedo dejarlo. go Lo he aprobado y uso el comando netstat para consultar el estado de escucha del puerto todos los días, así que aproveche esta oportunidad para entender el comando netstat juntos.
El comando netstat es compatible con los sistemas operativos Linux, Windows y MacOS. La diferencia es que el comando para que netstat muestre información detallada en UNIX es man netstat , mientras que en Linux y Windows es netstat --help .
comando netstat bajo Linux
Cuando ejecuté el comando man netstat en Linux, el mensaje que mostró el sistema realmente me sorprendió. ¡Parece que este comando tiene mucho contenido! No se deje intimidar por una descripción tan larga, vayamos paso a paso.
Primero, comprendamos qué hace el comando netstat.
La explicación oficial que se nos da es que
netstat -- show network status
enumerar el estado de la red
Pero, ¿qué pasa con el estado de la red? Con dudas, lo ejecuté bajo Linux.
La impresión es un sextuple, y el contenido de cada columna del sextuple es
Una mirada más cercana a la tupla de seis parece indicar que el comando netstat es una herramienta de línea de comandos para monitorear las conexiones de red entrantes y salientes y el estado .
En general, la salida de netstst se puede dividir en dos partes, una es Conexiones activas de Internet , llamadas conexiones TCP activas , donde Recv-Q y Send-Q se refieren a la cola de envío del cliente y la cola de recepción del cliente. Los valores de estas dos colas por lo general son 0. Si no es 0 significa que hay mensajes amontonados y no han sido enviados/sacados, situación que rara vez se ve.
La otra parte son los sockets de dominio UNIX activos , llamados sockets de dominio Unix activos . Los sockets en esta parte son los mismos que los sockets de red. La diferencia es que esta pieza solo se puede usar para comunicación local y su rendimiento es superior al de tomas de red. . Los sockets de dominio UNIX activos también son seis tuplas, lo que representa
definición del parámetro netstat
Expliquemos algunos de los parámetros enumerados en netstat --help. Comencemos con los parámetros más comunes, para que todos puedan formar una memoria por etapas y no perder el enfoque.
netstat-a
-a Este parámetro monitoreará todas las conexiones de socket por defecto.
Se listarán los que han sido monitoreados, los que han establecido conexiones, los enviados por el cliente que están esperando al servidor y los que no han sido monitoreados.
netstat-at/-t
Los sufijos netstat -at y netstat -t se usan para monitorear puertos relacionados con el protocolo TCP. La diferencia es que netstat -at escucha los puertos en todos los estados, mientras que netstat -t solo escucha los puertos en estado ESTABLECIDO .
netstat -en
netstat-t
netstat-au/-u
De manera similar, netstat -au y netstat -u monitorean los puertos relacionados con UDP, la diferencia es que netstat -au escucha todos los puertos en el estado, mientras que netstat -u solo escucha los puertos en el estado ESTABLECIDO .
netstat-au
netstat-u
Mi prueba aquí no es monitorear el protocolo UDP en el estado de conexión establecida.
netstat-ap
Este comando se utiliza para enumerar los puertos en los que se ejecuta el programa. Los comandos más utilizados son
netstat -ap|grep '程序名'
Por ejemplo, si buscamos un programa http, es Netstat -ap|grep http
También puede enumerar el número de puerto directamente
netstat -ap|grep 8080
Sin embargo, cabe señalar que no se pueden encontrar todos los programas, y los que no tienen permisos no se mostrarán.Puede consultar toda la información con permisos de root.
netstat -l
netstat -l se usa para monitorear el puerto que está en estado de escucha (es realmente difícil de leer, para leer con mayor fluidez, use el 列出
monitor de reemplazo directamente más adelante).
netstat -lt solo se usa para enumerar todos los puertos TCP de escucha.
netstat -lu solo se usa para enumerar todos los puertos UDP que escuchan.
netstat -lx solo se usa para enumerar todos los puertos UNIX que escuchan.
netstat-s
netstat -s se utiliza para enumerar las estadísticas de todos los puertos.
netstat -st se utiliza para enumerar las estadísticas de los puertos TCP.
netstat -su se utiliza para enumerar las estadísticas de los puertos UDP.
netstat-p
netstat -p se puede usar con otros parámetros, por ejemplo, netstat -pt puede mostrar el nombre del servicio y el número PID.
netstat-c
El uso de netstat -c enumerará la información de la red cada segundo.
netstat -r
netstat -r se utiliza para enumerar la información básica de enrutamiento.
netstat --verbose
Este comando enumerará la familia de direcciones compatible con el sistema .
Familia de direcciones simplemente significa qué protocolo de comunicación usa la capa inferior para enviar datos. Por ejemplo, AF_INET usa TCP/IPv4, AF_INET6 usa TCP/IPv6 y AF_LOCAL o AF_UNIX se refiere a la comunicación local (es decir, esta vez la comunicación es la comunicación). entre procesos en el host actual), que generalmente se especifica en forma de una ruta absoluta.
netstat -i
netstat -i se usa para enumerar los paquetes de interfaz de red, incluidos los paquetes de transmisión y recepción con MTU (unidad máxima de transmisión).
Además, netstat -ie también se usa para enumerar la tabla de interfaz del kernel, muy similar al comando ifconfig
sobre este tema
Entonces, volviendo a la pregunta al comienzo del artículo, para qué se usa netstat -tnpl, de hecho, esta es una combinación de varios parámetros
- -t: solo muestra información relacionada con tcp
- -n: lista numéricamente
- -p: enumera el PID del socket y el nombre del programa en uso
- -l: lista de sockets de servidor de escucha
Ejecutemos este comando.
Además, en Linux, se recomienda usar ss en lugar de netstat, usar ip route en lugar de netstat -r, usar ip -s link en lugar de netstat -i y usar ip addr en lugar de netstat -g.
Enlace original: ¿Netstat todavía puede jugar así?
Si este artículo te es útil, ¡espero que te guste y lo sigas!