TCP-эквивалент traceroute для Windows [закрыто]


23

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

Ответы:


29

Вы можете использовать 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 , который также отображает карты топологии на основе результатов трассировки.

топологические карты


2
Когда я запускаю вышеупомянутую команду на моем компьютере, nmapона фактически выполняет трассировку ICMP. Также странно, вы указываете порт 8000, но nmapиспользуете порт 443 для фактической трассировки. Зачем?
Кодзиро

2

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

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


примечание: функция Scouty traceroute доступна в Windows.
Максвелл

1

Я не уверен, что 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

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


Сниффер должен сказать вам, что происходит. Я предполагаю, что какой-то промежуточный маршрутизатор / шлюз пытается быть умным, и обрабатывает пакеты необычным способом.
ivan_pozdeev

1

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

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

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

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


1
Страница Википедии была удалена.
Скотт Манро

здесь тоже удалено, tnx
drAlberT

Ссылка на tcptraceroute Майкла Торена мертва
Таннер

0

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

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

Удачи.


0

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

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

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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.