查看远端的端口是否通畅3个简单实用案例

一:此法常被用来检测是个远端端口是否通畅。
[root@oldboy ~]# telnet baidu.com 80
Trying 123.125.114.144...
Connected to baidu.com (123.125.114.144). #==>出现Connected表示连通了,说明百度的80端口开放的
Escape character is '^]'. #==>ctrl+]退出此地。
^]
telnet> quit
Connection closed.

如果写脚本通过telnet检查端口可以用下面的方法:
[root@oldboy ~]# echo -e "\n"|telnet baidu.com 80|grep Connected
Connection closed by foreign host.
Connected to baidu.com (123.125.114.144).

二:通过nmap来检查端口是否通畅
[root@oldboy ~]# nmap etiantian.org -p 80            
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2012-07-22 17:22 PDT
Interesting ports on 211.100.98.99:
PORT   STATE SERVICE
80/tcp open  http
Nmap finished: 1 IP address (1 host up) scanned in 0.417 seconds

如果写脚本通过nmap检查端口可以用下面的方法:
   PORT_COUNT=`nmap $ip_add  -p $port|grep open|wc -l`
   [[ $PORT_COUNT -ge 1 ]] && echo "$ip_add $port is ok." || echo "$ip_add $port is unknown."

三:通过nc命令检查
[root@oldboy ~]# nc -w 5  211.100.98.99 80 && echo ok
ok
[root@oldboy ~]# nc -w 10  8.8.8.8 53 && echo ok ||echo no  
ok

如果写脚本通过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"))

四、check_tcp和check_udp 
用途:
check_tcp -H 主机 -p 端口 -W <警告时间>] 
[-C <critical时间>] 
[-S <发送字符串>]
[-E <expect字符串>] 
[-Q <quit字符串>] 
[-M <maximum bytes>] 
[-D <延迟>]
[-T <timeout秒] 
[-R <refuse state>] 
[-M <mismatch state>] [-V] [-4 | -6] [-J]
[-D <warn天证书expire>,<crit天证书expire>] 
[-S <use SSL>] [-E]

check_udp     
用途:
check_udp  主机 -p 端口
check_udp -H -W <警告时间>] 
[-C <critical时间>] 
[-S <发送字符串>]
[-E <expect字符串>] 
[-Q <quit字符串>] 
[-M <maximum bytes>] 
[-D <延迟>]
[-T <timeout秒] 
[-R <refuse state>] 
[-M <mismatch state>] [-V] [-4 | -6] [-J]
[-D <warn天证书expire>,<crit天证书expire>] [-S <use SSL>] [-E]

选项:
-H, - 帮助
    打印详细的帮助屏幕
-V, - 版
    打印版本信息
-H, - 主机名= ADDRESS
    主机名,IP地址,或Unix套接字(必须是绝对路径)
-P, - 端口= INTEGER
    端口号(默认值:无)
-4  - 使用IPv4的
    使用IPv4连接
-6  - 使用IPv6的
    使用IPv6连接
-E, - 逃生
    可以使用\ n \ r \ t \发送或退出字符串。必须出现在发送或退出选项
    默认值:没有发送,\ r \ n结束退出
-S, -  = STRING发送
    发送到服务器的字符串
-E, - 期望= STRING
    期望的字符串在服务器响应(可重复)
-A, - 所有
    所有的期望字符串必须出现在服务器的响应。默认为任何
-Q, - 戒烟= STRING
    发送服务器发起一个干净的关闭连接的字符串
-R, - 拒绝OK |警告|暴击 OK,接受TCP拒绝与各国发出警告,暴击(默认:暴击)
-M, - 不匹配= OK |警告|暴击
    接受期望的字符串不匹配的状态确定,警告,暴击(默认值:warn)
-J, - 监狱
    从TCP套接字的隐藏输出
-M, -  maxbytes = INTEGER
    关闭连接,一旦超过这个数目的字节收到
-D, - 延迟= INTEGER
    秒之间的等待时间发送字符串和轮询响应
-D, - 证书= INTEGER,INTEGER]
    最小的天数证书是有效的。
    1#天的警告,第二次是关键(如果未指定 -  0)。
-S, -  SSL
    使用SSL的连接。
-W, - 警告= DOUBLE
    导致警告状态的响应时间(秒)
-C, - 关键= DOUBLE
    在临界状态的响应时间(秒)
-T, - 超时= INTEGER
    秒钟,然后连接超时(默认值:10)
-V, - verbose详细


显示命令行调试的详细信息(Nagios的,可能会截断输出)
界面拼装参数格式如下共4个元素:      
命令!端口!告警时延!严重告警时延!连接超时时间                         
check_tcp!23!0.0020!0.0050!10                     


备注:                       
check_imap=check_tcp!143                          
check_ftp=check_tcp!21                          
check_nntp=check_tcp!119                          
check_pop=check_udp!110                          
check_udp=check_tcp                         
check_telnet=check_tcp!23

你可能感兴趣的:(查看远端的端口是否通畅3个简单实用案例)