如何找到哪个应用程序占用了我的端口? [关闭]
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 只需以管理员身份运行命令提示符。以上是关于如何找到哪个应用程序占用了我的端口? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章