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


79

我无法启动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.


这节省了我的一天,但它属于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在ID中找到了该应用程序(在我的案例4492)任务列表| findstr 4492,您在这里。Tomcat9.exe 4492服务0 77.988 K
康斯坦丁F

Answers:


112

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


26
netstat -anob是否做了| findstr“ 8080”,它给了我任务ID,很高兴知道哪个应用程序正在使用PID的命令,是否有执行此操作的命令?顺便说一句:不是通过任务管理器,我讨厌不得不搜索该列表
Flethuseo 2011年

8
您可以使用tasklist命令查看所有正在运行的进程及其PID的列表。
Amir Oveisi 2013年

3
问题被标记为主题,但是这个答案挽救了我的生命,我使用8099找到了铜杯!谢谢。
LaBracca 2014年

2
这对我有用,但是在使用后taskkill /pid 8516,我得到了ERROR: The process "8516" not found.证明,如果子进程正在运行,Windows将保留套接字。终止子进程释放了套接字。serverfault.com/questions/181015/…–
jtpereyda

在我的案例中,Oracle TNS Listener是罪魁祸首:findstr“ 5676” TNSLSNR.EXE 5676服务0 5,140 K
nicordesigns


7

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


3

在命令提示符下,执行以下操作:

netstat -nb

无法正常工作会向我抛出一条错误消息,提示“请求的操作需要提升。”
Sohail Qureshi

@SohailQureshi只需以管理员身份运行命令提示符。
Revnic Robert-Nick
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.