Hoy aprendemos algunos comandos de red para usar en la terminal de MAC, esto nos viene bien para resolver problemas de conexión a Internet.
Tabla de contenidos
Como saber la IP de la terminal en MAC y mucho más…
Creo que lo primero que tenemos aprender cuando hablamos de redes en MAC, es identificar nuestra dirección IP, para ello hay muchos comandos.
Dependiendo del Mac que tengamos, este puede tener una o más interfaces de red (ethernet, WiFi, etc.) tanto físicas como virtuales. Por ejemplo, si nuestro iMac esta conectado a una red Wi-Fi y a su vez tiene conectado el cable Ethernet, el iMac tendrá dos direcciones IP distintas.
- La interfaz Wi-Fi tiene la dirección IP: 192.168.120.31
- La interfaz ethernet tiene la dirección IP: 192.168.120.14
Sabiendo estos datos, veremos unos cuantos ejemplos con distintos comandos para saber la dirección IP en un MAC, a través de la linea de comandos.
Comando ifconfig
El primer comando y que es utilizado en otros sistemas derivados de Unix, es ifconfig, este comando nos sirve para saber la dirección IP de nuestro MAC.
ifconfig
Con este comando nos puede aparecer mucha información, ya que muestra todas las interfaces activas/inactivas con todos los datos. Además de la dirección IP, también aparecen otros datos como la máscara de red, dirección MAC…
Para filtrar las interfaces activas, ejecutamos el comando ifconfig + la tubería pcregrep. Si te da un error al ejecutar el siguiente comando, significa que no tienes instalado HomeBrew, te recomiendo que leas el post donde te explico cómo instalar todo!
ifconfig | pcregrep -M -o '^[^\t:]+:([^\n]|\n\t)*status: active'
Como vemos, tenemos tres interfaces. Lo que sale a la izquierda son los nombres de las interfaces de red:
- en0 (Wi-Fi)
- awdl0 (Interfaz punto a punto del AirDrop)
- en7 (adaptador usb-c a ethernet)
Por lo general en0 y en1 suelen ser las interfaces físicas de la interfaz ethernet y Wi-Fi, en mi caso yo uso un adaptador por lo que se le ha asignado el en7 y en0 es la conexión Wi-Fi.
Con este comando, tenemos un poco dificil el identificar si la interfaz en0 es Wi-Fi o Ethernet, para ello nos apoyaremos en otro comando, networksetup.
networksetup -listallhardwareports
Con dicho comando nos muestra un listado de las interfaces con varios datos:
- Hadware port: Identificador de hardware
- Device: Nombre del dispositivo o interfaz para el sistema.
- Ethernet Address: Dirección MAC de la interfaz
Sabiendo todo esto, podemos decir que, usando el comando ifconfig + networksetup, podemos identificar que dirección IP tiene cada interfaz del MAC.
Comando networksetup
networksetup es un comando que muy extenso, por ejemplo, aparte de saber que IP tiene cada interfaz, puedes cambiar la prioridad , y mucho más…
Bueno ya sabemos que para listar las interfaces de red del MAC usamos:
networksetup -listallhardwareports
Ahora para saber datos de red de una interfaz específica ejecutamos lo siguiente:
networksetup -getinfo HardwarePort
Por ejemplo, para saber los la dirección IP, la máscara de red entre otros de la Wi-Fi (ya sabiendo su Hardware Port), ejecutamos:
networksetup -getinfo Wi-Fi
Comando scutil
El último comando para saber la dirección IP del mac a través de la terminal, es scutil. Ejecutamos lo siguiente:
scutil --nwi
Hemos aprendido muchas formas de averiguar la dirección IP, identificar la interfaz como tal. y… ¡¿Para qué rayos necesitamos saber esto?!
A nivel técnico viene bien para solucionar problemas de red, sabiendo que la relación de interfaz-dirección IP, podemos activar/desactivar la interfaz o averiguar que dirección IP y otros datos de red nos proporciona una interfaz virtual de OpenVPN, WireGuard, etc.
Comando ping en MAC
Un comando muy simple pero nos ayuda a verificar si tenemos conectividad con otro dispositivo de la red (Router, Switch, ordenador, impresora, etc.), es el comando ping. La estructura del comando es:
ping nombreHost_o_direccionIP
Por ejemplo, queremos saber si tenemos conectividad con nuestro router, hacemos un ping a la IP del Router:
Por defecto, el comando ping lo que hace es:
- Enviar paquetes (64 bytes) al destinatario (192.168.120.1) de forma permanente.
- Además nos muestra el número de secuencia/ sequence number (seq0, seq1, seq2, seq3), este número se utiliza para determinar si se ha perdido un paquete en el proceso de envio y recepción
- También se muestra el TTL (Time To Live) este número nos indica el número máximo de saltos permitidos antes de que se descarte el paquete.
- Al final de la cada línea se muestra los ms (milisegundos), básicamente es el tiempo que se ha tardado el paquete desde que sale de nuestro ordenador, llega al destinatario y vuelve hasta nosotros. Los ms es una medida de la velocidad y latencia de la conexión de red, a más alto es el ping (ms) peor es nuestra conexión.
Al final de la imagen anterior, nos indica que se han enviado 6 paquete, se han recibido 6, es decir no se ha perdido ningún paquete.
Esto significa que tenemos conectividad con el Router, ya que le estamos preguntando, oye, ¿estas ahi? y el router nos responde que sí.
El comando ping tiene muchas opciones, una opción conocida es limitar los paquetes que envias, con la opción -c. En este ejemplo, estamos limitando a 4 paquetes.
ping nombreHost_o_direccionIP -c4
¿Qué pasa si hacemos ping a una ordenador pero nos aparece esto? La imagen nos indica no nos esta respondiendo el destinatario, esto puede ser por por muchos factores: problema de red, un firewall… ahora toca averiguar el porqué…
El comando ping también nos puede ayudar a resolver problemas de DNS, al menos a un nivel básico. Muchas veces hay clientes que dicen que no tiene conexión a Internet pero si la tiene pero el problema esta en los DNS, si haces el siguiente comando:
ping 8.8.8.8
Con este comando estas preguntando a una IP de google, ¿estas ahí? Si te responde es que tienes Internet
Ahora… si haces ping a google.com o youtube.com u otra página que tu quieras y no recibes respuesta, es que tienes problemas con los DNS. Los DNS ayudan a los ordenadores a traducir un nombre a dirección IP, por lo que si esto falla no funciona la traducción. La solución sería cambiar o revisar los servidores DNS configurados en tu equipo.
Podrías poner una de Google 8.8.8.8 o una de CloudFlare 1.1.1.1
Espero que con todo esto entiendas algo más de redes, sin duda ping es un gran comando pero para resolver nombres de DNS a un nivel más alto, usamos otro comando, NSLOOKUP.
Comando nslookup en MAC
El comando nslookup, se utiliza para realizar consultas de DNS (Domain Name System) y obtener información sobre la resolución de nombres de dominio.
Para entender este comando se necesita unos conocimiento básicos de redes, si quieres que haga un vídeo en Youtube, puedes dejarmelo en los comentarios 😉
La estructura del comando puede variar muchisimo, algo básico para resolver la dicción IP sabiendo el nombre de dominio o viceversa es:
nslookup nombreDominio_o_direccionIP
Para saber el registro MX del dominio labsmac.es:
Este comando se merece un post exclusivo que tendré que preparlo, con esto solo quería que supieses que existe.
Comando NC netcat en MAC
El comando nc, nos permite comprobar puertos abiertos de un host, tengo un post específico para ello, te recomiendo que te pases por aquí, ya que hay más ejemplos.
Te dejo la estructura básica del comando
nc -zv direcciónIP_o_NombreDelEquipo NúmeroDePuerto
Aquí comprobamos si podemos llegar a puerto 445 de un equipo Windows llamado PC-RODOLFO.LOCAL
nc -zv PC-RODOLFO.LOCAL 445
Comando tracert en MAC
Los paquetes que salen de nuestro ordenador van atravesando Internet por diferentes rutas, siempre intentando llegar de la forma más corta posible al destino. El comando traceroute rastrea la ruta tomada por los paquetes de datos hasta un destino. Por ejemplo:
Este comando nos mostrará los saltos (hop) y los tiempos de respuesta en el camino hacia el destino, lo cual es útil para diagnosticar problemas de red y encontrar cuellos de botella.
- En la primera columna, se muestra el número de salto, en este caso se han dado 15 saltos hasta llegar al destino.
- La segunda columna es el nombre-host y dirección IP del nodo atravesado, estos pueden ser cortafuegos, routers, switches. Si en esta columna se muestran asteriscos (*), significa que dichos nodos pueden estar configurados para bloquear o no responder paquetes de traceourte.
Traceroute es comando que se le puede dedicar un libro entero xD
Eliminar la Caché DNS
Limpiar la caché DNS puede resolver algunos problemas relacionados con la resolución de nombres de dominio.
Cuando visitas un sitio web, tu ordenador consulta los servidores DNS para traducir el nombre de dominio en una dirección IP. Si la caché DNS contiene una entrada válida para ese dominio, se utiliza la información almacenada en caché en lugar de realizar una nueva consulta al servidor DNS. Esto acelera el proceso de acceso al sitio web.
Sin embargo, en algunos casos, la información almacenada en caché puede estar desactualizada o incorrecta. Esto puede suceder si el sitio web ha cambiado de dirección IP recientemente o si ha habido algún problema con los servidores DNS. En tales situaciones, limpiar la caché DNS puede ayudar a resolver el problema, ya que obliga a tu computadora a realizar consultas frescas y obtener la información DNS más actualizada.
Para eliminar o limpiar la caché DNS en MAC, cambia mucho en función del sistema operativo.
Para MacOS Ventura 13, Monterey 12 y Big Sur 11. Ejecutamos:
sudo dscacheutil -flushcache; sudo killall -HUP mDNSResponder
Para MacOS Catalina 10.15, Mojave 10.14, High Sierra 10.13, Sierra 10.12 y Capitan 10.11. Ejecutamos:
sudo killall -HUP mDNSResponder
Comando curl en MAC
Curl es una herramienta muy útil para realizar solicitudes y recibir respuestas desde y hacia servidores en la web. Capaz de interactuar con varios protocolos de red como LDAP, SFTP, HTTP, HTTPS, FTP, SMTP, entre otros
Podemos descargar contenido desde la terminal:
curl www.labsmac.es/archivo --output nombrearchivo.extension
Cómo comprobar una conexión a una página Web. Además de datos adicionales del servidor. Por ejemplo, que software de servidor http está sirviendo el contenido….
curl labsmac.es -I
Bueno eso es todo chic@, aqui acabamos el post de, comandos de red en la Terminal de MAC, espero les sea útil. Puede que amplie el post con más comandos o quizá haga un vídeo. Nos vemos!
para cuando blog de Comando nslookup en MAC
Buenas! gracias por comentar, lo tendré en cuenta ya que me parece muy interesante este tema 😀
Gracias bro atento a mas cursos que saques. Gracias por tu tiempo y esfuerzo se te agradece, estoy aprendiendo contigo.
Esta excelente esta info amigo; genial se agradece.
Gracias por comentar 😉