法一:(telnet)
(1)安装telnet
$: yum install telnet telnet-server -y
$: systemctl start telnet.socket
$: systemctl enable telnet.socket
(2)用法
$:telnet baidu.com 80
Trying 123.125.115.110...
Connected to baidu.com. #出现Connected表示连通了,说明百度的80端口开放的
Escape character is '^]'. #ctrl + ] 退出
(3)写脚本通过telnet检查端口
$: echo -e "\n"|telnet baidu.com 80|grep Connected
Connection closed by foreign host.
Connected to baidu.com.
法二:(nmap)
(1)安装namp
$:yum -y install nmap
(2)使用
$:nmap localhost #查看主机当前开放的端口
$:nmap -p 1024-65535 localhost #查看主机端口(1024-65535)中开放的端口
$:nmap -PS 192.168.21.163 #探测目标主机开放的端口
$:nmap -PS22,80,3306 192.168.21.163 #探测所列出的目标主机端口
$:nmap -O 192.168.21.163 #探测目标主机操作系统类型
$:nmap -A 192.168.21.163 #探测目标主机操作系统类型
$:nmap --help #更多nmap参数请查询帮助信息
(3)写脚本通过nmap检查端口
26 PORT_COUNT=`nmap $ip_add -p $port|grep open|wc -l`
29 [[ $PORT_COUNT -ge 1 ]] && echo "$ip_add $port is ok." || echo "$ip_add $port is unknown."
法三:(通过nc命令检查)
(1)使用
$: nc -w 5 211.100.98.99 80 && echo ok
ok
$: nc -w 10 8.8.8.8 53 && echo ok ||echo no
ok
(2)写脚本通过nc检查端口并监控memcache服务
export oldboyTimestampMemcachedIp=$1
export oldboyTimestampMemcachedPort=$2
export oldboyTitle=NAGIOS
export oldboyTimestampMD5=4ED06F8D41B9264OLD0BOY30BE5212BB7E34
export wwwServerIp=$3
export wwwServerPort=$4
printf "delete $oldboyTimestampMD5\r\n" | nc $oldboyTimestampMemcachedIp $oldboyTimestampMemcachedPort >/dev/null 2>&1
sleep 1
judge=($(printf "HEAD /oldboy/$oldboyTitle HTTP/1.1\r\nHost: $5\r\n\r\n" | nc $wwwServerIp $wwwServerPort | head -n1|tr "\r" "\n"))
参考:《查看远端的端口是否通畅3个简单实用案例!》http://blog.51cto.com/oldboy/942530