1. 单一端口占用
本模块涵盖从常规进程查杀到系统级服务(WinNAT)冲突的完整解决方案。
1.1 常规排查与终止 (通用方案)
适用于 Apache、Nginx、MySQL 等常规软件无法启动的情况。
-
第一步:侦查 (Identify) 查看指定端口(如 80)的占用情况,获取 PID。
netstat -ano | findstr :80 -
第二步:验身 (Define) 根据 PID(假设为 3520)确认进程真实名称(防止误杀系统服务)。
tasklist /fi "pid eq 3520" -
第三步:处置 (Act) 强制结束目标进程。
taskkill /PID 3520 /F注意:如果进程不断重启(如 WPS 的
OfficeNginx.exe),建议修改自身软件的端口配置(如改用 8080),而非死磕。
1.2 系统保留端口冲突 (WinNAT)
当端口未被显式占用,却提示“访问被拒绝”或“端口被排除”时,通常是 Windows NAT 服务(Hyper-V/WSL)保留了端口。
-
操作步骤: 以 管理员身份 运行命令提示符,重启 WinNAT 服务以释放临时端口池。
net stop winnat net start winnat
1.3 Java 进程专属
针对 Java 应用程序(Tomcat, Spring Boot, Burp Suite),通用任务管理器可能只显示 java.exe,无法区分具体应用。
-
强烈建议: 使用 JDK 自带工具查看完整的 Java 进程类名。
jps -l
2. 端口集群占用
根据您提供的最后一张截图,我们发现了两个决定性的证据,彻底推翻了之前的“僵尸进程”假设。
2.1 关键证据分析
-
netstat 为空:运行
netstat -ano | findstr 10810返回空结果,说明当前没有任何软件(包括白鲸加速器或 svchost)在使用该端口。 -
netsh 拒绝访问:尝试运行
netsh int ipv4 add excludedportrange protocol=tcp startport=10810 numberofports=1时提示“进程无法访问”。
2.2 断定系统端口
这表明 Windows 系统的动态端口范围(Dynamic Port Range)发生了偏移。系统为了运行 Hyper-V、WSL 或容器服务,随机圈定了一大块端口(例如 10000-11000)作为“保留区”。您的 10810 端口不幸落在了这个系统保留区内,导致任何第三方应用都无法绑定,且无法通过查杀进程解决。
2.3 迁移动态端口池
既然系统霸占了低位端口,最彻底的解决办法是将 Windows 的“随机取号”起始位置调高,将其迁移至 49152 之后(IANA 建议的动态端口标准),从而把 10810 彻底释放出来。
2.3.1 执行核心指令
请严格按照以下步骤操作,此操作只需执行一次,永久有效。
-
启动管理员终端:右键点击开始菜单,选择 Windows PowerShell (管理员) 或 命令提示符 (管理员)。
-
修改动态端口范围:复制并运行以下命令(直接回车):
netsh int ipv4 set dynamicport tcp start=49152 num=16384
- 指令解析:该命令强制 Windows 将动态端口的起始号设定为
49152,总数设定为16384个。这能确保系统永远不会再去触碰10810所在的低位区域。
2.3.2 重启生效
-
必须重启:修改底层网络策略后,Windows 不会立即释放已经被锁定的端口。您必须重启电脑才能让新策略生效。
-
验证结果:重启后,直接打开白鲸加速器。此时
10810端口已处于“安全区”,软件应能直接启动成功,不再报错。
2.4 备选与后续维护
如果再次遇到端口问题,可先运行以下命令查看当前的动态端口范围:
netsh int ipv4 show dynamicport tcp
-
正常状态:如果显示的“启动端口”是
49152,说明配置正常。 -
异常状态:如果显示的“启动端口”是
1024或其他小数值,说明配置被重置,请重新执行 2.3.1 中的指令。