以下内容适用于CentOS6平台
使用nc命令(本例是判断远程主机是否开放syslog服务的udp 514端口)
[root@localhost etc]# nc -vuz 172.24.2.118 514
Ncat: Version 7.50 ( https://nmap.org/ncat )
Ncat: Connected to 172.24.2.118:514.
Ncat: UDP packet sent successfully
Ncat: 1 bytes sent, 0 bytes received in 2.01 seconds.
nc命令用法:
usage: nc [-46DdhklnrStUuvzC] [-i interval] [-p source_port]
[-s source_ip_address] [-T ToS] [-w timeout] [-X proxy_version]
[-x proxy_address[:port]] [hostname] [port[s]]
详细用法参见 man nc
如果没有nc命令,用下面的语句安装
yum install -y nc
以下内容适用于CentOS7平台
使用nc的实例
实例1:探测xxx.xxx.xxx.xxx的udp 514端口是否开放
nc -uv xxx.xxx.xxx.xxx 514 ##显示connected to xxx.xxx.xxx.xxx就是已经开放(后记,这个说法是错的)
参数解释:
-u udp
-v 详细显示信息
注,不加-u默认是TCP协议
进一步的实验证明上述udp探测是不准确的。udp协议没有确认机制,udp探测只有服务器的udp监听对探测包给与回复时才有意义,如果服务器仅接收udp包却不予回复,自然就无法判断是否存在监听了。因此注释中说 “显示connected to xxx.xxx.xxx.xxx就是已经开放” 是错误的,因为即使服务器不存在,探测也会显示这个。
因此判断服务器是否存在udp监听的探测方法只有:
1. 当服务器的udp监听协议会对探测进行回应时可以使用nc探测(通常这种情况不会显示"connected to xxx.xxx.xxx.xxx",而可能是如success之类的信息)
2. 登录到服务器用netstat -an查看
如果没有nc,用下面的语句安装
yum install -y nmap-ncat
在 CentOS 6 平台,nc命令有 -z 选项,但到 CentOS 7 平台就没有这个选项了。-z 选项用于扫描监听。