Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1727868
  • 博文数量: 782
  • 博客积分: 2455
  • 博客等级: 大尉
  • 技术积分: 4140
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-06 21:37
个人简介

Linux ,c/c++, web,前端,php,js

文章分类

全部博文(782)

文章存档

2015年(8)

2014年(28)

2013年(110)

2012年(307)

2011年(329)

分类: 系统运维

2014-01-21 10:47:12

原文地址:linux远程端口查看 作者:andersonyan

一:telnet
此法常被用来检测是个远端端口是否通畅。

[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"))


四、NAGIOS 的 check_tcp和check_udp 
用途:
check_tcp -H 主机 -p 端口 -W <警告时间>] 
[-C
[-S <发送字符串>]
[-E
[-Q
[-M
[-D <延迟>]
[-T
[-R
[-M ] [-V] [-4 | -6] [-J]
[-D
[-S ] [-E]


check_udp     
用途:
check_udp  主机 -p 端口
check_udp -H -W <警告时间>] 
[-C
[-S <发送字符串>]
[-E
[-Q
[-M
[-D <延迟>]
[-T
[-R
[-M ] [-V] [-4 | -6] [-J]
[-D ] [-S ] [-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
阅读(1220) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~