Я пытаюсь определить где подключение к внешнему хосту через определенный порт 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-адресов и портов, и это бесплатно.