Я отслеживаю какой-то сервер между tracert (Windows) и traceroute (linux) в одной сети.
Но вывод другой.
tracert может отслеживать целевой сервер.
Но traceroute не может. Выходные данные traceroute приведены ниже (некоторые звездочки опущены).
traceroute to xxx.com (112.125.57.195), 64 hops max, 52 byte packets
1 192.168.1.1 (192.168.1.1) 1.347 ms 0.729 ms 1.083 ms
2 113.109.124.1 (113.109.124.1) 6.519 ms 5.903 ms 6.368 ms
3 183.56.38.137 (183.56.38.137) 6.094 ms 37.891 ms 5.314 ms
4 58.61.243.129 (58.61.243.129) 7.002 ms 8.967 ms 7.673 ms
5 61.144.3.22 (61.144.3.22) 6.169 ms 6.147 ms 5.359 ms
6 202.97.34.117 (202.97.34.117) 40.194 ms 532.342 ms 536.089 ms
7 220.181.16.54 (220.181.16.54) 578.522 ms 586.950 ms 627.117 ms
8 220.181.70.150 (220.181.70.150) 607.408 ms 681.635 ms 671.447 ms
9 182.92.255.228 (182.92.255.228) 760.188 ms 766.492 ms 399.930 ms
10 * * *
11 * * *
Это не может не отследить целевой сервер. И весь вывод - звездочка.
Большинство разновидностей traceroute в * NIX (операционные системы) по умолчанию отправляют пакеты UDP (хотя обычно есть возможность изменить это), Windows по умолчанию использует эхо-запросы ICMP.
Разница между tracert (windows) и traceroute (linux) заключается в следующем:
tracert (windows) будет использовать только эхо-запросы ICMP.
traceroute (linux) [и несколько зависит от дистрибутива linux] по умолчанию для эхо-запросов UDP.
Оба решения очень старые и, что удивительно, работали очень долгое время, потому что на протяжении большей части истории Интернета многие части Интернета все еще пропускали оба типа трафика без его фильтрации. Однако с течением времени все больше и больше маршрутизаторов основного трафика начали фильтровать эти «эхо-запросы». (Для получения дополнительной информации об эхо-запросах начните здесь: https://en.wikipedia.org/wiki/Echo_Protocol)
TCP Traceroute использует альтернативу эхо-запросам ICMP или UDP, поскольку он использует пакеты TCP SYN, которые лучше проходят через современные межсетевые экраны.
TCP Traceroute on Windows And Linux
http://simulatedsimian.github.io/tracetcp.html
https://github.com/SimulatedSimian/tracetcp/releases
и для описания того, как это работает:
https://support.logicboxes.com/helpdesk/index.php?/Knowledgebase/Article/View/11/37/using-tcp-traceroute-on-windows-and-linux
А вот копия одного из простых / типичных примеров использования:
C:\tracetcp>tracetcp www.redhat.com:443 -h 3
Tracing route to 184.85.48.112 [a184-85-48-112.deploy.akamaitechnologies.com] on
port 443
Over a maximum of 30 hops.
3 32 ms 50 ms 56 ms 172.20.16.65
4 34 ms 14 ms 33 ms 172.26.16.1
5 503 ms 14 ms 68 ms 172.20.7.34
6 43 ms 170 ms 25 ms 203.117.35.9
7 28 ms 86 ms 26 ms 203.117.34.2
8 216 ms 168 ms 99 ms 203.117.34.14
9 * * * Request timed out.
10 Destination Reached in 211 ms. Connection established to 184.85.48.112
Trace Complete.
Вы ДОЛЖНЫ установить библиотеку winpcap, чтобы эта версия работала. tracetcp был протестирован с версиями 3. * и 4. * этой библиотеки. (Поскольку WinXP SP2 удалил необработанные сокеты.) Но если вы работаете в сети, вы, вероятно, уже установили winpcap и wirehark.