如何找到哪个应用程序占用了我的端口? [关闭]

Posted

技术标签:

【中文标题】如何找到哪个应用程序占用了我的端口? [关闭]【英文标题】:How do I find which application is using up my port? [closed] 【发布时间】:2011-10-21 01:28:25 【问题描述】:

我无法启动 GlassFish,因为它一直显示以下错误消息:

SEVERE: Shutting down v3 due to startup exception : No free port within range: 8080=com.sun.enterprise.v3.services.impl.monitor.MonitorableSelectorHandler@ed7d1

如何找到哪些应用程序正在使用 Windows Vista 上的哪些端口? 我尝试使用以下目标使用 nmap zenmap:

http://127.0.0.1:8080

但我得到的只是:

Starting Nmap 5.51 ( http://nmap.org ) at 2011-08-05 12:05 Central Daylight Time

NSE: Loaded 57 scripts for scanning.

Read data files from: C:\Program Files\Nmap
Nmap done: 0 IP addresses (0 hosts up) scanned in 4.55 seconds
           Raw packets sent: 0 (0B) | Rcvd: 0 (0B)
WARNING: No targets were specified, so 0 hosts scanned.

【问题讨论】:

How to check port 8080 in Windows Vista command prompt?的可能重复 这节省了我的时间,但它属于 superuser.com,我希望有办法在 stackexchange 站点之间移动问题 在使用 C# 在 VS 2017 中开发 Web 服务时,这个问题/答案阻止了我每 2 小时重新启动一次计算机......虽然它与编程没有直接关系,但它间接地对所有人都非常有帮助我们开发套接字。 那么您正在查看哪个应用程序正在使用端口 8080?首先在cmd中输入这个命令..... netstat -ano | findstr :8080 这个或类似的你会看到 TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 4492 现在你知道使用端口 8080 的应用程序的 id 然后在这段代码中找到使用 id 类型的应用程序和你的 id,(在我的案例 4492) 任务列表 | findstr 4492 然后给你。 Tomcat9.exe 4492 服务 0 77.988 K 【参考方案1】:

netstat 怎么样?

http://support.microsoft.com/kb/907980

命令是netstat -anob

(确保以管理员身份运行命令)

我明白了:

C:\Windows\system32>netstat -anob

活动连接

     Proto  Local Address          Foreign Address        State           PID
  TCP           0.0.0.0:80                0.0.0.0:0                LISTENING         4
 Can not obtain ownership information

  TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       692
  RpcSs
 [svchost.exe]

  TCP    0.0.0.0:443            0.0.0.0:0              LISTENING       7540
 [Skype.exe]

  TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
 Can not obtain ownership information
  TCP    0.0.0.0:623            0.0.0.0:0              LISTENING       564
 [LMS.exe]

  TCP    0.0.0.0:912            0.0.0.0:0              LISTENING       4480
 [vmware-authd.exe]

如果你想检查特定的端口,使用的命令是: netstat -aon | findstr 8080 同路

【讨论】:

做了 netstat -anob | findstr "8080",它给了我任务 id,很高兴知道哪个应用程序正在从 PID 使用它,是否有执行此操作的命令?顺便说一句:不是通过任务管理器,我讨厌必须搜索该列表 您可以使用tasklist 命令查看所有正在运行的进程及其PID 的列表。 问题标记了主题,但这个答案节省了我的时间,我找到了使用 8099 的杯子!谢谢。 这对我有用,但在使用taskkill /pid 8516 后,我得到了ERROR: The process "8516" not found. 结果如果子进程正在运行,Windows 将保留套接字。杀死子进程释放了套接字。 serverfault.com/questions/181015/… 在我的例子中,Oracle TNS Listener 是罪魁祸首:tasklist | findstr "5676" TNSLSNR.EXE 5676 服务 0 5,140 K【参考方案2】:

要查看您的机器上可用的端口,请运行:

C:>  netstat -an |find /i "listening"

【讨论】:

【参考方案3】:

可能没有其他应用程序正在运行。套接字可能没有从先前的会话中完全关闭,在这种情况下,您可能需要等待一段时间,然后该套接字上的 TIME_WAIT 到期。不幸的是,在该套接字过期之前,您将无法使用该端口。如果您可以在等待一段时间(几分钟)后启动服务器,则问题不是由于在端口 8080 上运行的其他应用程序造成的。

【讨论】:

【参考方案4】:

在命令提示符下,执行:

netstat -nb

【讨论】:

不工作它给我一个错误,说“请求的操作需要提升。” @SohailQureshi 只需以管理员身份运行命令提示符。

以上是关于如何找到哪个应用程序占用了我的端口? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何关闭占用80端口的程序?

如何查看usb串口被哪个进程占用

如何关闭指定端口占用的进程

显示TCP端口被占用怎么办

如何关闭”80“和“443”端口占用问题解决办法

CentOS如何查看端口是被哪个应用/进程占用?