linux如何查看端口被哪个进程占用

linux如何查看端口被哪个进程占用,第1张

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个字段的模式是为了避免误判。

卸载后重启过吗?

以下几个步骤可以完全卸载掉Windows上所有Oracle的东西。

使用Oracle Universal Installer(OUI)卸载所有Oracle组件首渗滚,如果还可以运喊宴行的话。

注册表删除Oracle services

cmd窗口运行regedit.exe进入注册表 \HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services删除所有Oracle开头的项目

注册表删除其他者余Oracle内容

进入注册表\HKEY_LOCAL_MACHINE\SOFTWARE\,删除Oracle项,如果是64位 *** 作系统删除HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Oracle

重启系统

删除Oracle目录,如果某些DLL无法删除,尝试重命名,重新启动后将其删除。

删除C:\Program Files\Oracle目录,如果是64位系统,删除C:\Program Files (x86)\Oracle目录。

从C:\ProgramData\Microsoft\Windows\Start Menu\ Programs\”目录中删除所有与Oracle有关的启动按钮。

删除环境变量PATH中Oracle的目录

清空目录中的内容C:\temp。

清空回收站。

这样所有Oracle的东西就都卸载清理干净了。

参考:

《Windows手工完全卸载Oracle软件》

如何查看某个端口被谁占用

一、通过命令查找端口被谁占用

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

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

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

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

二、通过任务管理器陵喊结束进程

1、打开任务管理器,切换到进程选项卡,在PID一列查看2720对应的进程是谁,如果看不到PID

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

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

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


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

原文地址:https://54852.com/yw/12523757.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存