本地客户端为Linux系统
Linux系统中,通常可以通过traceroute来进行端口可用性探测。traceroute用于跟踪Internet协议(IP)数据包传送到目标地址时经过的路由,通过发送TCP数据包向目标端口进行探测,以检测从数据包源到目标服务器的整个链路上相应端口的连通性情况。
安装traceroute
sudo yum install -y traceroute 或 sudo apt install traceroute
常用traceroute命令格式如下所示。
traceroute [-n] -T -p <目标端口号> <Host>
-n:直接使用IP地址而非主机名称(禁用DNS反查)。
-T:通过TCP探测。
-p:设置探测的端口号。
<目标端口号>:需要探测的端口号,比如80。
<Host>:需要探测的目标服务器地址,比如192.168.XXX.XXX。
测试示例
traceroute的示例命令和返回结果如下。
测试目标IP的22端口连通性是否正常:
traceroute -n -T -p 22 <目标IP地址>
traceroute to XXX.X.XXX.XXX (XXX.X.XXX.XXX), 30 hops max, 60 byte packets
1 X.X.X.X 0.431 ms 0.538 ms 0.702 ms
2 XX.XX.XXX.XXX 0.887 ms 1.030 ms XX.XX.XXX.XXX 1.309 ms
3 XX.XX.XXX.XXX 0.303 ms 0.390 ms XX.XX.XXX.XXX 0.423 ms
4 XX.XX.XXX.XXX 1.120 ms XXX.XXX.XXX.XXX 0.340 ms 0.540 ms
5 XX.XXX.XXX.XXX 1.744 ms XX.XXX.XXX.XXX 1.076 ms 1.232 ms
6 XX.XXX.XXX.XXX 1.832 ms XX.XXX.XXX.XXX 1.763 ms 63.223.XXX.XXX 1.616 ms
7 XX.XXX.XXX.XXX 2.676 ms XX.XXX.XXX.XXX 1.485 ms 1.806 ms
8 * * XXX.XX.XXX.XXX 2.437 ms
9 XXX.XX.XXX.XXX 6.856 ms * *
10 * * *
11 * * *
12 * * XXX.XXX.XXX.XXX 8.738 ms
13 XXX.XXX.XXX.XXX 8.248 ms 8.231 ms *
14 * XX.XXX.XXX.XXX 32.305 ms XX.XXX.XXX.XXX 29.877 ms
15 XX.XXX.XXX.XXX 11.950 ms XX.XXX.XXX.XXX 23.853 ms XX.XXX.XXX.XXX 29.831 ms
16 XX.XXX.XXX.XXX 11.007 ms XX.XXX.XXX.XXX 13.615 ms XX.XXX.XXX.XXX 11.956 ms
17 XX.XXX.XXX.XXX 21.578 ms XX.XXX.XXX.XXX 13.236 ms *
18 * * XXX.X.XXX.XXX 12.070 ms !X
当相关端口在某一跳被阻断,则之后各跳均不会有返回数据,据此就可以判断出异常节点。您可以根据相应节点信息,查询IP归属运营商进行问题反馈。
本地客户端为Windowws系统
在Windows系统中,您可通过tracetcp进行端口可用性探测。tracetcp同样通过发送TCP数据包进行链路探测,以分析链路是否存在中间节点对目标端口做了阻断。
安装traceroute
在WinPcap官网下载并安装WinPcap library。
在tracetcp官网下载tracetcp。
将下载的tracetcp解压。
进入解压后的文件夹,把tracetcp.exe程序移动到:C:\Windows\System32 目录下。
注意
如果程序不在系统目录,则需要手动修改系统环境变量,以确保指令可以直接调用。
使用方法
在Windows PowerShell或cmd命令行中输入tracetcp命令,常用tracetcp命令格式如下所示。
tracetcp <IP>:<Port>
<IP>:指目标服务器的IP地址或者域名。
<Port>:指需要探测的目标端口。
关于更多tracetcp参数说明,您可以通过tracetcp -?
命令查看帮助。
测试示例
tracetcp的示例命令和返回结果如下。
C:\Users\Administrator>tracetcp www.ctyun.cn:80
Tracing route to 171.XXX.XXX.8 on port 80
Over a maximum of 30 hops.
1 1 ms 1 ms 1 ms 192.168.XX.X [XiaoXXXX]
2 3 ms 2 ms 2 ms 192.168.X.X [192.168.X.X]
3 11 ms 6 ms 6 ms 100.XX.X.X
4 * * 4 ms 218.XX.XXX.XXX [XXX.XXX.XX.218.broad.XX.XX.XXXXXXX.163data.com.cn]
5 * * 4 ms 182.140.220.106
6 10 ms 7 ms 7 ms 61.XXX.X.XXX [XXX.X.XXX.61.broad.XX.XX.XXXXXXX.163data.com.cn]
7 9 ms 7 ms 7 ms 118.XXX.XX.XXX
8 Destination Reached in 8 ms. Connection established to 171.XXX.XXX.8
Trace Complete.
当相关端口在某一跳被阻断,则之后各跳均不会有返回数据,据此就可以判断出异常节点。您可以根据相应节点信息,查询IP归属运营商进行问题反馈。