在Linux中查看进程占用的端口号

  

对于Linux系统管理员来说,清楚某个服务是否正确地绑定或监听某个端口,是至关重要的。如果你需要处理端口相关的问题,这篇文章可能会对你有用。

  

端口是Linux系统上特定进程之间逻辑连接的标识,包括物理端口和软件端口,由于Linux操作系统是一个软件,因此本文只讨论软件端口。软件端口始终与主机的IP地址和相关的通信协议相关联,因此端口常用于区分应用程序。大部分涉及到网络的服务都必须打开一个套接字来监听传入的网络请求,而每个服务都使用一个独立的套接字。

  

套接字是和IP地址,软件端口和协议结合起来使用的,而端口号对传输控制协议(TCP)和用户数据报协议(UDP)协议都适用,TCP和UDP都可以使用0到65535之间的端口号进行通信。

  

以下是端口分配类别:

  
      <李> 0 - 1023:常用端口和系统端口   <李> 1024 - 49151:软件的注册端口   <李> 49152 - 65535:动态端口或私有端口   
  

在Linux上的/etc/services文件可以查看到更多关于保留端口的信息。

        #少/etc/services   #/:   # $ Id:服务,1.55 v 2013/04/14 ovasik Exp美元   #网络服务,互联网的风格   # IANA服务版本:最后更新2013-04-10   #注意它目前的政策IANA分配一个众所周知的   #为TCP和UDP端口号;因此,这里的大多数条目有两个条目   #即使协议不支持UDP业务。   从RFC 1700 #更新”、“分配数字”(1994年10月)。并不是所有的港口   #,>   #党卫军-tnlp | grep ssh   听0 128 * 22 *:*用户:((sshd, pid=997, fd=3))   听0 128:::22:::*用户:((sshd, pid=997, fd=4))      

也可以使用端口号来检查。

        22 #党卫军-tnlp | grep”:“   听0 128 * 22 *:*用户:((sshd, pid=997, fd=3))   听0 128:::22:::*用户:((sshd, pid=997, fd=4))      

<强>方法2:使用netstat命令
  

  

netstat能够显示网络连接,路由表,接口统计信息,伪装连接以及多播成员。

  

默认情况下,netstat会列出打开的套接字。如果不指定任何地址族,则会显示所有已配置地址族的活动套接字。但netstat已经过时了,一般会使用党卫军来替代。

        # netstat -tnlp | grep ssh   tcp 0 0 0.0.0.0:22 0.0.0.0: * 997/sshd听   tcp6 0 0::: 22::: * 997/sshd听      

也可以使用端口号来检查。

        22 # netstat -tnlp | grep”:“   tcp 0 0 0.0.0.0:22 0.0.0.0: * 1208/sshd听   tcp6 0 0::: 22::: * 1208/sshd听      

<强>方法3:使用lsof命令
  

  

lsof能够列出打开的文件,并列出系统上被进程打开的文件的相关信息。

        # lsof - i - p | grep ssh   命令PID用户FD类型设备大?节点名   sshd 11584根3 u IPv4 27625 0 t0 TCP *: 22(听)   sshd 11584根4 u IPv6 27627 0 t0 TCP *: 22(听)   sshd 11592根3 u IPv4 27744 0 t0 TCP vps.2daygeek.com: ssh→103.5.134.167:49902(建立)      

也可以使用端口号来检查。

        # lsof - tcp: 22   命令PID用户FD类型设备大?节点名   sshd 1208根3 u IPv4 20919 0 t0 TCP *: ssh(听)   sshd 1208根4 u IPv6 20921 0 t0 TCP *: ssh(听)   sshd 11592根3 u IPv4 27744 0 t0 TCP vps.2daygeek.com: ssh→103.5.134.167:49902(建立)      

<强>方法4:使用熔化炉命令
  

  

熔化炉工具会将本地系统上打开了文件的进程的进程ID显示在标准输出中。

        22 #熔化炉- v/tcp   用户PID访问命令   22/tcp:根1208 F ....sshd   根12388 F ....sshd   根49339 F ....sshd      

<强>方法5:使用nmap命令
  

  

nmap(“网络映射器”)是一款用于网络检测和安全审计的开源工具。它最初用于对大型网络进行快速扫描,但它对于单个主机的扫描也有很好的表现。

  

nmap使用原始IP数据包来确定网络上可用的主机,这些主机的服务(包括应用程序名称和版本),主机运行的操作系统(包括操作系统版本等信息),正在使用的数据包过滤器或防火墙的类型,以及很多其它信息。

        # nmap sv - p 22 localhost   Nmap 6.40开始在2018-09-23 36是(http://nmap.org)   本地主机(127.0.0.1)Nmap扫描报告   主机(0.000089秒的延迟)。   其他地址localhost(不是扫描):127.0.0.1   港口国服务版本   22/tcp打开ssh OpenSSH 7.4(2.0协议)   服务执行检测。请在http://nmap.org/submit/报告任何不正确的结果。   Nmap: 1 IP地址(1主机)扫描在0.44秒内

在Linux中查看进程占用的端口号