Я пытаюсь определить где подключение к внешнему хосту с использованием определенного 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, который также отображает карты топологии на основе результатов трассировки.
Scapy имеет функцию трассировки tcp, описанную в этом Учебник Scapy . Scapy может быть установлен на Windows, вот инструкция . Я не уверен, что его функция доступна в версии для Windows, но это может быть.
Это поможет узнать Python или, по крайней мере, некоторые знания о программировании OO (Object-Oriented), но вам может не понадобиться просто следовать учебнику, с которым я связан. Scapy также предполагает, что у вас есть базовые знания. Понимание модели OSI, я думаю.
Я не уверен, что 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
Я отправлю ответное письмо, если найду что-то подходящее для цели, которое еще не было упомянуто.
Вы можете найти ряд ссылок Google.
Реализация Linux на traceroute может использовать TCP протокол и заменила старую реализацию во многих дистрибутивах. Просто используйте -T
флаг в этих системах.
На Mac -P TCP
делает свою работу.
Исторически был разработан ряд специальных инструментов; среди других ссылок есть простой python, который можно использовать, также указывающий порт, который необходимо исследовать: tcptraceroute.py , в то время как один из самых популярных - tcptraceroute Майкл Торен.
Попробуйте NETSCAN http://www.softperfect.com/products/networkscanner Это больше, чем просто сканирование одного устройства, вы можете получить его для проверки диапазона IP-адресов и портов, и это бесплатно.
Я не знаю ни о каком инструменте traceroute для окон, который позволяет вам определять порт. Протокол ICMP разработан для такого рода диагностики маршрута; других протоколов нет. Вполне вероятно, что если сам хост, если не отказывается от соединения, где-то на маршруте находится межсетевой экран, который просто отбрасывает пакеты, не возвращая никакой другой информации источнику, и в этом случае никакая утилита не будет работать в вашей ситуации.
Вы можете попробовать запустить Wireshark , а затем подключиться по телнету на желаемом порту к целевой системе. Вы можете (но, вероятно, не будете) получить TCP_RESET
или DEST_UNREACH
или что-то обратно от любого брандмауэра, блокирующего связь, но это маловероятно. В конечном счете, вам нужно поговорить с сетевыми людьми, которые могут проследить маршрут и посмотреть на пути наборов правил межсетевых экранов.
Удачи.
Есть несколько вариантов Windows любимому UNIX LFT .
К сожалению, ни один из тех, кто приходит на ум, не является бесплатным. Но они довольно хороши.
К сожалению, если вы используете WinXP SP2 ~, то у вас могут возникнуть проблемы с выполнением любой трассировки TCP. Это связано с удалением поддержки необработанных сокетов.