端口可用性探测工具介绍

不同的操作系统,端口可用性探测所使用的工具也有所不同。
Linux 环境下端口可用性探测工具介绍

traceroute 是几乎所有 Linux 发行版本预装的网络测试工具,用于跟踪 Internet 协议(IP)数据包传送到目标地址时经过的路径。您可以通过 traceroute 工具进行端口可用性探测。

traceroute 通过发送 TCP 数据包向目标端口进行探测,以检测从数据包源到目标服务器的整个链路上相应端口的连通性情况。traceroute 端口可用性探测常见用法如下:

traceroute [-n] -T -p <目标端口号> Host

示例

[root@centos~]#  traceroute -n -T -p 22 223.5.5.5
traceroute to 223.5.5.5 (223.5.5.5), 30 hops max, 60 byte packets
 1  58.96.171.249  0.431 ms  0.538 ms  0.702 ms
 2  10.88.16.29  0.997 ms  1.030 ms 10.88.16.21  1.309 ms
 3  58.96.160.246  0.393 ms  0.390 ms 58.96.160.250  0.423 ms
 4  63.218.56.237  1.110 ms 202.123.74.122  0.440 ms  0.440 ms
 5  63.223.15.90  1.744 ms 63.218.56.237  1.076 ms  1.232 ms
 6  63.223.15.158  1.832 ms 63.223.15.90  1.663 ms 63.223.15.74  1.616 ms
 7  202.97.122.113  2.776 ms 63.223.15.154  1.585 ms  1.606 ms
 8  * * 202.97.122.113  2.537 ms
 9  202.97.61.237  6.856 ms * *
10  * * *
11  * * *
12  * * 119.147.220.222  8.738 ms
13  119.147.220.230  8.248 ms  8.231 ms *
14  * 42.120.242.230  32.305 ms 42.120.242.226  29.877 ms
15  42.120.242.234  11.950 ms 42.120.242.222  23.853 ms 42.120.242.218  29.831 ms
16  42.120.253.2  11.007 ms 42.120.242.234  13.615 ms 42.120.253.2  11.956 ms
17  42.120.253.14  21.578 ms 42.120.253.2  13.236 ms *
18  * * 223.5.5.5  12.070 ms !X

参数说明

-n 直接使用 IP 地址而非主机名称(禁用 DNS 反查)。
-T 通过 TCP 探测。
-p 探测目标端口号。
Host 目标服务器域名或 IP。

更多关于 traceroute 的用法,您可以通过man帮助查阅。
Windows 环境下端口可用性探测工具介绍

Windows 环境下,您可通过 tracetcp 进行端口可用性探测。

tracetcp 同样通过发送 TCP 数据包进行链路探测,以分析是否有链路中间节点对目标端口做了阻断。
下载安装

tracetcp 的使用依赖于 WinPcap library,因此,您需要前往官网下载。

点击此处前往官网下载最新版 tracetcp。或者,您也可以下载附件 v1.0.2 版 tracetcp(可能并非最新版)。

将下载的 tracetcp 相关文件直接解压到 C:\Windows 目录。(如果解压到非系统目录,则需要手工修改系统环境变量,以确保指令可以直接调用)

使用方法

双击打开 tracetcp 应用程序,tracetcp 的常见用法如下:

tracetcp <目标服务器域名或 IP>:<待探测端口号>

示例

C:\ >tracetcp www.aliyun.com:80
Tracing route to 140.205.63.8 on port 80
Over a maximum of 30 hops.
1       3 ms    4 ms    3 ms    30.9.176.1
2       13 ms   3 ms    4 ms    10.64.200.33
3       3 ms    3 ms    2 ms    10.64.1.1
4       4 ms    3 ms    3 ms    42.120.74.4
5       5 ms    4 ms    7 ms    42.120.253.233
6       6 ms    5 ms    7 ms    42.120.247.97
7       8 ms    8 ms    8 ms    42.120.247.97
8       10 ms   10 ms   8 ms    123.56.34.246
9       9 ms    9 ms    11 ms   42.120.243.117
10      *       *       *       Request timed out.
11      Destination Reached in 8 ms. Connection established to 140.205.63.8
Trace Complete.

关于更多 tracetcp 参数说明,您可以通过 tracetcp -? 获取和查看。
端口可用性探测步骤

通常情况下,您可以:

根据前文所述,使用对应工具对目标地址的目标端口进行可用性探测。
排查分析探测结果,确定异常节点。
    通过 ip.taobao.com 等 IP 地址查询网站获取相应节点归属运营商及网络。
    或者提交工单,阿里云将为您向相关运营商反馈问题。

链路测试结果分析简述

异常节点判定方法:如果相关端口在某一跳被阻断,则其后各跳均不会返回数据。据此就可以判定出异常节点。
示例1

C:\>tracetcp www.aliyun.com:135
Tracing route to 115.239.210.27 on port 135
Over a maximum of 30 hops.
1       3 ms    3 ms    3 ms    30.9.176.1
2       4 ms    3 ms    3 ms    10.64.200.33
3       3 ms    3 ms    3 ms    10.64.1.1
4       *       *       *       Request timed out.
5       *       *       *       Request timed out.
6       *       *       *       Request timed out.
7       *       *       *       Request timed out.
8       *       *       *       Request timed out.
9       *       *       *       Request timed out.
10      *       *       *       Request timed out.
11      *       *       *       Request timed out.
12      *       *       *       Request timed out.
13      *       *       *       Request timed out.
14      *       *       *       Request timed out.
15      *       *       *       Request timed out.
16      *       *       *       Request timed out.
17      *       *       *       Request timed out.
18      *       *       *       Request timed out.
19      *       *       *       Request timed out.
20      *       *       *       Request timed out.
21      *       *       *       Request timed out.
22      *       *       *       Request timed out.
23      *       *       *       Request timed out.
24      *       *       *       Request timed out.
25      *       *       *       Request timed out.
26      *       *       *       Request timed out.
27      *       *       *       Request timed out.
28      *       *       *       Request timed out.
29      *       *       *       Request timed out.
30      *       *       *       Request timed out.
Trace Complete.

上述探测数据中,目标端口在第 3 跳之后就没有数据返回。说明相应端口在该节点被阻断。

示例结论:因为该节点为内网 IP,可能是本地网络相关安全策略所致,您需要联系本地网络管理人员做进一步排查分析。
示例2

[root@mycentos ~]# traceroute -T -p 135 www.baidu.com
traceroute to www.baidu.com (111.13.100.92), 30 hops max, 60 byte packets
 1  * * *
 2  192.168.17.20 (192.168.17.20)  4.115 ms  4.397 ms  4.679 ms
 3  111.1.20.41 (111.1.20.41)  901.921 ms  902.762 ms  902.338 ms
 4  111.1.34.197 (111.1.34.197)  2.187 ms  1.392 ms  2.266 ms
 5  * * *
 6  221.183.19.169 (221.183.19.169)  1.688 ms  1.465 ms  1.475 ms
 7  221.183.11.105 (221.183.11.105)  27.729 ms  27.708 ms  27.636 ms
 8  * * *
 9  * * *
10  111.13.98.249 (111.13.98.249)  28.922 ms 111.13.98.253 (111.13.98.253)  29.030 ms  28.916 ms
11  111.13.108.22 (111.13.108.22)  29.169 ms  28.893 ms 111.13.108.33 (111.13.108.33)  30.986 ms
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

上述探测数据中,目标端口在第 11 跳之后就没有数据返回。说明相应端口在该节点被阻断。