测试端口是否开放可以用专业的端口扫描工具,但是如果没有太多要求,完全可以用几个简易的命令行来测试。 另外博主自己也写了一个Android应用,开源绿色,文末会给出下载地址。

TCP端口测试

由于TCP是面向连接的协议,所以判断TCP端口是否开放比较容易,只要尝试建立连接,如果可以连上,端口就是开放的。

  • Windows下可以使用telnet命令测试,命令格式如下:

    telnet <主机域名或IP> <主机端口>

    例如:telnet www.baidu.com 80

  • Linux下可以使用nc命令

    nc -vz <主机域名或IP> <主机端口>

例如:

1
2
root@dev:~/# nc -vz wwww.baidu.com 80
Connection to wwww.baidu.com 80 port [tcp/http] succeeded!

UDP端口测试

由于UDP是无连接的协议,所以理论上无法准确测试其端口是否开放,不过有以下两种特殊情况:

  • 如果向UDP端口发送数据,有明确回复表示其开放(往往不会有任何回复)

  • 某些主机如果向其没有开放的UDP端口发送数据,主机会明确回复一条ICMP_PORT_UNREACH错误,如果收到这个错误可以确定UDP端口未开放。如果长时间没有收到ICMP_PORT_UNREACH错误,则这个UDP端口可能是开放的。

所以对UDP的测试结果只有参考意义,并不准确。telnet只能测试tcp端口,测试UDP端口可以使用nc命令。 例如:

1
2
root@dev:~/# nc -vzu 202.96.134.133 53
Connection to 202.96.134.133 53 port [udp/domain] succeeded!

使用博主原创的Android应用

此项目开源,无广告,可以从这里 下载

只需要填入主机地址和端口号,点开始检测就可以了,支持tcp和udp

使用本站的端口检测网页

https://www.126126.xyz/net/port_check.php

在线端口检测的页面有很多,但是大多数都不支持UDP,而且有广告,本站没有以上两个缺点。