centos使用--排查服务是否可用

端口与服务的关系

一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全通过1个IP地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区分不同的服务的。

服务是否可用

举个列子比如mysql服务,需要考虑两方面,首先是服务是否启用,如果启用mysql我们一般会使用3306端口,其次是考虑,此端口是不是对外开放。

1. 检测服务是否启用,端口是不是被监听

查看的方法:

  • 1.1使用lsof命令 lsof -i:3306
# root @ VM_33_19_centos in /etc [9:02:31] 
$ lsof -i:3306
COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
mysqld  2791 mysql   14u  IPv4  18188      0t0  TCP *:mysql (LISTEN)
  • 1.2 使用netstat命令 netstat -tunlp 或者 netstat -antup
# root @ VM_33_19_centos in /etc [9:07:46] 
$ netstat -antup
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      2791/mysqld         
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      13550/sshd          
tcp        0    132 10.105.33.19:22         106.120.206.201:57791   ESTABLISHED 5784/sshd: root@pts 
tcp        0      0 10.105.33.19:46618      10.142.58.45:5574       ESTABLISHED 794/YDService       
tcp6       0      0 :::111                  :::*                    LISTEN      18349/rpcbind       
tcp6       0      0 :::21                   :::*                    LISTEN      3105/vsftpd         
tcp6       0      0 :::22                   :::*                    LISTEN      13550/sshd          
udp        0      0 0.0.0.0:111             0.0.0.0:*                           18349/rpcbind       
udp        0      0 0.0.0.0:716             0.0.0.0:*                           18349/rpcbind       
udp6       0      0 :::111                  :::*                                18349/rpcbind       
udp6       0      0 :::716                  :::*                                18349/rpcbind   
  • 1.3使用工具nmap

安装 yum install nmap -y
使用 nmap 127.0.0.1
nmap 127.0.0.1 查看本机开放的端口,会扫描所有端口。 当然也可以扫描其它服务器端口。

# root @ VM_33_19_centos in /etc [9:11:17] 
$ nmap 127.0.0.1    

Starting Nmap 6.40 ( http://nmap.org ) at 2017-10-27 09:12 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000030s latency).
Not shown: 996 closed ports
PORT     STATE SERVICE
21/tcp   open  ftp
22/tcp   open  ssh
111/tcp  open  rpcbind
3306/tcp open  mysql

2. 查看端口是不是对外开放

  • 服务器端口即使处于监听状态,但是防火墙iptables屏蔽了该端口,我们也不能对外提供服务

可以使用telnet检测端口是否开放 telnet xxx.xx.xx.xx 3306

  • 检测一个IP的某个端口是否开放,那么你会用什么命令来测试呢?是ping还是telnet?

其实正确的方法应该是telnet命令。因为用ping命令的话不管你ping哪个端口,只要这个IP地址可以ping通,都会有数据返回。

原文地址:https://www.cnblogs.com/redirect/p/7797305.html