Хотите узнать, как проверить путь данных до нужного сайта или сервера с помощью Linux? Один из самых простых и полезных инструментов — это команда traceroute.
В этой статье мы расскажем, что такое traceroute, как он работает, и представим пошаговые примеры использования. Это поможет вам понять, как диагностировать сетевые проблемы и узнать, через какие серверы проходят ваши данные.
Что такое traceroute и зачем он нужен?
traceroute — это команда в Linux, которая показывает маршрут, по которому проходят ваши данные до определённого сервера в интернете. Она показывает список «узлов» или «прыжков» (hops), через которые проходят ваши пакеты, чтобы добраться до нужного адреса.
Почему это полезно?
- Проверить задержки и скорость соединения
- Выяснить, где возникают проблемы с доступом
- Узнать, какие серверы или страны участвуют в передаче данных
Как работает команда traceroute?
Когда вы вводите команду traceroute, она посылает серию небольших запросов (обычно с разными таймаутами и TTL — время жизни пакета). Каждый сервер или маршрутизатор, через который проходят ваши данные, снижает TTL и отвечает, если он последний по пути или если задержка превышена. Эти ответы позволяют системе определить адрес каждого «узла» на маршруте.
Обратите внимание: traceroute использует протокол ICMP или UDP-запросы, чтобы запросить ответ от каждого промежуточного маршрутизатора, что позволяет ему определить их адреса и задержки.
Простые примеры использования traceroute в Linux
- Пример 1. Простая проверка маршрута по домену
- Пример 2. Проверка маршрута по IP-адресу
- Пример 3. Ограничение количества прыжков
- Пример 4. Увеличение времени ожидания
- Что означают результаты traceroute?
- Советы и рекомендации
Имейте в виду, что traceroute обычно не входит в предустановленные программы. Если вам сначала нужно установить данную утилиту, вам помогут наши статьи по установке traceroute на Ubuntu и CentOS.
Пример 1. Простая проверка маршрута по домену
Один из двух простейших способов использования traceroute — по доменному имени, например:
[root@waky practice]# traceroute google.com
traceroute to google.com (142.251.40.174), 30 hops max, 60 byte packets
1 _gateway (192.168.0.1) 0.898 ms 0.365 ms 0.365 ms
2 101.192.38.1 (101.192.38.1 ) 1.326 ms 1.317 ms 1.331 ms
3 10.222.2.1 (10.222.2.1) 1.426 ms 2.077 ms 10.248.0.2 (10.248.0.2) 2.012 ms
4 156.131.192.148 (156.131.192.148) 2.013 ms 156.131.192.149(176.211.92.122) 2.037 ms 156.131.192.148 (156.131.192.148) 1.699 ms
5 185.140.148.155 (185.140.148.155) 112.734 ms 112.115 ms 113.082 ms
6 * 72.14.209.89 (72.14.209.89) 109.521 ms 112.585 ms
7 * * *
8 108.170.225.20 (108.170.225.20) 114.323 ms 108.170.225.36 (108.170.225.36) 109.625 ms 108.945 ms
9 209.85.143.20 (209.85.143.20) 108.955 ms * *
10 142.250.238.12 (142.250.238.12) 129.568 ms 142.250.238.14 (142.250.238.14) 136.994 ms 132.854 ms
11 216.239.63.57 (216.239.63.57) 141.520 ms 216.239.63.63 (216.239.63.63) 145.742 ms 141.227 ms
12 192.178.80.79 (192.178.80.79) 225.488 ms 226.873 ms 192.178.80.59 (192.178.80.59) 224.398 ms
13 142.250.211.188 (142.250.211.188) 219.140 ms 142.251.226.92 (142.251.226.92) 220.519 ms 224.615 ms
14 142.251.66.21 (142.251.66.21) 222.065 ms 142.251.69.26 (142.251.69.26) 224.192 ms 142.251.66.21 (142.251.66.21) 222.477 ms
15 209.85.254.128 (209.85.254.128) 231.983 ms 142.251.68.250 (142.251.68.250) 223.367 ms 226.638 ms
16 192.178.108.19 (192.178.108.19) 227.428 ms 192.178.107.53 (192.178.107.53) 224.503 ms 192.178.108.21 (192.178.108.21) 228.096 ms
17 209.85.253.143 (209.85.253.143) 227.992 ms 226.906 ms 228.712 ms
18 lga25s81-in-f14.1e100.net (142.251.40.174) 226.476 ms 225.667 ms 231.706 ms
[root@waky practice]#
Что даст: маршрут ваших данных до сайта Google с указанием времени отклика каждого прыжка.
Пример 2. Проверка маршрута по IP-адресу
Так же, запросы можно посылать непосредственно по IP:
[root@waky practice]# traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 60 byte packets
1 _gateway (192.168.0.1) 0.608 ms 0.378 ms 0.365 ms
2 101.192.38.1 (101.192.38.1 ) 1.419 ms 0.978 ms 1.035 ms
3 10.222.2.1 (10.222.2.1) 1.701 ms 10.248.0.2 (10.248.0.2) 2.086 ms 10.222.2.1 (10.222.2.1) 1.495 ms
4 156.131.192.149(176.211.92.122) 2.073 ms 156.131.192.148 (156.131.192.148) 1.997 ms 156.131.192.149(176.211.92.122) 4.985 ms
5 185.140.148.153 (185.140.148.153) 109.292 ms 185.140.148.155 (185.140.148.155) 113.445 ms 112.813 ms
6 72.14.209.89 (72.14.209.89) 113.386 ms 110.735 ms 110.098 ms
7 * * *
8 72.14.235.226 (72.14.235.226) 113.113 ms 72.14.233.96 (72.14.233.96) 107.250 ms 110.963 ms
9 209.85.143.20 (209.85.143.20) 106.194 ms 192.178.241.234 (192.178.241.234) 114.170 ms 192.178.243.132 (192.178.243.132) 118.216 ms
10 172.253.66.116 (172.253.66.116) 129.750 ms * *
11 72.14.238.168 (72.14.238.168) 122.892 ms 142.251.238.72 (142.251.238.72) 129.045 ms 74.125.253.109 (74.125.253.109) 123.633 ms
12 216.239.54.201 (216.239.54.201) 124.433 ms 172.253.70.51 (172.253.70.51) 125.440 ms 142.250.236.77 (142.250.236.77) 119.429 ms
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * dns.google (8.8.8.8) 125.961 ms *
[root@waky practice]#
Когда использовать: если у вас есть конкретный IP-адрес, или вам нужен более точный анализ маршрута без учета DNS-имени.
Пример 3. Ограничение количества прыжков
Кроме базового использования, у traceroute есть дополнительные опции, например -m:
[root@waky practice]# traceroute -m 10 google.com
traceroute to google.com (216.58.209.174), 10 hops max, 60 byte packets
1 _gateway (192.168.0.1) 0.895 ms 0.946 ms 0.363 ms
2 101.192.38.1 (101.192.38.1 ) 1.551 ms 1.356 ms 1.490 ms
3 10.248.0.2 (10.248.0.2) 1.983 ms 2.018 ms 1.586 ms
4 156.131.192.149(176.211.92.122) 1.643 ms 2.078 ms 156.131.192.148 (156.131.192.148) 2.205 ms
5 185.140.148.153 (185.140.148.153) 107.998 ms 107.669 ms 107.486 ms
6 * * 72.14.197.6 (72.14.197.6) 114.120 ms
7 * * *
8 72.14.233.96 (72.14.233.96) 106.658 ms 108.170.225.20 (108.170.225.20) 116.188 ms 108.170.225.36 (108.170.225.36) 107.618 ms
9 209.85.143.20 (209.85.143.20) 110.235 ms 109.599 ms 192.178.241.234 (192.178.241.234) 111.823 ms
10 * * *
[root@waky practice]#
Что делает: ограничивает количество «прыжков» (hops) до 10.
Без этой опции нам потребовалось два десятка прыжков, до конечной цели, в этот раз мы закончили проверку на 10 шаге.
Когда это важно:
- Чтобы быстрее получить результат: если маршрут длинный и вас интересует только первая часть
- Для диагностики коротких путей: например, чтобы проверить, не происходит ли задержки на ранних этапах
Пример ситуации: Если вы замечаете, что соединение слишком долгое, и хотите убедиться, что проблема не в удалённых серверах, можно ограничить количество прыжков. Если за 10 прыжков сайт не находится, вероятно, что проблема — дальше или в вашем соединении.
Пример 4. Увеличение времени ожидания
Другая опция, имеющая широкое применение -w:
[root@waky practice]# traceroute -w 5 google.com
traceroute to google.com (142.251.45.174), 30 hops max, 60 byte packets
1 _gateway (192.168.0.1) 0.901 ms 0.558 ms 0.368 ms
2 101.192.38.1 (101.192.38.1 ) 1.491 ms 1.699 ms 1.031 ms
3 10.222.2.1 (10.222.2.1) 1.710 ms 10.248.0.2 (10.248.0.2) 2.079 ms 1.570 ms
4 156.131.192.149(176.211.92.122) 2.063 ms 156.131.192.148 (156.131.192.148) 2.260 ms 156.131.192.149(176.211.92.122) 1.548 ms
5 * 185.140.148.153 (185.140.148.153) 108.187 ms *
6 72.14.197.6 (72.14.197.6) 112.190 ms * 114.356 ms
7 * * *
8 108.170.225.20 (108.170.225.20) 112.115 ms 108.170.225.36 (108.170.225.36) 106.301 ms 105.871 ms
9 * 192.178.243.132 (192.178.243.132) 107.031 ms 209.85.143.20 (209.85.143.20) 106.403 ms
10 142.250.238.12 (142.250.238.12) 127.657 ms 126.934 ms 127.766 ms
11 216.239.63.63 (216.239.63.63) 143.914 ms 216.239.63.57 (216.239.63.57) 143.360 ms 142.365 ms
12 192.178.80.79 (192.178.80.79) 226.839 ms 223.318 ms 227.224 ms
13 142.251.245.82 (142.251.245.82) 217.299 ms 222.684 ms 142.251.226.92 (142.251.226.92) 223.457 ms
14 142.251.66.21 (142.251.66.21) 222.728 ms 142.251.69.190 (142.251.69.190) 222.692 ms 142.251.69.26 (142.251.69.26) 223.888 ms
15 192.178.104.210 (192.178.104.210) 226.607 ms 216.239.58.120 (216.239.58.120) 227.744 ms 192.178.73.218 (192.178.73.218) 224.125 ms
16 192.178.108.21 (192.178.108.21) 231.729 ms 228.860 ms 192.178.108.19 (192.178.108.19) 232.477 ms
17 142.251.60.225 (142.251.60.225) 222.356 ms 226.498 ms 142.251.60.227 (142.251.60.227) 225.003 ms
18 pnlgaa-ar-in-f14.1e100.net (142.251.45.174) 231.814 ms 231.162 ms 231.886 ms
[root@waky practice]#
Что делает: задает время ожидания ответа от каждого узла в секундах.
Когда это нужно:
- Когда маршрутизаторы или серверы медленно отвечают
- Например, если есть задержки или большие нагрузки в сети, стандартное ожидание (обычно 3 сек) может быть недостаточно, и ответ просто не будет получен.
- Для более точных данных: увеличение времени проверки помогает понять реальные задержки, даже если сервер отвечает с задержкой.
Пример ситуации: Если при стандартных настройках ответы не приходят или показывают очень много звездочек (*), попробуйте увеличить таймаут — так вы сможете увидеть более полную картину маршрута.
Что означают результаты traceroute?
Рассмотрим подробнее пример вывода traceroute, и разберем, какую информацию он содержит:
…
5 * 185.140.148.153 (185.140.148.153) 108.187 ms *
6 72.14.197.6 (72.14.197.6) 112.190 ms * 114.356 ms
7 * * *
…
Расшифровка:
Номер прыжка — порядковый номер промежуточного узла.
Адрес узла — IP или доменное имя, через которое проходят ваши данные.
Время ответа (ms) — три замера времени для каждого прыжка, показывающих задержки.
Значение звездочек (*):
Обычно, если на каком-то узле не пришёл ответ за отведённое время (например, 3 секунды), появляется *.
Это нормально — некоторые маршрутизаторы не отвечают на ICMP-запросы, чтобы снизить нагрузку или по другим причинам.
Советы и рекомендации
Если много звездочек, не паникуйте: зачастую это означает, что узел или маршрутизатор не отвечает на запросы, а не обязательно проблема с соединением.
Используйте рутовый доступ или sudo для более точных результатов.
Комбинируйте traceroute с командой ping: она помогает проверить, доступен ли сервер вообще, а traceroute — определить маршрут.
Заключение
traceroute — это мощное средство для диагностики сетевых путей. Зная, как правильно его настроить и интерпретировать результаты, вы сможете понять, где в сети возникают задержки или неполадки.