De qué manera utilizar el comando Netstat en Mac

El comando netstat en macOS es un comando de Terminal usado para enseñar información detallada sobre las comunicaciones de red de su Mac. Las comunicaciones de red incluyen todas y cada una de las formas en que su Mac habla con el planeta exterior, por medio de todos y cada uno de los puertos y todas y cada una de las aplicaciones. Tras dominar netstat, los usuarios de Mac pueden entender de forma rápida qué conexiones hace su computadora y por qué razón.

Ejecutando Netstat

El comando netstat está libre en Mac de manera predeterminada. No precisa ser descargado o bien instalado.

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

Notarás que un sinnúmero de texto enigmático empezará a desplazarse en tu pantalla. Esto es normal y aguardado. Sin opción auxiliar, netstat notificará todas y cada una de las conexiones de red activas en su Mac. Teniendo presente la cantidad de funciones que efectúa un dispositivo de red moderno, puede aguardar 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 entender lo que pasa en los puertos activos de su Mac. Puede filtrar la salida de netstat con los indicadores integrados. Estas banderas le dejan establecer opciones, limitando el alcance y la salida de netstat.

Banderas y opciones de Netstat

Para ver todas y cada una de las opciones libres de netstat, escriba man netstat en el símbolo del sistema. Esto revelará la página de manual de netstat. Asimismo puede ver una versión on line de la página de manual de netstat.

netstat (-AabdgiLlmnqrRsSvWx) (-C cola) (-F dirección_familia) (-YO interfaz) (-pags protocolo) (-w Espere)

Netstat en macOS no marcha de exactamente 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 abreviatura 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.

-pags 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.

-YO 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.

-sol 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.

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

-una 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 "listen"

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 la tubería El | se usa 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.

Acceso a Netstat a través de la utilidad de red

Además del uso con todas las funciones a través de la interfaz de línea de comandos de Terminal, algunas de las funciones de netstat también son accesibles 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 el Netstat pestaña 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
  • Muestra el estado de todas las conexiones de socket actuales ejecuta netstat

Suplemento de 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 hombre lsof en un mensaje de Terminal.

lsof Banderas y opciones

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

los -yo La bandera también se puede expandir para especificar más detalles. -iTCP o -iUDP solo devolverán 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 exactamente 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 normalmente obliga a lsof a mostrar el tamaño del archivo. Pero cuando se combina con el -yo bandera, -s Funciona de manera diferente. En cambio, permite al usuario especificar el protocolo y el estado para que regrese el comando.

-pags restringe lsof a un ID de proceso particular (PID). Se pueden establecer múltiples PID mediante el empleo 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.

-PAGS desactiva la conversión de números de puerto a nombres de puerto, acelerando la salida.

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

tu 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:LISTEN

Esto devolverá cada conexión TCP con el estado ESCUCHA. Esto revela todos los puertos TCP abiertos en tu Mac. También cuenta 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 ejecutando quién soy dentro del comando lsof, rodeado de PS 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 va a 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 y también ipconfig.