Traceroute Reference
Referencia completa de comando traceroute para Linux, macOS y Windows.
Comando
traceroute <host>Banderas
| Bandera | Descripción |
|---|---|
| -n | Do not resolve hostnames (faster) |
| -m <hops> | Set maximum hops (default: 30) |
| -w <sec> | Wait time per probe (default: 5s) |
| -q <n> | Number of probes per hop (default: 3) |
| -I | Use ICMP ECHO instead of UDP |
| -T | Use TCP SYN (requires root) |
| -p <port> | Destination port for UDP/TCP |
| -i <iface> | Use specified network interface |
| -s <src> | Use specified source address |
| -4 / -6 | Force IPv4 or IPv6 |
Ejemplos
traceroute google.comBasic traceroute to a host
traceroute -n 8.8.8.8Traceroute without DNS resolution
traceroute -m 15 example.comLimit to 15 hops maximum
traceroute -I google.comUse ICMP instead of UDP
sudo traceroute -T -p 80 example.comTCP traceroute on port 80
Cómo funciona
Traceroute asigna la ruta de red desde tu computadora al host de destino. Envía paquetes con valores TTL (Tiempo de Vida) crecientes y registra la respuesta de cada enrutador, mostrando la dirección IP y el tiempo de respuesta en cada salto. Esto ayuda a diagnosticar problemas de conectividad de red y comprender las rutas de enrutamiento.
Acerca de esta herramienta
Traceroute es una herramienta de diagnóstico que mapea la ruta de red que recorren los paquetes de datos desde tu computadora hasta un host de destino, mostrando cada salto de router intermedio y el tiempo que tarda en llegar a cada uno. Entender cómo viajan los datos a través de Internet es crucial para administradores de red, desarrolladores y profesionales de TI que necesitan diagnosticar problemas de conectividad, identificar problemas de latencia o entender el comportamiento del enrutamiento. Esta Referencia de Traceroute proporciona una guía de comandos completa para sistemas Linux, macOS y Windows, cubriendo la sintaxis, opciones y ejemplos del mundo real para cada plataforma.
Simplemente busca el comando traceroute para tu sistema operativo y explora las explicaciones detalladas de las opciones disponibles—ya sea que necesites ajustar el tamaño del paquete, cambiar los saltos máximos, establecer números de puerto específicos o configurar valores de tiempo de espera. Ya sea que estés solucionando problemas de una conexión lenta a un servidor remoto, investigando por qué los paquetes se están descartando en un salto particular, o documentando la topología de red para la planificación de infraestructura, esta referencia proporciona orientación práctica sin complejidad innecesaria.
Los profesionales de red, administradores de sistemas, especialistas en ciberseguridad e ingenieros de nube se basan en traceroute como parte de su conjunto de herramientas de diagnóstico. Esta herramienta es esencial para cualquier persona responsable de mantener una conectividad de red confiable, respaldar sistemas de producción o investigar problemas en entornos de red de múltiples saltos.
Preguntas Frecuentes
Implementación de Código
import subprocess
import platform
import re
def traceroute(host: str, max_hops: int = 30) -> list[dict]:
"""Run traceroute and parse output."""
system = platform.system()
if system == "Windows":
cmd = ["tracert", "-h", str(max_hops), host]
else:
cmd = ["traceroute", "-m", str(max_hops), host]
result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
lines = result.stdout.splitlines()
hops = []
for line in lines[1:]: # skip header
# Parse hop number and RTT values
match = re.match(r"\s*(\d+)\s+(.+)", line)
if match:
hop_num = int(match.group(1))
rest = match.group(2)
times = re.findall(r"([\d.]+)\s*ms", rest)
hostname = re.search(r"([\w.-]+)\s+\(", rest)
hops.append({
"hop": hop_num,
"host": hostname.group(1) if hostname else "*",
"times_ms": [float(t) for t in times],
})
return hops
hops = traceroute("google.com", max_hops=15)
for hop in hops:
avg = sum(hop["times_ms"]) / len(hop["times_ms"]) if hop["times_ms"] else None
avg_str = f"{avg:.1f} ms" if avg else "*"
print(f"{hop['hop']:2d} {hop['host']:<40} {avg_str}")Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.