在 Windows Server 2003 R2 64 位 SP2 中,我有一个应用程序只使用端口 8080,但某个程序已经在使用它。我很乐意杀死正在使用它的程序,但我不知道它是什么。我运行了 TCPView,它显示 PID 为 3216,进程为“”。我尝试过 taskkill /pid 3216,但它显示:
错误:未找到进程“3216”。
如果我浏览,http://127.0.0.1:8080
我会得到下面的错误之一,所以它看起来有点像某种网络服务器。如果我尝试在 TCPView 中终止该进程,则不会发生任何事情。有人能提出其他建议吗?
禁止访问。您无权访问此服务器上的 /。
内部服务器错误。服务器遇到内部错误或配置错误,无法完成您的请求。请联系服务器管理员,[电子邮件保护]并告知他们错误发生的时间,以及可能导致错误的任何操作。有关此错误的更多信息可能在服务器错误日志中提供。
答案1
在管理员级别的命令提示符中使用netstat -ba
,您将看到所有活动的网络套接字和拥有这些套接字的进程。
-b
告诉 netstat 输出套接字所有者的可执行文件名称。-a
tella netstat 列出所有监听和客户端套接字。
答案2
这是我在 Windows 8 中所做的:
运行 resmon
在网络选项卡中单击监听端口,在这里我们可以看到当前正在使用的所有端口。
答案3
端口 8080 是 Java 应用程序相当常用的端口。无论是通过 Tomcat 还是 Jetty。我猜是 Tomcat。由于这是一台服务器,并且您显然无法访问端口 8080 上的内容,所以我的建议是查看您的进程列表以查找任何与 Java 相关的内容。可能还要检查端口 8081 以及端口 8000 上的内容。
答案4
除了这里的答案之外,我最终能够通过在 Windows 命令提示符中执行以下步骤来发现它是 Apache:
telnet 127.0.0.1 8080
GET / HTTP/1.1<cr>
<cr>
其中 <cr> = 输入键
这产生了一个显示标头的响应,其中一个标头表明它是 Apache。我发现一个正在运行的 httpd 进程,我可以终止它。这不是我正在寻找的东西,因为 Apache 未安装,但有东西运行了一个独立的 Apache 实例(我检查过它不是病毒)。