客户端访问目标服务器,如果能 ping 通但业务端口却无法访问,则可能是链路中相关节点对相应端口做了拦截所致。本文先介绍了端口可用性探测的相关工具,然后对测试结果分析及测试步骤进行了简要说明。

端口可用性探测工具介绍

根据操作系统类型的不同,端口可用性探测所使用的工具也有所不同。分别简要介绍如下。

Linux 环境下端口可用性探测工具介绍

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

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

traceroute 端口可用性探测常见用法如下:

ping能通但有的主机不能访问端口(能ping通但端口不通时端口可用性探测说明)(1)

示例输出:

参数说明:

更多关于 traceroute 的用法,可以参阅其 man 帮助。

Windows 环境下端口可用性探测工具介绍

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

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

下载:

tracetcp 可以通过其官方网站下载最新版。也可以从附件下载 v1.0.2 版 (可能并非最新版)。

安装:

tracetcp 的使用依赖 winpcap library, 所以需要先下载和安装 winpcap library。然后将前述下载的 tracetcp 相关文件直接解压到 C:\Windows 目录即可(如果解压到非系统目录,则需要手工修改系统环境变量,以确保指令可以直接调用)。

使用方法:

tracetcp 的常见用法如下:

ping能通但有的主机不能访问端口(能ping通但端口不通时端口可用性探测说明)(2)

示例输出:

ping能通但有的主机不能访问端口(能ping通但端口不通时端口可用性探测说明)(3)

更多参数说明,可以通过 tracetcp -? 获取和查看。

链路测试结果分析简要说明

端口可用性探测的判断方法相对简单,如果相关端口在某一跳被阻断,则其后各跳均不会有返回数据。据此就可以判断出异常节点。然后根据相应节点信息,查询归属运营商进行问题反馈。

tracetcp 示例数据:

ping能通但有的主机不能访问端口(能ping通但端口不通时端口可用性探测说明)(4)

上述探测数据,目标端口在第 3 跳之后就没有任何数据返回。说明相应端口在该节点被阻断。而该节点为内网 IP,所以推断是本地网络相关安全策略所致,需要联系本地网络管理部门做进一步排查分析。

traceroute 示例数据:

ping能通但有的主机不能访问端口(能ping通但端口不通时端口可用性探测说明)(5)

上述探测数据,目标端口在第 11 跳之后就没有任何数据返回。说明相应端口在该节点被阻断。而该节点经查询归属北京移动,所以需要自行或者通过阿里云售后技术支持联系其做进一步排查分析。

,