实际工作中,linux服务器配置好以后,日后可能会出现部分服务故障,比方说 网站打不开,那么如何实时知道我的服务器现在是什么情况呢?
正常情况下,我们会使用 netstat -ntlp 查看端口 、ps -ef 等命令去查看。
ps -ef | grep nginx
这样可以检测到 nginx的运行情况,但不能说明 它正在运行,为什么呢,可能是处于假死状态。这个是需要我们进行检测的。
但是正常情况下,使用ps 这条命令有可能会出现假死的状态,ps 这是无法检测到的。
这就需要说明一下,今天我们要说的这个命令 nc
nc 这是一个命令,需要进行安装, yum install -y nc 等待完成即可。
nc -l localhost 10000 开启一个nc监护进程 10000
再次开启一个窗口
nc localhost 10000
你好
点击回车的话 另外一个窗口就收到 你好 这个信息了
nc -w 3 localhost 3306 与3306端口通讯 3秒钟
例如命令
#这条命令 是需要 和 172.28.66.194 这台服务器的 80 端口 通讯 10 秒钟 ,如果通讯成功,打印出 ok nc -w 10 172.28.66.194 80 && echo ok ok #如果没有通讯成功,则 打印出 no nc -w 10 172.28.66.194 3306 && echo ok || echo no ok [root@localhost ~]# nc -w 9 172.28.66.194 80 [root@localhost ~]# nc -w 9 172.28.66.194 80 && echo ok || echo no ok You have new mail in /var/spool/mail/root [root@localhost ~]# nc -w 3 172.28.66.194 89990 && echo ok || echo no nc: port range not valid no [root@localhost ~]# nc -w 3 172.28.66.194 85 && echo ok || echo no no
检测一台服务器端口是否畅通,还有其他的两种方法:
telnet
此法常用来检测是个远端端口是否畅通
telnet
Connecting to 172.28.66.194:80... Connection established. To escape to local shell, press 'Ctrl+Alt+]'. quit 退出
端口连接成功
端口连接失败
在使用nmap这个命令的时候,我们需要 yum install -y nmap 安装下
nmap
nmap ip -p portNum 这是执行规则
[root@localhost ~]# nmap 172.28.66.194 -p 80 Starting Nmap 5.51 ( http://nmap.org ) at 2018-09-03 09:49 CST Nmap scan report for 172.28.66.194 Host is up (0.000088s latency). PORT STATE SERVICE 80/tcp open http Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds [root@localhost ~]# nmap 172.28.66.194 -p 81 Starting Nmap 5.51 ( http://nmap.org ) at 2018-09-03 09:50 CST Nmap scan report for 172.28.66.194 Host is up (0.000051s latency). PORT STATE SERVICE 81/tcp closed hosts2-ns Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds [root@localhost ~]# nmap 172.28.66.194 -p 3306 Starting Nmap 5.51 ( http://nmap.org ) at 2018-09-03 09:50 CST Nmap scan report for 172.28.66.194 Host is up (0.000064s latency). PORT STATE SERVICE 3306/tcp open mysql Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds You have new mail in /var/spool/mail/root [root@localhost ~]# nmap 172.28.66.194 -p 9003 Starting Nmap 5.51 ( http://nmap.org ) at 2018-09-03 09:50 CST Nmap scan report for 172.28.66.194 Host is up (0.000043s latency). PORT STATE SERVICE 9003/tcp closed unknown Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
这是执行的结果,会显示 出 open 还是close
PORT STATE SERVICE 3306/tcp open mysql
备注说明:如下图所示,只有是0.0.0.0 这样的ip地址,才是对外公开的端口,
例如:
这个端口其实我是开启的,但是前面有一个ip地址 127.0.0.1 ,这不是对外公开的端口,因此这里显示关闭。
如果nmap localhost 或 nmap 127.0.0.1 这是可以正常返回open 状态的
这里其实有一件很有意思的事情:
nmap localhost -p 9007 | grep open | wc -l
grep 通过管道可以 过滤 信息
wc -l