Назад | Перейти на главную страницу

Эквивалент traceroute TCP для Windows

Я пытаюсь определить где подключение к внешнему хосту через определенный порт TCP блокируется. Traceroute для Windows использует только ICMP, а telnet сообщит мне только, что порт является заблокирован и не где. Кто-нибудь знает об утилите Windows, похожей на traceroute, которая этого добьется?

Ты можешь использовать nmap 5.0 с участием --traceroute вариант. Вы также получите бесплатно сканирование портов :).

Если вы хотите протестировать конкретный порт, вы можете использовать -p port вариант. (Вы также должны использовать параметр -Pn, чтобы Nmap не пытался сначала выполнить обычную проверку ICMP). Это пример:

$ sudo nmap -Pn --traceroute -p 8000 destination.com
PORT     STATE SERVICE
8000/tcp open  http-alt

TRACEROUTE (using port 443/tcp)
HOP RTT  ADDRESS
1   0.30 origin.com (192.168.100.1)
2   0.26 10.3.0.4
3   0.42 10.1.1.253
4   1.00 gateway1.com (33.33.33.33)
5   2.18 gateway2.com (66.66.66.66)
6   ...
7   1.96 gateway3.com (99.99.99.99)
8   ...
9   8.28 destination.com (111.111.111.111)

Если вас интересует графический инструмент, вы можете использовать zenmap, который также отображает карты топологии на основе выходных данных traceroute.

Scapy имеет функцию трассировки tcp, описанную в этом Scapy учебник. Scapy можно установить в Windows, вот инструкции. Я не уверен, что его функция доступна в версии для Windows, но может быть.

Это поможет узнать о Python или, по крайней мере, об OO (объектно-ориентированном) программировании, но вам это может не понадобиться только для того, чтобы следовать руководству, на которое я ссылался. Скапи также предполагает, что у вас есть базовое понимание модели OSI.

Вы можете найти ряд ссылок в Google.

Реализация Linux на трассировка возможность использовать протокол TCP и заменить старую реализацию на многих дистрибутивах. Просто используйте -T флаг в этих системах.

На Mac -P TCP делает свою работу.

Исторически было разработано несколько специальных инструментов; среди других ссылок есть простой скрипт python, который можно использовать также с указанием порта, который нужно исследовать: tcptraceroute.py а одним из самых популярных является tcptraceroute пользователя Michael Toren.

Я не уверен, что nmap --traceroute будет правильно работать в Windows из-за того, что Windows игнорирует запросы на нестандартные TTL. Я просто получаю путь из двух переходов странной формы к чему-то, что находится на расстоянии 10-20 прыжков:

c:\Program Files (x86)\Nmap>nmap -Pn --traceroute -p 443 66.98.200.8

Starting Nmap 6.01 ( http://nmap.org ) at 2012-08-27 18:52 GMT Daylight Time
Nmap scan report for live.sagepay.com (195.170.169.9)
Host is up (0.21s latency).
PORT    STATE SERVICE
443/tcp open  https

TRACEROUTE (using port 443/tcp)
HOP RTT      ADDRESS
1   31.00 ms 192.168.192.2
2   62.00 ms 66.98.200.8

Я отправлю ответ, если найду что-то подходящее для цели, о которой еще не упоминалось.

Я не знаю ни одного инструмента traceroute для Windows, который позволяет вам определять порт. Протокол ICMP разработан для такого рода диагностики маршрутов; других протоколов нет. Вполне вероятно, что, если сам хост не отказывает в соединении, где-то на маршруте есть брандмауэр, который просто отбрасывает пакеты, не возвращая никакой другой информации источнику, и в этом случае никакая утилита не будет работать в вашей ситуации.

Вы можете попробовать загореться Wireshark, а затем подключитесь к желаемому порту через Telnet с целевой системой. Вы мощь (но, вероятно, не получит) TCP_RESET или DEST_UNREACH или что-то в ответ от брандмауэра, блокирующего связь, но это маловероятно. В конце концов, вам нужно поговорить с сетевыми людьми, которые могут отслеживать маршрут и просматривать наборы правил межсетевых экранов на этом пути.

Удачи.

Есть пара альтернатив Windows любимому UNIX LFT.

К сожалению, ни один из них не является бесплатным. Но они довольно хороши.

К сожалению, если вы используете WinXP SP2 ~, у вас могут возникнуть проблемы с выполнением трассировки TCP. Это связано с удалением поддержки сырых сокетов.

Попробуйте NETSCAN http://www.softperfect.com/products/networkscanner Он делает больше, просто сканирует одно устройство, вы можете заставить его проверять диапазон IP-адресов и портов, и это бесплатно.