linux查看端口占用(命令详细解释)

之前建立的Cloudreve云盘的服务器到期了,从头拜访后发现失败,连上服务器看了下怎么回事,原来是服务挂了,只能重启了。执行./cloudreve后提示“listentcp0.0.0.0:5212:bind:addressalreadyinuse”,依据提示信息是5212端口被占了,这个5212端口正是Cloudreve云盘的默认端口,从头将5212端口的进程杀身后重启cloudreve就行了。

首先用netstat-nap|grep5212检查5212端口对应的进程(这里是知道端口的情况下运用这个指令)

假如不清楚端口是多少能够运用netstat-nap指令检查对应的进程信息,不过这样的话就会列出一切的进程信息,查找起来不是很便利,所以仍是建议先知道端口再去查,这样会更高效些。

找到进程后用killPID杀死这个进程,我的进程pid如图示

再次从头启动cloudreve服务网盘康复正常拜访

还有一种检查端口信息指令叫lsof,如图示运用lsof-i:5212也是能够查找的对应进程信息的
图片[1]-linux查看端口占用(命令详细解释)-小白之家,linux查看端口占用命令详细解释,不管您是运用Linux作为服务器还是桌面环境,了解敞开的端口或正在运用的端口在各种情况下都会有所帮助。

例如,假如您正在运行基于Apache或Ngnix的Web服务器,则运用的端口应该是80或443。查看端口将确认这一点。同样,您能够查看SMTP或SSH或其他一些服务正在运用哪个端口。在将端口分配给新服务时,了解哪些端口正在运用是很有必要的。

您还能够查看是否有端口被用于安全入侵。

在Linux中有多种查看端口的办法。我将在本文中分享我最喜欢的两种办法。

办法一:运用lsof指令查看当时登录的Linux体系中翻开的端口

假如您直接或通过SSH登录到体系,则能够运用lsof指令查看其端口。

sudolsof-i-P-n

lsof指令用于查找用户运用的文件和进程。这儿用到的选项是:

-i:假如没有指定IP地址,这个选项挑选列出一切网络文件-P:制止将端口号转换为端口称号,如3306转为MySQL-n:制止IP转换为hostname,缺省是不加上-n参数

但是,上面指令也向咱们展现了许多计算机实际上并未监听的额定端口。

您能够将此指令的输出通过管道传输到grep指令并匹配形式“LISTEN”,如下所示:

sudolsof-i-P-n|grepLISTEN

这样只会显现咱们的计算机正在监听的端口以及哪个服务正在运用所述敞开端口。

办法二:运用netcat指令查看任何服务器上的端口

nc(Netcat)是一个指令行实用程序,它运用TCP和UDP协议通过网络在计算机之间读取和写入数据。

下面给出了nc指令的语法:

nc[options]hostport

这个实用程序有一个-z标志。运用时,它将使nc扫描侦听看护程序而不实际向端口发送任何数据。

将此与-v标志结合运用,启用具体形式,您能够获得具体的输出。

以下是运用nc指令扫描体系敞开端口的指令:

nc-z-v1-655352>&1|grep-v’Connectionrefused’

将IP-ADDRESS替换为您正在查看端口的Linux体系的IP地址。能够是本机ip127.0.0.1,也能够是长途机器的ip地址。

至于我为什么挑选值1到65535,那是由于端口范围从1开始,到65535结束。

最终,将输出通过管道传递给grep指令。运用-v选项,它会排除任何回来包含“Connectionrefused”的行。

这将显现计算机上翻开的一切端口,这些端口可由网络上的另一台计算机拜访(在防火墙允许的情况下)。

结论

在这两种办法中,我更喜欢lsof指令。它比nc指令更快。但是,您需求登录体系并拥有sudo拜访权限。换句话说,假如您正在办理体系,则lsof是更适宜的挑选。

nc指令具有无需登录即可扫描端口的灵活性,但当扫描长途主机时由于需求网络交互会很慢,特别是面对超时恳求时,可运用-qsecs参数设置超时时间。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论