traceroute TCP equivalente para Windows [cerrado]


23

Estoy tratando de determinar dónde se bloquea la conectividad a un host externo utilizando un puerto TCP específico. Traceroute para Windows solo usa ICMP, y telnet solo me dirá que el puerto está bloqueado y no dónde. ¿Alguien sabe de una utilidad de Windows similar a traceroute que logre esto?

Respuestas:


29

Se puede usar nmap 5.0con --tracerouteopción. También obtendrás un portscan gratis :).

Si desea probar un puerto específico, puede usar la -p portopción. (También debe usar la opción -Pn para que nmap no intente hacer una sonda ICMP normal primero). Esto es un ejemplo:

$ 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)

Si está interesado en una herramienta gráfica, puede usar zenmap , que también muestra mapas de topología basados ​​en la salida de traceroute.

mapas de topología


2
Cuando ejecuto el comando anterior en mi, nmapen realidad hace un trazado de ruta ICMP. También es extraño, especifica el puerto 8000, pero nmapestá utilizando el puerto 443 para el trazado de ruta real. ¿Por qué?
kojiro

2

Scapy tiene una función de ruta de rastreo tcp descrita en este tutorial de Scapy . Scapy se puede instalar en Windows, aquí están las instrucciones . No estoy seguro de que su función esté disponible en la versión de Windows, pero podría estarlo.

Será útil conocer Python, o al menos algunos conocimientos de programación OO (orientada a objetos), pero es posible que no lo necesite solo para seguir el tutorial al que me vinculé. Scapy también asume que tienes una comprensión básica del modelo OSI, creo.


nota: la función Scacer Traceroute está disponible en Windows.
Maxwell

1

No estoy seguro de si nmap --traceroute funcionará correctamente en Windows debido a que Windows ignora las solicitudes de TTL no estándar. Acabo de obtener un camino de dos saltos de forma extraña a algo que está a unos 10-20 saltos de distancia:

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

Volveré a publicar si encuentro algo adecuado para el propósito que aún no se ha mencionado.


Un sniffer debería decirte lo que está sucediendo. Mi conjetura es que algún enrutador / puerta de enlace intermedio intenta ser un Smart-Aleck y maneja los paquetes de una manera inusual.
ivan_pozdeev

1

Puede encontrar una serie de enlaces googleing.

Una implementación de Linux en traceroute capaz de utilizar el protocolo TCP y haber reemplazado la implementación anterior en muchas distribuciones. Simplemente use la -Tbandera en esos sistemas.

En Mac -P TCPhace el trabajo.

Históricamente se desarrollaron varias herramientas ad hoc; Entre las otras referencias hay un script de Python simple que se puede usar también especificando el puerto que uno necesita probar : tcptraceroute.py, mientras que uno de los más populares es tcptraceroute de Michael Toren.


1
La página de Wikipedia ha sido eliminada.
Scott Munro

borrado aquí también, tnx
drAlberT

El enlace a tcptraceroute por Michael Toren está muerto
Tanner

0

No conozco ninguna herramienta de traceroute para Windows que le permita definir el puerto. El protocolo ICMP está diseñado para este tipo de diagnóstico de ruta; otros protocolos no lo son. Es probable que, si el host mismo no rechaza la conexión, en algún lugar de la ruta hay un firewall que simplemente elimina los paquetes sin devolver ninguna otra información a la fuente, en cuyo caso ninguna utilidad funcionaría para su situación.

Podría intentar encender Wireshark y luego hacer telnet en el puerto deseado al sistema de destino. Es posible que (pero probablemente no) recupere un TCP_RESETo DEST_UNREACHalgo de cualquier firewall que esté bloqueando las comunicaciones, pero esto es poco probable. En última instancia, debe hablar con las personas de la red que pueden rastrear la ruta y observar los conjuntos de reglas de firewalls en el camino.

Buena suerte.


0

Hay un par de alternativas de Windows al LFT favorito de UNIX .

Lamentablemente, ninguno de los que vienen a la mente son gratuitos. Pero son bastante buenos.

Desafortunadamente, si está utilizando WinXP SP2 ~, entonces puede tener problemas para realizar cualquier rastreo TCP. Esto se debe a la eliminación del soporte de socket sin procesar.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.