linux系统的五种方式查看端口占用

一、查看端口占用情况的命令1、常用命令有:lsof-i:80、sudolsof-nP-iTCP:3306-sTCP:LISTEN、nc-l80、fuser-v-ntcp80、netstat-anptl|grep80、ss-lpsrc:80、ss-lnp|grep80、sssport=:222.系统当前打开的文件描述符数量1.检查文件描述符数量。
使用命令:cat/proc/sys/fs/file-nr2。
检查docker.sock等特定文件描述符的使用情况:lsof/var/run/docker.sock|wc-l3。
:lsof-t/var/run/docker.sock3.指定进程打开的文件1.列出进程的pid:使用sudolsof-cdocker2命令。
查看特定进程打开的文件描述符数量:lsof-p2486|wc-l(如nginxmaster进程)4.进程及端口1.查看进程监听的端口:netstat-nltp、cd/proc/。
2486、pgrep-lnginx、ps-p24862。
根据软件名称查找监听端口:netstat-anplt|grepnode_export3。
端口:netstat-tlnp|grep4606、ss-tlnp|grep4606五、数据恢复1、使用lsof命令恢复误删除的数据:当文件被误删除且进程还在时,保存文件,lsof|grep/var/log/messages,找到文件描述符PID:1737FD:1,通过恢复文件cd/proc/1737/fd/,cat1>/var/log/messages。

怎么查看本机开放的端口linux如何查询端口的占用情况

哪个端口被哪个服务占用?有多少个开放端口?本文介绍如何扫描Linux系统或任何远程系统上的开放端口。
无论您使用Linux作为服务器还是桌面环境,了解哪些端口已打开或正在使用在不同情况下都非常有用。
例如,如果您正在运行基于Apache或Ngnix的Web服务器,则使用的端口应为80或443。
端口扫描将确认这一点。
同样,您可以检查SMTP、SSH或其他服务正在使用哪个端口。
当为新服务分配端口时,有必要知道哪些端口正在被使用。
您还可以检查是否有任何端口被用于安全黑客攻击。
有多种方法可以检查Linux中的端口。
我将在本文中分享我最喜欢的两种方法。
方法一:使用lsof命令查看当前登录的Linux系统开放的端口如果您直接或通过SSH登录系统,可以使用lsof命令查看其端口。
sudolsof-i-P-nlsof命令用于查找用户使用的文件和进程。
这里使用的选项有:-i:如果没有指定IP地址,该选项指定所有网络文件的列表-P:防止将端口号转换为端口名称,例如3306到MySQL-n:防止将IP转换为hostname,默认为none添加-n参数,但是,上面的命令还向我们显示了计算机实际上并未侦听的几个附加端口。
您可以将此命令的输出传输到grep命令中,并匹配模式“LISTEN”,如下所示:sudolsof-i-P-n|grepLISTEN这将显示我们的计算机正在侦听哪些端口以及哪个服务正在使用所述开放端口。
方法2:使用netcat命令检查任何nc服务器上的端口Netcat(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选项,该选项排除任何包含“连接被拒绝”的返回行。
这将显示您的计算机上可以被网络上的另一台计算机访问的所有开放端口(如果您的防火墙允许)。
结论:在这两种方法中,我更喜欢lsof命令。
它比nc命令更快。
但是,您必须登录系统并有权访问sudo。
换句话说,如果您正在管理一个系统,lsof是最合适的选择。
nc命令可以灵活地在不登录的情况下扫描端口,但是在扫描远程主机时,由于需要网络交互,特别是当请求遇到超时时,速度会很慢。
您可以使用-qsecs参数来设置超时。