我正在尝试确定在哪里使用特定 TCP 端口与外部主机的连接被阻止。Windows 版 Traceroute 仅使用 ICMP,而 telnet 只会告诉我端口是被阻止了,但不知道在哪里。有谁知道有类似于 traceroute 的 Windows 实用程序可以实现这一点吗?
答案1
您可以使用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)
如果你对图形工具感兴趣,你可以使用禅地图,它还根据 traceroute 输出显示拓扑图。
答案2
答案3
由于 Windows 会忽略非标准 TTL 请求,我不确定 nmap --traceroute 是否能在 Windows 上正常工作。我刚得到一条形状奇怪的两跳路径,到达距离大约 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
如果我发现一些适合目的但尚未提及的东西,我会回复。