如何查看linux那个程序占用了端口

如何查看linux那个程序占用了端口,第1张

查看端口使用情况,使用netstat命令

查看已经连接的服务端口(ESTABLISHED

netstat

-a

查看所有的服务端口(LISTEN,ESTABLISHED)

netstat

-ap

查看8080端口,则可以结合grep命令:netstat

-ap

|

grep

8080

如查看8888端口,则在终端中输入:lsof

-i:8888

Linux如何查看端口是否被占用下面为大家推荐两种检测方法,对Linux系统不熟悉的小伙伴可以看看。

1、使用lsof命令

lsof是一个非常强大的linux工具,她被用来查找哪些程序使用了那些文件。在linux系统下,基本上所有的东西都可以被当作文件来用。socket当然也是一种文件了。所以lsof可以用来查找谁用了某一个端口。

具体方法:lsof -i :port_number |grep "(LISTEN)"

-i是用来查找和网络相关的文件,":"号是必须的,它是标志你查找的是一个端口。port_number就是你要查找的端口号,譬如你要查找是否 有程序占用了oracle的监听端口1521,就可以使用lsof -i :1521 |grep "(LISTEN)"。如果有程序已经占用了,那么下面打印的第二个字段就是该程序的进程id,第一个字段是进程的名字。

如果只有losf -i :port_number可能会查到很多应用程序,但这些程序实际并没有占用你指定的端口,这些端口只是连接到本机器或者别的机器的该端口。所以要grep "(LISTEN)“,因为一个端口只可能被一个程序占用的,所以这种方法是可靠的。

2、使用netstat 命令

大家一定对这个命令比较熟悉了,可能你从没有想到用到来查找哪一个程序的占用了指定的端口。但是netstat -an 的确提供了这种功能。所以有问题了一定要想到先去查找man手册,不过说实话,某些man手册写得让中国人看不懂,那没有办法了,就googe或者 baidu一下吧。

执行man netstat命令,你会发现netstat 提供了'-p'的选项,这个选项的功能是告诉你哪个程序占用了该端口,但是她提供的形式比较古怪是以pid/process_name提供的。pid当然 是进程id了,process_name是进程的命令,中间以'/'号分隔。

和上面的原因一样,我们只查找listen的端口,netstat 给我们提供了-l的选项,这个选项不是默认的选项。

下面以1521端口来看怎么查找到该程序,我们使用下面的命令:netstat -lnp|awk 'BEGIN{prt=":1521$"}{if ($4 ~ prt) print $0}'在这里使用awk来匹配第4个字段的模式是为了避免误判。

方法/步骤

开始---->运行---->cmd,或者是window+R组合键,调出命令窗口

输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是49157,首先找到它。

查看被占用端口对应的PID,输入命令:netstat -aon|findstr "49157",回车,记下最后一位数字,即PID,这里是2720。

继续输入tasklist|findstr "2720",回车,查看是哪个进程或者程序占用了2720端口,结果是:svchostexe

或者是我们打开任务管理器,切换到进程选项卡,在PID一列查看2720对应的进程是谁,如果看不到PID这一列,如下图:

则我们--->选择列,将PID(进程标示符)前面的勾打上,点击确定。

这样我们就看到了PID这一列标识,看一下2720对应的进程是谁,如果没有,我们把下面的显示所有用户的进程前面的勾打上,就可以看到了,映像名称是svchostexe,描述是,Windows的主进程,与上面命令查看的完全一致。

结束该进程:在任务管理器中选中该进程点击”结束进程“按钮,或者是在cmd的命令窗口中输入:taskkill /f /t /im Tencentdlexe。

1、查看windows所有端口进程。首先点击开始菜单选择运行,接着在运行对话框中输入“cmd”,回车打开命令提示符窗口,然后在窗口中输入netstat -ano,按下回车,之后就会显示所有的端口占用情况。

2、如果你要查询指定的端口占用的'话,可以在窗口中继续输入netstat -aon|findstr "提示的端口",这里的提示的端口假设为80,那么就输入命令为netstat -aon|findstr "80",回车之后就可以看见列表中的PID,然后根据PID在电脑的任务管理器中查看对应的占用程序,然后将其关闭即可。

3、然后根据查询的PID找到对应的进程,我么可以看到占有80这个程序的进程ID:5264,继续输入命令tasklist|findstr "5264",5264就是进程ID,现在知道是哪个进程占用的我们就可以采取相应措施进行解决了。

以上就是关于如何查看linux那个程序占用了端口全部的内容,包括:如何查看linux那个程序占用了端口、Linux如何查看端口是否被占用、如何用命令查看应用程序端口等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9348149.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存