精选!linux系统的监听端口是什么?如何查看进程监听端口?
linux系统的监听端口是什么?
监听端口的概念涉及到网络概念与TCP状态集转化概念,可能比较复杂不便理解,一起往下看看吧!
将整个服务器操作系统比喻作为一个别墅:
服务器上的每一个网卡比作是别墅中每间房间,服务器网卡上配置的IP地址比喻作为房间中每个人,而房间里面人的耳朵就好比是监听的端口,当默认采用监听0.0.0.0地址时,表示房间中的每个人都竖起耳朵等待别墅外面的人呼唤,当别墅外面的用户向房间1的人呼喊时,房间1里面的人员会做出响应,别墅外面的用户向房间2的人呼喊时,房间2里面的人员会做出响应。
依次类推;
这样的访问就表示这个服务器的所有网卡的地址,以及所对应的端口都处于监听状态,非常不安全;
黑客只要和别墅中的一个人建立联系,就会进入别墅,进行攻击。
因此需要根据系统不同服务指定监听地址信息,指定相应的人员能够进行响应,其它人员将耳朵闭上,不做任何响应。
如何查看进程监听端口?
1,发现进程监听端口通过lsof命令
lsof 命令代表“列出打开的文件”。由于Linux中的所有内容都是文件,包括端口和套接字,因此我们可以获得所需的所有信息。要查找使用 lsof 侦听特定端口的进程,请运行以下命令:
注:如果运行以下命令提示命令未发现,请执行"yum install lsof"安装。
[root@localhost ~]# lsof -iTCP:22 -sTCP:LISTE
lsof 命令在所有主要的 Linux 发行版上都可用,并且通常默认安装。
2,发现进程监听端口通过netstat
netstat 命令是一个老古董,但一个好东西。它自80年代初以来一直存在,不仅可用于每个Linux系统,而且至少从XP开始,还可以在任何UNIX或UNIX变体和Microsoft Windows上使用。
要查找使用 netstat 侦听特定端口的进程,请使用以下命令:
[root@localhost ~]# netstat -anp | grep ":22"
-a 选项表示全部,-n 表示以数字而不是名称显示端口,-p 表示显示进程 ID 和名称。
注意:Windows 和 UNIX 系统上的语法可能会有所不同。
3,发现进程监听端口通过fuser
fuser 命令标识哪个进程正在使用文件或套接字。通过一些聪明的选项,可以找到有关哪个进程正在侦听端口的所有信息。如果执行以下命令提示未找到命令,请执行“yum install psmisc.x86_64”安装fuser。
[root@localhost ~]# sudo fuser -v -n tcp 22
我们使用 -v 选项表示详细模式,使用 -n 选项选择相应的命名空间,后面跟上TCP以及端口22。
4,发现进程监听端口通过ss
ss 命令被固定为netstat 的替代项。然而,通常netstat在人们中是如此根深蒂固,以至于它需要一段时间才能消失。因此可以看出,ss命令语法有点复杂,但这可能是因为很久未更新这个命令,并且按照老的命令方式来设置。