检测tcp/udp端口是否可用

telnet

我们一般检查服务的端口是否可用,通常使用telnet工具。

使用方法:

# telnet 192.168.173.82 22
Trying 192.168.173.82...
Connected to 192.168.173.82.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.8
^C
Connection closed by foreign host.

但如果是udp的服务,telnet检测就会失效,因为telnet是基于tcp协议的。此时可以使用uc这个工具,大多linux发行版都自带这个工具。

nc

使用方法:

# nc -vuz 192.168.173.103 750
Connection to 192.168.173.103 750 port [udp/kerberos4] succeeded!

上面例子显示结果是通的。

但是要注意,如果对端开启了防火墙,防火墙把包DROP了,那么是收不到端口不可达消息的,那么使用nc命令就会发现实际不通的端口是通的。

仔细想想UDP的原理就清楚了,UDP不像TCP一样需要ACK,所以过一段时间没收到端口不可达,UDP就认为端口是通的,但是实际上UDP数据被防火墙DROP了。

    原文作者:阳一yayi
    原文地址: https://www.jianshu.com/p/91927dacfa4c
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞