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á realizando su computadora y por qué.
Corriendo 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. Tipo netstat y presione Enter para ejecutar el comando.
Notará que una gran cantidad de texto críptico comenzará a desplazarse en su 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 el número 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 está sucediendo en los puertos activos de su Mac. Puede filtrar la salida de netstat con las banderas incorporadas. Estas marcas 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 man de netstat. También puede ver una versión en línea de la página del manual de netstat.
netstat -AabdgiLlmnqrRsSvWx -do cola -F dirección_familia -YO interfaz -pag protocolo -w Espere
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 resultar en el comportamiento esperado.
Propina: Si la abreviatura anterior parece completamente incomprensible, aprenda cómo leer la sintaxis del comando.
-r muestra la tabla de enrutamiento, que muestra cómo se enrutan los paquetes en la red.
-pag 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 / protocol, 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 a las conexiones de multidifusión.
-s muestra las estadísticas de red para todos los protocolos, estén o no activos.
-norte Suprime el etiquetado de direcciones remotas con nombres. Esto acelera drásticamente la salida de netstat a la vez que 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á las conexiones TCP en su Mac, incluidos los puertos abiertos y los puertos activos. También utilizará una salida detallada, que enumera los PID asociados con cada conexión. netstat -a | grep -i "escucha"
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 "escuchar" y encontrar nuestros resultados. Además del uso con todas las funciones a través de la interfaz de línea de comandos de la 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 macOS incorporada 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 para netstat. Las opciones dentro de Network Utility son claramente mucho más limitadas que las disponibles a través de la línea de comandos. Las cuatro selecciones de botones de radio simplemente ejecutan un comando netstat preestablecido y muestran la salida en la pantalla de abajo. Los comandos de netstat para cada botón de opción son los siguientes: El hecho es que la implementación macOS de netstat no incluye gran parte de la funcionalidad que los usuarios esperan y necesitan. Si bien tiene sus usos, netstat no es tan útil en macOS como en Windows. Un comando diferente, lsof, puede reemplazar gran parte de la funcionalidad faltante. lsof muestra cualquier archivo abierto actualmente por cualquier aplicación. Esto también se puede usar para inspeccionar puertos abiertos asociados con 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 realizar esa tarea en macOS no es con netstat, sino con lsof. Mostrar todos los archivos abiertos o la conexión a Internet es a menudo 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 expanden la utilidad del comando. Los más importantes están abajo. Para obtener lecturas adicionales, incluidas más banderas y explicaciones técnicas de la implementación de cada bandera, consulte la página de manual de lsof o ejecute hombre lsof en un indicador de terminal. -yo muestra todas las conexiones de red abiertas y el nombre del proceso que utiliza la conexión. Añadiendo un 4, como en -i4, mostrará solo las conexiones IPv4. Añadiendo un 6 en su lugar (-i6) mostrará solo las conexiones IPv6. los -yo bandera también se puede ampliar para especificar más detalles. -iTCP o -iUDP solo devolverán las conexiones TCP y UDP. -iTCP: 25 solo devolverá las 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 [email protected] 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 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 su lugar, le permite al usuario especificar el protocolo y el estado para que el comando regrese. -pag restringe lsof a un ID de proceso particular (PID). Se pueden establecer múltiples PID utilizando recursos comunes, como -p 123,456,789. Los ID de proceso también se pueden excluir con un ^, como en 123, ^ 456, que excluiría específicamente el PID 456. -PAG desactiva la conversión de números de puerto a nombres de puerto, acelerando la salida. -norte desactiva la conversión de números de red a nombres de host. Cuando se utiliza con -PAG Por encima, puede acelerar significativamente la salida de lsof. -tu usuario Solo devuelve los comandos propiedad del usuario nombrado. Al igual que netstat, ver algunos ejemplos de lsof ayudará a practicar nuestra comprensión. lsof -nP [email protected]: 513
Este comando de aspecto complejo mostrará una lista de 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 ESCUCHA. 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 que ha iniciado sesión actualmente. Este comando es un poco diferente de los otros, por lo que lo desglosaremos en detalle. La careta 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 que ha iniciado sesión actualmente ejecutando quién soy dentro del comando lsof, rodeado por $() Permitir que lsof acceda a su salida como texto. Ejecutar con sudo te permite ver tareas que no te pertenecen. Ejecutar este comando sin sudo devolverá una lista vacía. Otros comandos de red de terminales que pueden ser de interés para examinar su red incluyen arp, ping e ipconfig. Acceso a netstat a través de Network Utility
Complementando netstat con lsof
lsof banderas y opciones
lsof ejemplos
Otros comandos de redes