检测TCP/UDP端口是否可用

在日常运维中,我们常常需要检查远程服务器的某个端口是否可用,是否可以连通. 如果远程服务器是使用了 TCP 协议监听了端口, 我们可以使用 telnet 命令来测试端口的连通性; 如果远程服务器使用的了 UDP 协议监听了端口, 我们可以使用 nc 命令来测试端口的连通性. 下面就对这两个命令做简单的使用介绍

telnet ===> TCP

telnet 命令的常用语法: telnet IP port

1
2
3
4
5
➜  ~ telnet 192.168.10.159 22
Trying 192.168.10.159...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.6.1

以上测试即为可以连通,而且显示出了应用的名称SSH

退出 telnet 可是按 Ctrl+] 组合键, 得到 > 命令终端后,再输入 quit 退出终端

1
2
3
4
5
6
7
8
➜  ~ telnet 192.168.10.159 22
Trying 192.168.10.159...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_6.6.1
^]
telnet> quit
Connection closed.

telnet 的其他用法请自行百度一下/谷歌一下😆

nc ===> UDP

udp 协议监听的端口是不能用 telnet 命令来测试的,这里用到了 nc 命令

nc 命令的常用语法: nc -zuv IP port

  • z 将输入输出关闭
  • u 开启 UDP 模式
  • v 得到详细输出
1
2
3
4
5
6
7
8
9
10
➜  ~ nc -zuv 192.168.10.159 4500
found 0 associations
found 1 connections:
1: flags=82<CONNECTED,PREFERRED>
outif (null)
src 10.1.100.12 port 53092
dst 192.168.10.159 port 4500
rank info not available

Connection to 192.168.10.159 port 4500 [udp/ipsec-msft] succeeded!

nc 是一个强大的网络工具, 功能不仅限于此