Spring应用启动遇8080端口被rundll32.exe占用,终止后复现求助
解决rundll32.exe持续占用8080端口的问题
这情况确实挺闹心的——rundll32本身是负责加载系统DLL的核心进程,正常情况下根本不会监听网络端口,出现这种杀了又自动重启的情况,大概率是恶意软件、被篡改的系统服务或者不正常的启动项在利用它搞事情。结合你的操作记录,给你几个实用的排查和解决思路:
一、先搞清楚这个rundll32到底在干嘛
首先得弄明白它加载了什么模块、执行了什么命令,才能针对性处理:
- 用
tasklist /m /pid <你的进程PID>命令,比如你之前的tasklist /m /pid 15448,查看它加载的所有DLL文件,重点留意不在C:\Windows\System32或者C:\Windows\SysWOW64目录下的可疑文件。 - 更直观的方法是用微软的Process Explorer工具:找到对应的rundll32进程,右键选择「Properties」→「Image」标签,查看它的命令行参数和加载的模块,能一眼看到它到底在执行什么逻辑。
二、排查自动启动的源头
既然杀了就重启,肯定有东西在自动拉起它:
- 检查任务计划:打开「任务计划程序」,挨个查看所有任务,找那些触发条件是「系统启动」「用户登录」的,看看有没有调用rundll32的可疑任务,直接禁用或删除。
- 检查启动项:
- 按Win+R输入
msconfig,打开系统配置的「启动」标签,找rundll32相关的条目,禁用可疑项。 - 打开注册表编辑器(
regedit),检查以下几个启动项路径,删除可疑的rundll32条目:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
- 按Win+R输入
三、检查系统服务
有些恶意程序会伪装成系统服务,用rundll32来加载模块:
- 按Win+R输入
services.msc打开服务管理器,找到对应PID的服务(可以用Process Explorer关联进程和服务),查看「可执行文件路径」,如果路径不是正常的系统文件,或者带有奇怪的参数,直接禁用该服务,然后删除对应的文件。
四、临时应急方案:换Spring应用端口
如果现在急需启动Spring应用,最快的办法是换个端口:
- 在
application.properties里添加配置:server.port=8081 - 或者启动应用时加命令行参数:
java -jar your-app.jar --server.port=8081
五、彻底修复:杀毒+系统文件检查
- 用Windows Defender或者靠谱的杀毒软件做一次全面系统扫描,排查恶意软件。
- 按Win+X打开命令提示符(管理员),执行
sfc /scannow命令,修复被篡改的系统文件。
内容的提问来源于stack exchange,提问作者Lucian
相关产品推荐
相关产品推荐

