Cómo ejecutar un Traceroute en Windows, Mac y Linux
Un traceroute es una utilidad de diagnóstico de red que mapea la ruta exacta que siguen los paquetes IP desde su máquina hasta un host de destino, registrando cada router intermedio (salto) en el camino y midiendo el tiempo de ida y vuelta (RTT) a cada uno. Es la herramienta más eficaz para aislar si un pico de latencia, pérdida de paquetes o anomalía de enrutamiento se origina en su red local, la infraestructura de su ISP, una red troncal de tránsito o el propio servidor de destino.
Cuando ejecuta un traceroute, su sistema envía una serie de paquetes de sondeo con valores de TTL (Time To Live) que aumentan de forma incremental. Cada router que decrementa el TTL a cero devuelve un mensaje ICMP “Time Exceeded”, revelando su identidad y tiempo de respuesta. Este mecanismo es lo que hace que el traceroute sea fundamentalmente diferente de un simple `ping` — expone la topología de enrutamiento completa, no solo la accesibilidad de extremo a extremo.
Cómo funciona el Traceroute internamente
Comprender la mecánica subyacente evita la mala interpretación de los resultados — un error que incluso los administradores experimentados cometen.
- Windows (`tracert`) envía paquetes ICMP Echo Request de forma predeterminada.
- Linux y macOS (`traceroute`) envían datagramas UDP a puertos de numeración alta (33434+) de forma predeterminada, aunque esto es configurable.
- Cada sondeo se envía tres veces por salto, produciendo tres mediciones RTT por línea.
- Un router que limita la tasa o descarta ICMP/UDP mostrará asteriscos (`* * *`), pero esto no significa necesariamente que la ruta más allá de él esté interrumpida.
Esta diferencia de comportamiento entre sistemas operativos es crítica: un salto que parece no responder en Linux puede responder normalmente en Windows, simplemente porque la ACL del router bloquea UDP pero permite ICMP.
Cómo ejecutar un Traceroute en Windows
Paso 1: Abrir el Símbolo del sistema
Presione `Win + R`, escriba `cmd` y presione Enter. Alternativamente, busque Símbolo del sistema en el menú Inicio. Para entornos donde ICMP está restringido, considere ejecutarlo como Administrador.
Paso 2: Ejecutar el comando
“`
tracert example.com
“`
Reemplace `example.com` con el nombre de dominio o dirección IP de destino. Windows resuelve el nombre de host a una IP antes de enviar el primer sondeo.
Paso 3: Leer la salida
“`
Tracing route to example.com [93.184.216.34] over a maximum of 30 hops:
1 <1 ms <1 ms <1 ms 192.168.0.1
2 10 ms 11 ms 10 ms 10.0.0.1
3 15 ms 16 ms 15 ms isp.gateway.net [203.0.113.1]
4 * * * Request timed out.
5 22 ms 21 ms 23 ms core1.backbone.net [198.51.100.5]
“`
Opciones clave de `tracert` en Windows
| Indicador | Función |
|---|---|
| — | — |
| `-d` | Omite las búsquedas DNS inversas, acelera significativamente la salida |
| `-h <max_hops>` | Establece el número máximo de saltos (predeterminado: 30) |
| `-w <timeout>` | Establece el tiempo de espera en milisegundos por sondeo (predeterminado: 4000 ms) |
| `-4` | Fuerza IPv4 |
| `-6` | Fuerza IPv6 |
Ejemplo con opciones:
“`
tracert -d -h 20 -w 2000 example.com
“`
Consejo profesional: En Windows, `tracert -d` es la forma más rápida de obtener resultados cuando solo le importa el enrutamiento a nivel IP y no los nombres de host. Las búsquedas DNS inversas pueden añadir varios segundos por salto en redes congestionadas.
Cómo ejecutar un Traceroute en macOS
Paso 1: Abrir Terminal
Presione `Command + Space`, escriba Terminal y presione Enter. O navegue a Aplicaciones > Utilidades > Terminal.
Paso 2: Ejecutar el comando
“`
traceroute example.com
“`
macOS incluye `traceroute` preinstalado como parte de su kit de herramientas de red BSD. No se requiere instalación adicional.
Paso 3: Leer la salida
“`
traceroute to example.com (93.184.216.34), 64 hops max, 52 byte packets
1 192.168.0.1 (192.168.0.1) 1.206 ms 0.930 ms 0.799 ms
2 10.0.0.1 (10.0.0.1) 10.123 ms 10.456 ms 10.678 ms
3 isp.gateway.net (203.0.113.1) 15.789 ms 15.012 ms 15.234 ms
“`
Tenga en cuenta que macOS tiene un máximo predeterminado de 64 saltos frente a los 30 de Windows — relevante al rastrear rutas hacia destinos de red geográficamente distantes o complejos.
Opciones clave de `traceroute` en macOS
| Indicador | Función |
|---|---|
| — | — |
| `-n` | Suprime la resolución de nombres de host, muestra solo IPs sin procesar |
| `-q <nqueries>` | Cambia el número de sondeos por salto (predeterminado: 3) |
| `-m <max_ttl>` | Establece el TTL máximo / número de saltos |
| `-w <waittime>` | Tiempo de espera en segundos por sondeo |
| `-I` | Usa ICMP Echo en lugar de UDP (útil cuando UDP está bloqueado) |
| `-T` | Usa sondeos TCP SYN (requiere root; evita muchos firewalls) |
Ejemplo — modo ICMP para evitar el filtrado UDP:
“`
sudo traceroute -I example.com
“`
Ejemplo — modo TCP SYN en el puerto 80 (más compatible con firewalls):
“`
sudo traceroute -T -p 80 example.com
“`
Cómo ejecutar un Traceroute en Linux
Paso 1: Abrir Terminal
Presione `Ctrl + Alt + T` o localice la terminal en su lanzador de aplicaciones.
Paso 2: Instalar `traceroute` si es necesario
En muchas distribuciones Linux mínimas o de nivel servidor, `traceroute` no está instalado de forma predeterminada.
Debian / Ubuntu:
“`
sudo apt-get install traceroute
“`
CentOS / RHEL / AlmaLinux / Rocky Linux:
“`
sudo yum install traceroute
“`
Fedora:
“`
sudo dnf install traceroute
“`
Arch Linux:
“`
sudo pacman -S traceroute
“`
Paso 3: Ejecutar el comando
“`
traceroute example.com
“`
Paso 4: Leer la salida
“`
traceroute to example.com (93.184.216.34), 30 hops max, 60 byte packets
1 192.168.0.1 (192.168.0.1) 0.728 ms 0.457 ms 0.373 ms
2 10.0.0.1 (10.0.0.1) 9.862 ms 9.946 ms 10.123 ms
3 isp.gateway.net (203.0.113.1) 14.987 ms 14.123 ms 15.456 ms
“`
Opciones clave de `traceroute` en Linux
| Indicador | Función |
|---|---|
| — | — |
| `-n` | Deshabilita la resolución DNS inversa |
| `-I` | Envía sondeos ICMP Echo (requiere root) |
| `-T` | Envía sondeos TCP SYN (requiere root) |
| `-U` | Envía sondeos UDP (comportamiento predeterminado) |
| `-p <port>` | Especifica el puerto de destino |
| `-m <max_ttl>` | Número máximo de saltos |
| `-q <nqueries>` | Número de sondeos por salto |
| `-A` | Imprime los números AS (Sistema Autónomo) junto a cada salto |
El indicador `-A` es particularmente potente para diagnosticar problemas de enrutamiento entre AS — muestra qué ISP u operador de red es propietario de cada salto, permitiéndole identificar exactamente dónde un traspaso entre operadores está causando latencia.
“`
traceroute -A example.com
“`
`mtr` — La alternativa superior en Linux
Para diagnósticos continuos o interactivos, `mtr` (Matt’s Traceroute) combina `ping` y `traceroute` en una pantalla que se actualiza continuamente. Es la herramienta preferida entre los ingenieros de red para el análisis de pérdida de paquetes en tiempo real.
“`
sudo apt-get install mtr
mtr example.com
“`
`mtr` acumula estadísticas con el tiempo, haciendo visible la pérdida de paquetes intermitente — algo que un `traceroute` de un solo paso pasará por alto por completo.
Comparación entre plataformas: tracert vs. traceroute
| Característica | Windows (`tracert`) | macOS (`traceroute`) | Linux (`traceroute`) |
|---|---|---|---|
| — | — | — | — |
| Protocolo de sondeo predeterminado | ICMP Echo Request | UDP | UDP |
| Máximo de saltos predeterminado | 30 | 64 | 30 |
| Sondeos predeterminados por salto | 3 | 3 | 3 |
| Tamaño de paquete (predeterminado) | 40 bytes | 52 bytes | 60 bytes |
| Modo ICMP | Predeterminado | Indicador `-I` (root) | Indicador `-I` (root) |
| Modo TCP SYN | No disponible de forma nativa | Indicador `-T` (root) | Indicador `-T` (root) |
| Búsqueda de número AS | No disponible | No disponible | Indicador `-A` |
| Soporte IPv6 | Indicador `-6` | Comando `traceroute6` | Indicador `-6` |
| Integrado en el SO | Sí | Sí | A menudo requiere instalación |
Comprensión de la salida del Traceroute: un análisis técnico
Número de salto
Cada línea representa un router en la ruta. El salto 1 es casi siempre su puerta de enlace predeterminada (router doméstico o switch LAN). El salto 2 es típicamente el primer punto de agregación de su ISP.
Tiempos de respuesta (RTT)
Se muestran tres valores RTT por salto. Los valores saludables generalmente siguen un patrón de aumento gradual a medida que los saltos acumulan distancia geográfica. Un salto repentino de 50+ ms en un salto específico que persiste en todos los saltos posteriores indica un cuello de botella genuino en ese nodo.
Interpretación de `* * *` (Asteriscos)
Los asteriscos significan que el sondeo agotó el tiempo de espera — el router no devolvió una respuesta ICMP dentro de la ventana de espera. Esto no es automáticamente un problema. Muchos routers empresariales y nodos de red troncal dan prioridad baja o descartan silenciosamente los paquetes de sondeo ICMP/UDP por razones de seguridad, mientras continúan reenviando el tráfico con normalidad. Si los saltos después de los asteriscos muestran RTT normales, la ruta está intacta.
Alta latencia en un único salto
Si el salto 7 muestra 200 ms pero el salto 8 muestra 25 ms, la lectura de 200 ms es casi con certeza limitación de tasa ICMP en el router del salto 7 — no un cuello de botella real. El router procesa el sondeo con baja prioridad mientras reenvía el tráfico real a plena velocidad. Evalúe siempre las tendencias de latencia a lo largo de toda la ruta, no los saltos individuales de forma aislada.
Enrutamiento asimétrico
El traceroute solo mapea la ruta de avance. Los paquetes de retorno pueden seguir una ruta completamente diferente. Esto significa que un pico de latencia que observe podría originarse en la ruta de retorno, no en la ruta de avance mostrada. Se necesitan herramientas como `traceroute` en ambas direcciones (desde el origen y desde el destino) para una visibilidad completa.
Bucles de enrutamiento
Si la misma dirección IP aparece en múltiples saltos consecutivos, existe un bucle de enrutamiento. Los paquetes se reenvían indefinidamente entre dos routers hasta que el TTL expira. Esto es una configuración incorrecta y causará un fallo completo de conectividad hacia ese destino.
Escenarios comunes de Traceroute y su significado
Escenario 1: Alta latencia a partir del salto 2
El primer punto de agregación de su ISP está congestionado. Esto está fuera de su control. Documente la salida con marcas de tiempo y contacte a su ISP con evidencia.
Escenario 2: Todos los saltos después del salto 5 muestran `* * *` pero el destino responde al ping
Los routers upstream del destino bloquean los sondeos ICMP. Cambie al modo TCP SYN (`-T -p 443`) para rastrear a través de firewalls.
Escenario 3: Picos de latencia en un salto ubicado en un país inesperado
Su tráfico está siendo enrutado internacionalmente antes de llegar a un destino local — una anomalía de enrutamiento BGP. Esto es común con anycast mal configurado o ISPs con peering deficiente.
Escenario 4: El traceroute se completa pero el sitio web sigue siendo lento
El cuello de botella puede ser del lado del servidor: CPU sobrecargada, respuesta lenta de la aplicación o latencia de la base de datos. El traceroute solo mide el rendimiento a nivel de red. Si está alojando en un VPS y experimenta esto, investigue la utilización de recursos del servidor con `top`, `htop` o `vmstat`.
Escenario 5: El traceroute nunca se completa (se detiene en un salto específico indefinidamente)
Un firewall está descartando sus sondeos y el destino es inaccesible. Confirme con `ping` al destino. Si el ping también falla, el host está caído o bloqueando todo ICMP. Si el ping tiene éxito, solo el protocolo de sondeo está bloqueado — cambie de protocolo.
Traceroute para diagnósticos de servidor y alojamiento
El traceroute es indispensable al diagnosticar problemas de conectividad entre su infraestructura y los usuarios finales o entre servicios. Si está ejecutando aplicaciones en un Servidor Dedicado, un traceroute desde múltiples puntos de observación geográficamente distribuidos revela si la latencia está localizada en una región o ISP específico.
Para entornos de alojamiento web gestionados a través de un panel de control, rastrear rutas hacia la IP de su servidor desde el lado del cliente ayuda a distinguir entre un problema de capa de alojamiento y un problema de tránsito de red. Los administradores que usan VPS con cPanel pueden cruzar los datos del traceroute con los registros de acceso del lado del servidor para obtener una imagen completa de una queja de conectividad.
Al diagnosticar fallos de entrega de correo electrónico o tiempos de espera SMTP, ejecutar un traceroute hacia la IP de su servidor de correo es un primer paso lógico antes de investigar los registros SPF/DKIM. Si utiliza un servicio dedicado de Alojamiento de Correo Electrónico, esto ayuda a confirmar si el problema es a nivel de red o de configuración.
Para cargas de trabajo sensibles a la latencia, como inferencia de aprendizaje automático o canalizaciones de renderizado que se ejecutan en Alojamiento GPU, el traceroute ayuda a verificar que la ruta de red entre su cliente y el nodo GPU está enrutada de forma óptima sin saltos de tránsito inesperados.
Técnicas avanzadas: Traceroute en línea y distribuido
Los traceroutes de un solo punto solo muestran la ruta desde su máquina. Para un análisis de red exhaustivo:
- Servidores Looking Glass: Muchos ISPs e IXPs operan servidores looking glass públicos que le permiten ejecutar traceroutes desde el borde de su red, revelando la ruta desde la perspectiva de un operador.
- BGP.tools / RIPE Atlas: Plataformas de medición distribuida que ejecutan traceroutes desde cientos de puntos de observación globales simultáneamente, exponiendo anomalías de enrutamiento regionales invisibles desde una única ubicación.
- PathPing (Windows): Una herramienta integrada de Windows que combina `ping` y `tracert`, ejecutando sondeos continuos a cada salto y calculando estadísticas de pérdida de paquetes. Ejecutar con: `pathping example.com`
- WinMTR: Un equivalente gráfico de Windows de `mtr`, que proporciona estadísticas de pérdida de paquetes y latencia por salto en tiempo real.
Matriz de decisión práctica: qué herramienta usar
| Situación | Herramienta recomendada |
|---|---|
| — | — |
| Verificación rápida de ruta única en Windows | `tracert -d target` |
| Verificación rápida de ruta única en Linux/macOS | `traceroute -n target` |
| Análisis continuo/en tiempo real de pérdida de paquetes | `mtr target` |
| Destino detrás de firewall que bloquea ICMP/UDP | `traceroute -T -p 443 target` (Linux/macOS) |
| Identificar qué ISP es propietario de cada salto | `traceroute -A target` (Linux) |
| Diagnóstico desde múltiples ubicaciones globales | RIPE Atlas o BGP.tools |
| Estadísticas continuas de pérdida en Windows | `pathping target` |
| Comparación de rutas de avance y retorno | Ejecutar traceroute desde ambos extremos |
Conclusiones técnicas clave
- Use siempre `-n` o `-d` primero para eliminar los retrasos de resolución DNS y obtener resultados sin procesar más rápidamente.
- Un salto que muestra `* * *` no indica una ruta interrumpida — evalúe los saltos que le siguen.
- La latencia en un único salto intermedio es frecuentemente limitación de tasa ICMP, no un cuello de botella real.
- Cambie los protocolos de sondeo (ICMP, UDP, TCP SYN) cuando encuentre tiempos de espera persistentes — los firewalls son selectivos por protocolo.
- Use `mtr` en lugar de `traceroute` para cualquier sesión de diagnóstico más larga que una única verificación.
- El traceroute solo revela la ruta de avance. El enrutamiento asimétrico requiere análisis bidireccional.
- El indicador `-A` en el traceroute de Linux añade anotación de número AS, que es esencial para el análisis de enrutamiento multi-ISP.
- Documente las salidas del traceroute con marcas de tiempo al presentar tickets de soporte al ISP — los operadores requieren estos datos para investigar problemas a nivel BGP.
Preguntas frecuentes
¿Por qué el traceroute muestra `* * *` en algunos saltos pero el destino sigue siendo accesible?
Los routers a lo largo de la ruta están configurados para descartar o limitar la tasa de los mensajes ICMP TTL-exceeded mientras continúan reenviando el tráfico con normalidad. Esta es una política deliberada de seguridad y rendimiento en la mayoría de los routers empresariales y de nivel operador. No indica pérdida de paquetes en la ruta de datos.
¿Cuál es la diferencia entre `tracert` en Windows y `traceroute` en Linux?
La diferencia principal es el protocolo de sondeo predeterminado: `tracert` usa ICMP Echo Requests, mientras que el `traceroute` de Linux/macOS usa datagramas UDP. Esto significa que interactúan de forma diferente con los firewalls y las ACL. El `traceroute` de Linux también admite sondeos TCP SYN y búsquedas de números AS, lo que `tracert` no hace.
¿Cómo ejecuto un traceroute a través de un firewall que bloquea UDP e ICMP?
Use el modo TCP SYN con un puerto que casi con certeza esté abierto en el destino, como el puerto 80 o 443: `sudo traceroute -T -p 443 example.com`. Los sondeos TCP SYN pasan a través de la mayoría de los firewalls con estado porque se asemejan al inicio de una conexión legítima.
¿Qué significa cuando la latencia del traceroute salta repentinamente y permanece alta en todos los saltos restantes?
Un aumento de latencia persistente a partir de un salto específico indica un cuello de botella genuino o un enlace congestionado en ese punto de la ruta. Esto es distinto de un pico en un único salto (que generalmente es limitación de tasa). El aumento sostenido significa que todo el tráfico está siendo retrasado en ese nodo o en el enlace inmediatamente posterior.
¿Puede el traceroute diagnosticar el rendimiento lento de un sitio web?
El traceroute diagnostica únicamente la latencia a nivel de red y los problemas de enrutamiento. Si la ruta de red parece limpia pero el sitio web sigue siendo lento, el problema es del lado del servidor — tiempo de procesamiento de la aplicación, latencia de consultas de base de datos o agotamiento de recursos. Use herramientas de monitoreo del servidor junto con el traceroute para un diagnóstico completo.
