Cómo usar el comando Netstat en Mac

El comando netstat en macOS es un comando de Terminal utilizado para mostrar información detallada sobre las comunicaciones de red de su Mac. Las comunicaciones de red incluyen todas las formas en que su Mac está hablando con el mundo exterior, a través de todos los puertos y todas las aplicaciones.

El comando netstat en macOS es un comando de Terminal utilizado para mostrar información detallada sobre las comunicaciones de red de su Mac. Las comunicaciones de red incluyen todas las formas en que su Mac está hablando con el mundo exterior, a través de todos los puertos y todas las aplicaciones. Después de dominar netstat, los usuarios de Mac pueden comprender rápidamente qué conexiones está haciendo su computadora y por qué.

Ejecutando Netstat

El comando netstat está disponible en Mac de forma predeterminada. No necesita ser descargado o instalado.

Para ejecutar netstat, abra una ventana de Terminal. Si no está familiarizado con Terminal, se encuentra en /Applications/Utilities/Terminal.app. Escriba netstat y presione Entrar para ejecutar el comando.

Notarás que una gran cantidad de texto críptico comenzará a desplazarse en tu pantalla. Esto es normal y esperado. Sin ninguna opción adicional, netstat informará todas las conexiones de red activas en su Mac. Teniendo en cuenta la cantidad de funciones que realiza un dispositivo de red moderno, puede esperar que la lista sea larga. Un informe estándar de netstat puede ejecutar más de 1000 líneas.

Filtrar la salida de netstat es esencial para comprender lo que sucede en los puertos activos de su Mac. Puede filtrar la salida de netstat con los indicadores integrados. Estas banderas le permiten establecer opciones, limitando el alcance y la salida de netstat.

Banderas y opciones de Netstat

Para ver todas las opciones disponibles de netstat, escriba man netstat en el símbolo del sistema. Esto revelará la página de manual de netstat. También puede ver una versión en línea de la página de manual de netstat.

netstat [- AabdgiLlmnqrRsSvWx ] [ -c cola ] [ -f address_family ] [ -I interfaz ] [ -p protocolo ] [ – w espera ]

Netstat en macOS no funciona de la misma manera que netstat en Windows o netstat en Linux. El uso de indicadores o sintaxis de esas implementaciones de netstat puede no generar el comportamiento esperado.

Si la taquigrafía anterior parece completamente incomprensible, aprenda a leer la sintaxis de comandos.

-r muestra la tabla de enrutamiento, que muestra cómo se enrutan los paquetes por la red.

-p protocolo enumera el tráfico asociado con un protocolo de red específico. Si bien la lista completa de protocolos se puede encontrar en/etc/protocolos, los más importantes son udp y tcp.

-v aumenta la verbosidad, específicamente al agregar una columna que muestra el ID de proceso (PID) asociado con cada puerto abierto.

-I interfaz proporciona paquetes de datos para la interfaz especificada. Todas las interfaces disponibles se pueden ver con el indicador -i, pero en0 suele ser la interfaz de red saliente predeterminada. Tenga en cuenta la letra minúscula.

-g muestra información asociada con conexiones de multidifusión.

-s muestra las estadísticas de red para todos los protocolos, estén o no activos.

-n suprime las etiquetas de direcciones remotas con nombres. Esto acelera drásticamente la salida de netstat mientras sacrifica solo información limitada.

-a incluye puertos de servidor en la salida de netstat, que no están incluidos en la salida predeterminada.

Ejemplos de Netstat

Para poner en práctica nuestra comprensión, veamos algunos ejemplos de netstat.

 netstat -apv TCP 

Este comando solo devolverá conexiones TCP en su Mac, incluidos los puertos abiertos y los puertos activos. También utilizará resultados detallados, enumerando los PID asociados con cada conexión.

 netstat -a | grep -i "escuchar" 

Esta combinación de netstat y grep revelará puertos abiertos en tu Mac. Los puertos abiertos son puertos que están escuchando un mensaje. Si no está familiarizado con la sintaxis, el carácter de canalización | se utiliza para enviar la salida de un comando a otro comando. Canalizamos la salida de netstat a grep, lo que nos permite buscar la palabra clave «listen» y encontrar nuestros resultados.

Accediendo a netstat a través de Network Utility

Además del uso con todas las funciones a través de la interfaz de línea de comandos de Terminal, también se puede acceder a algunas de las funciones de netstat a través de la aplicación Network Utility. Esta aplicación integrada de macOS se puede encontrar en/Aplicaciones/Utilidades/Network Utility.app. Abra la aplicación y haga clic en la pestaña Netstat para acceder a la interfaz gráfica de netstat.

Las opciones dentro de Network Utility son claramente mucho más limitadas que las disponibles a través de la línea de comando. Las cuatro selecciones de botones de radio simplemente ejecutan un comando netstat preestablecido y muestran la salida en la pantalla a continuación.

Los comandos de netstat para cada botón de radio son los siguientes:

  • Mostrar información de la tabla de enrutamiento ejecuta netstat -r
  • Mostrar estadísticas completas de red para cada protocolo ejecuta netstat -s
  • Mostrar información de multidifusión ejecuta netstat -g
  • Mostrar el estado de todas las conexiones de socket actuales ejecuta netstat

Complementando netstat con lsof

El hecho es que la implementación macOS de netstat no incluye mucha de la funcionalidad que los usuarios esperan y necesitan. Si bien tiene sus usos, netstat no es tan útil en macOS como lo es en Windows. Un comando diferente, lsof, puede reemplazar gran parte de la funcionalidad que falta.

lsof muestra los archivos abiertos actualmente por cualquier aplicación. Esto también se puede usar para inspeccionar los puertos abiertos asociados con las aplicaciones. Ejecute lsof -i y verá una lista de todas las aplicaciones que se comunican a través de Internet. Este suele ser el objetivo cuando se usa netstat en máquinas con Windows. Sin embargo, la única forma significativa de lograr esa tarea en macOS no es con netstat, sino con lsof.

Mostrar cada archivo abierto o conexión a Internet a menudo es abrumadoramente detallado. Es por eso que lsof viene con una serie de indicadores para restringir los resultados con criterios específicos. Hay muchos indicadores útiles que amplían la utilidad del comando. Los más importantes están a continuación. Para una lectura adicional, que incluye más indicadores y explicaciones técnicas de la implementación de cada indicador, consulte la página de manual de lsof o ejecute man lsof en el indicador de Terminal.

lsof banderas y opciones

-i muestra todas las conexiones de red abiertas y el nombre del proceso que está utilizando la conexión. Agregar un 4, como en -i4 , solo mostrará las conexiones IPv4. Si agrega un 6 ( -i6 ) solo se mostrarán las conexiones IPv6.

La bandera -i también se puede expandir para especificar más detalles. -iTCP o -iUDP solo devolverán las conexiones TCP y UDP. -iTCP: 25 solo devolverá conexiones TCP en el puerto 25. Se puede especificar un rango de puertos con un guión, ya que -iTCP: 25-50.

El uso de -i@1.2.3.4 devolverá solo las conexiones a la dirección IPv4 1.2.3.4. Las direcciones IPv6 se pueden especificar de la misma manera. El precursor @ también se puede usar para especificar nombres de host de la misma manera, pero las direcciones IP remotas y los nombres de host no se pueden usar simultáneamente.

-s generalmente obliga a lsof a mostrar el tamaño del archivo. Pero cuando se combina con la bandera -i , -s funciona de manera diferente. En cambio, permite al usuario especificar el protocolo y el estado para que regrese el comando.

-p restringe lsof a un ID de proceso particular (PID). Se pueden establecer múltiples PID mediante el uso de comunes, como -p 123,456,789. Las ID de proceso también se pueden excluir con un ^, como en 123, ^ 456, que excluiría específicamente PID 456.

-P deshabilita la conversión de números de puerto a nombres de puerto, acelerando la salida.

-n deshabilita la conversión de números de red a nombres de host. Cuando se usa con -P arriba, puede acelerar significativamente la salida de lsof.

u usuario solo devuelve comandos propiedad del usuario nombrado.

lsof ejemplos

Al igual que netstat, ver algunos ejemplos de lsof ayudará a practicar nuestra comprensión.

 lsof -nP -iTCP@lsof.itap: 513 

Este comando de aspecto complejo enumerará todas las conexiones TCP con el nombre de host lsof.itap y el puerto 513. También ejecutará lsof sin conectar nombres a direcciones IP y puertos, haciendo que el comando se ejecute notablemente más rápido.

 lsof -iTCP -sTCP: ESCUCHAR 

Esto devolverá cada conexión TCP con el estado ESCUCHAR . Esto revela todos los puertos TCP abiertos en tu Mac. También enumera los procesos asociados con esos puertos abiertos. Esta es una actualización significativa sobre netstat, que enumera los PID como máximo.

 sudo lsof -i -u ^ $ (whoami) 

Devuelve todas las conexiones no propiedad del usuario actualmente conectado. Este comando es un poco diferente de los demás, por lo que lo desglosaremos en detalle.

El caret ^ se usa para la negación. Cualquier cosa que coincida con el texto después del cursor se eliminará de los resultados. Obtenemos el nombre del usuario actualmente conectado al ejecutar whoami dentro del comando lsof, rodeado de $ () para permitir que lsof acceda a su salida como texto. Ejecutar con sudo le permite ver tareas que no le pertenecen. Ejecutar este comando sin sudo devolverá una lista vacía.

Otros comandos de red

Otros comandos de red de Terminal que pueden ser de interés para examinar su red incluyen arp, ping e ipconfig.

Rate article
labsfabs.com
Add a comment