Traceroute Reference
Полный справочник команды traceroute для Linux, macOS и Windows.
Команда
traceroute <host>Флаги
| Флаг | Описание |
|---|---|
| -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 |
Примеры
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
Как это работает
Traceroute отображает сетевой путь от вашего компьютера к хосту назначения. Он отправляет пакеты с возрастающими значениями TTL (Time To Live) и записывает ответ каждого маршрутизатора, показывая IP-адрес и время отклика на каждом маршруте. Это помогает диагностировать проблемы сетевого подключения и понять пути маршрутизации.
Об этом инструменте
Traceroute — это диагностический инструмент, который отображает сетевой путь, по которому проходят пакеты данных от вашего компьютера к хосту назначения, показывая каждый промежуточный маршрутизатор и время, затраченное на достижение каждого маршрутизатора. Понимание того, как данные передаются через Интернет, критично для администраторов сетей, разработчиков и ИТ-специалистов, которым необходимо диагностировать проблемы подключения, выявлять проблемы с задержками или понимать поведение маршрутизации. Этот справочник Traceroute предоставляет полное руководство команд для систем Linux, macOS и Windows, охватывая синтаксис, параметры и реальные примеры для каждой платформы.
Просто найдите команду traceroute для вашей операционной системы и изучите подробные объяснения доступных параметров—независимо от того, нужно ли вам изменить размер пакета, изменить максимальное количество переходов, установить определённые номера портов или настроить значения времени ожидания. Устраняете ли вы медленное соединение с удалённым сервером, исследуете, почему пакеты отбрасываются на определённом переходе, или документируете топологию сети для планирования инфраструктуры, этот справочник предоставляет практическое руководство без ненужных сложностей.
Сетевые профессионалы, администраторы систем, специалисты по кибербезопасности и инженеры облачных вычислений полагаются на traceroute как часть своего набора диагностических инструментов. Этот инструмент незаменим для всех, кто ответственен за поддержание надёжного сетевого подключения, поддержку production-систем или исследование проблем в многокоординатных сетевых окружениях.
Часто задаваемые вопросы
Реализация кода
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.