Windows的traceroute TCP等效项


23

我试图确定使用特定TCP端口到外部主机的连接在哪里被阻止。Windows的Traceroute仅使用ICMP,而telnet仅告诉我该端口阻止,而不是在哪里。有谁知道一个类似于traceroute的Windows实用程序可以实现这一目标?

Answers:


29

您可以使用nmap 5.0with --traceroute选项。您还将免费获得portcan :)。

如果要测试特定端口,可以使用-p portoption。(您还应该使用-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输出显示拓扑图。

拓扑图


2
当我在上面运行以上命令时nmap,实际上执行了ICMP跟踪路由。同样奇怪的是,您指定端口8000,但nmap将端口443用于实际的路由跟踪。为什么?
kojiro 2014年

2

Scapy具有本Scapy教程中描述的tcp跟踪路由功能。Scapy可以安装在Windows上,这里是说明。我不能肯定他的功能在Windows版本中可用,但可能会。

了解python或至少了解OO(面向对象)编程方面的知识将有所帮助,但仅遵循我链接的教程,您可能不需要它。Scapy还假定您对我认为的OSI模型有基本的了解。


注意:Scapy 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 2014年

1

您可以找到许多Google搜索链接。

traceroute上的Linux实现可以使用TCP协议,并且已经取代了许多发行版上的旧实现。-T在这些系统上简单地使用标志。

在Mac上可以-P TCP完成这项工作。

历史上已经开发了许多临时工具。在其他参考资料中,有一个简单的python脚本可用于指定需要探测的端口:tcptraceroute.py,而最受欢迎的端口之一是Michael Toren的tcptraceroute


1
维基百科页面已被删除。
Scott Munro

tnx在这里也删除了
drAlberT 2013年

Michael Toren到tcptraceroute的链接已死
Tanner

0

我不知道有任何用于Windows的traceroute工具可让您定义端口。ICMP协议旨在用于这种路由诊断。其他协议不是。如果主机本身不拒绝连接,则很可能是该路径上某个地方的防火墙,它只是丢弃数据包而不会将任何其他信息返回给源,在这种情况下,没有实用程序可用于您的情况。

您可以尝试启动Wireshark,然后在所需的端口上远程登录到目标系统。您可能(但可能不会)从阻止防火墙的通信中获得“ TCP_RESET或” DEST_UNREACH或“某物”,但这是不可能的。最终,您需要与网络人员交谈,他们可以跟踪路由并查看防火墙的规则集。

祝好运。


0

UNIX最喜欢的LFT有两种Windows替代方法。

不幸的是,那些想到的人都不是自由的。但是它们非常好。

不幸的是,如果您使用的是WinXP SP2〜,则可能无法执行任何TCP跟踪路由。这是由于删除了原始套接字支持。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.