![端口 8000 被应用程序锁定](https://linux22.com/image/1306176/%E7%AB%AF%E5%8F%A3%208000%20%E8%A2%AB%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E9%94%81%E5%AE%9A.png)
我遇到了与本帖中讨论的问题类似的问题为什么系统正在监听端口 8000?并且那里给出的解决方案对我没有帮助,所以我提出了一个新问题!
我正在使用 Virtual DJ SW,它具有现场直播会话的功能(它会创建一个 mp3 文件,其他用户可以流式传输)。但是,当我尝试广播时,Virtual DJ 会显示错误消息:“* 广播错误 * 无法收听端口 8000”。
通常的解决方案是:设置端口转发(我通过路由器进行无线连接)。我知道如何设置端口转发,经过一段时间习惯了这个特定的路由器后,我能够正确设置端口转发。但是,问题仍然存在(当我尝试广播时,我收到了来自 Virutal DJ SW 的错误消息)!
进一步调查问题后,我找到了几个资源来检查端口是否打开。如果我检查http://www.yougetsignal.com/tools/open-ports/- 它显示为打开!我还下载了 PFPortChecker,有趣的事情从这里开始: - 对于 UDP,根据 PFPortChecker,端口 8000 是打开的 - 对于 TCP,它说无法检查,因为程序已将其锁定。
进一步调查后,我检查了 netstat -aon,它给出了 TCP 0.0.0.0:8000 0.0.0.0 LISTENING 4(作为 PID),在 TaskManager PID 4 中代表系统(NT 内核和系统)。
此时,我找到了第一段中提到的线索,但是对于那里给出的几种解决方案,我要么不理解它们,要么它们不起作用:
解决方案 1:与 HTTP 服务器 API 相关的东西 - 不明白我需要做什么。一个答案是“服务器的 HTTP 响应将 Microsoft-HTTPAPI/2.0 列为服务器。”我不知道如何获取服务器的 HTTP 响应...
解决方案 2:不可能是木马,因为我每周都会在计算机上运行 Avira 检查,而且我时不时还会使用反恶意软件检查它
解决方案 3:通过 regedit 将 NoRun 添加到 HTTP - 不起作用
解决方案 4:命令提示符中的不同命令(netstat -ab):显示端口 8000 处于监听状态,信息为:“无法获取所有权信息” - 这是需要调查的事情吗?如何调查?
我能做些什么?
编辑:问题解决了 - 从另一端。我不知何故偶然发现了一种可以更改 Virtual DJ 广播端口的可能性(本身没有这样的选项,但更改我不使用的功能的某些选项后,我能够将端口从 8000 更改为其他端口 - 在此之前,我认为它已将 8000 硬编码为唯一选项)。因此,转发后的新端口工作正常,我不再需要 8000。但仍然想知道为什么系统会阻止它,尤其是对于其他用户来说,同样的事情似乎会阻止其他端口(即 80)。为什么对我来说是 8000?
答案1
如果端口由系统进程 (PID 4) 保持打开,则说明系统中的某些软件正在使用内核的 Web 服务器http.sys
API。您可以尝试打开 Web 浏览器并输入http://127.0.0.1:8000
地址栏,看看网页是否加载。如果幸运的话,某些程序会提示您哪些程序在使用端口。否则,您必须逐个检查正在运行的程序,直到找到罪魁祸首。从非 Microsoft 软件开始 —— 它们通常不会默认为自己的服务选择如此受欢迎的端口。
答案2
答案3
在我的例子中,端口 8000 被驱动程序接管Sound BlasterX AE-5声卡。Creative.AudPosService
位于的进程C:\Program Files (x86)\Creative\Connection Service
一直在使用此端口。
幸运的是,可以更改此端口。打开Creative.AudPosService.exe.config
并将端口号所在的行更改<add baseAddress="http://localhost:8000/"/>
为<add baseAddress="http://localhost:9999/"/>
或任何其他不干扰您工作的内容。