Traceroute 有效但 nc 失败 - 我的端口在哪里被阻止?

Traceroute 有效但 nc 失败 - 我的端口在哪里被阻止?

我正在尝试对两个已对等连接的 Azure VNET 进行故障排除。我们将它们称为 VNET A 和 B。VNET A 中的 VM 在不同端口上运行着多个服务。我正尝试从 VNET B 中的 VM 访问它们。

我观察到以下行为:

nc -vz vm-in-host-a.something.com 11294
Connection to vm-in-hosta.something.com 11294 port [tcp/*] succeeded!

nc -vz vm-in-host-a.something.com 11291
nc: connect to vm-in-host-a.something.com 11291 (tcp) timed out: Operation now in progress
nc: connect to vm-in-host-a.something.com port 11291 (tcp) timed out: Operation now in progress
nc: connect to vm-in-host-a.something.com 11291 (tcp) timed out: Operation now in progress

接下来我尝试以下操作:

usr/sbin/traceroute -I -4 -p 11294 vm-in-host-a.something.com
traceroute to vm-in-host-a.something.com (10.225.16.6), 30 hops max, 60 byte packets
 1  * * *
 2  10.225.16.6 (10.225.16.6)  150.447 ms  150.485 ms  150.363 ms

最后,以下内容:

/usr/sbin/traceroute -I -4 -p 11291 vm-in-host-a.something.com
traceroute to vm-in-host-a.something.com (10.225.16.6), 30 hops max, 60 byte packets
 1  * * *
 2  10.225.16.6 (10.225.16.6)  213.935 ms  213.760 ms  213.609 ms

为什么 nc 会失败而 traceroute 会成功?有没有办法检查这个端口到底被阻止了?它是在 VNET A 还是 B 上被阻止,或者到底在哪个点被阻止?

答案1

您正在使用 ICMP 跟踪(通过指定-I交换机),并且根据traceroute 手册页-p本例中的选项

指定初始 icmp 序列值(每次探测也会增加)。

因此traceroute它不会连接到您认为的端口,而只是发出 ICMP 探测。要使用 TCP 端口进行扫描,您应该使用开关-T而不是-I

相关内容