我遇到一个问题,当我通过 Spring(使用 tomcat)启动我的 Java 应用程序时,端口 8080 已经被一个服务监听,该服务是“rundll32.exe”,显然是来自 system32 的合法文件,但即使我杀死它,它也会回来,这是我的提示命令:
tasklist | findstr 15448
rundll32.exe 15448 Services 0 56,592 K
netstat -ano | findstr 8080
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 15448
taskkill /F /pid 15448
SUCCESS: The process with PID 15448 has been terminated.
netstat -ano | findstr 8080
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 9796
tasklist | findstr 9796
rundll32.exe 9796 Services 0 55,976 K
如您所见,该服务始终在监听端口 8080。我尝试搜索解决方案,但在网上没有找到类似的问题。您有什么建议吗?(我停止并杀死了服务列表中的 rundll32 进程,但没有任何变化)
我必须终止此监听,因为我使用的是 Tomcat 和 Spring(用于 Java 开发),它们默认使用此端口。另一种解决方案是更改 tomcat 使用的端口号,但对于标准项目,使用 8080 作为默认端口是一种惯例。
答案1
rundll32.exe
是合法的 Windows 文件,但可用于恶意目的。它是可执行文件,可从任何.dll
文件(不一定是无害文件)运行代码。
您已经确定此进程归 拥有svchost.exe
,它也是一个核心 Windows 文件,但可用于运行恶意代码。它是一个服务主机,每个 Windows 服务都使用它来运行。但同样,非 Microsoft 服务可以注册,这是设计使然。
因此,我们必须找出该主机上运行的服务。svchost.exe
在任务管理器中找到正确的细节选项卡(你可以通过它的 PID 来精确定位特定的 svchost),右键单击它并选择前往服务。该主机上运行的服务将突出显示。从这一点开始,我们可以继续检查它是无害的还是恶意软件。
端口 8080 通常用于运行各种服务器,主要是 HTTP,但也有例外 - 例如 Skype 将在此端口上运行,除非在设置中禁用它。