shuguang's blog

环境决定基础,选择决定价值,努力决定方向。

Windows 解决端口占用

  • Windows 解决端口占用问题。

#Windows 解决端口占用的方法

  • 终止占用进程

    • 使用命令查找占用端口的进程并终止它。

  • 更改端口号

    • 在应用程序或服务的配置文件中更改端口号,避免与其他进程冲突。

  • 重新启动计算机

    • 重启计算机可以清除端口占用情况,特别是当端口被僵尸进程占用时。

  • 检查防火墙设置

    • 确保防火墙设置允许使用该端口,或添加规则以开放端口。

  • 查看网络配置

    • 在某些情况下,网络配置或代理设置可能影响端口使用,检查并调整相关设置。

#终止占用进程

  • 查找占用端口的进程的PID

    • 运行cmd/powershell, 查找5000端口的 PID, 下图箭头即为PID
      • 执行netstat -aon|findstr :5000|findstr LISTEN

    FindPort

  • 根据PID查找进程

    • 接下来打开任务管理器,查找PID为6916的应用程序


      FindProcess

  • 重点:补充

    • 当占用进程为系统进程(即PID 4)或者是无法结束的进程(即服务)

      • 运行cmd/powershell, tasklist /svc | findstr + PID 或者 服务名称,得到服务名称和PID:
        FindService
      • 然后以管理员权限运行cmd/powershell, 输入net stop 服务名称 /y停掉对应服务
        StopService

    • 当占用进程为PID4且没有服务名称

      • 运行命令netsh http show servicestate查看进程PID对应的服务
      • 然后运行net stop 服务名称 /y停掉对应服务即可

    • 关于443端口若被vmware-hostd.exe占用

      • 打开vmwre > 首选项 > 共享虚拟机 > 禁用共享, 或者自行修改为其他端口
      • 针对VMWARE16/更新版本,可以编辑(C:\ProgramData\VMware\hostd\proxy.xml),将httpsPort改成非443/80就行

    • 当查询不到端口被任何进程占用

      • netstat -aon|findstr :端口号|findstr LISTEN 查询不到端口被任何进程占用且无法监听,可能是LSP[1]被劫持的原因。
      • 然后以管理员权限运行cmd/powershell, 输入netsh winsock reset, 重启电脑

#更改端口号

  • 例如:Hexo可以通过更改本地服务器端口号解决端口占用

    • bash 运行hexo server -p 5000 命令或者在 _config.yml中添加下面代码:

    1
    2
    server:
    port: 5000

#检查防火墙设置

  • 当端口被防火墙阻止时
    • 可以选择“高级安全Windows防火墙”,新建“入站规则”,指定规则类型为端口并输入端口号配置即可解决端口问腿。

  1. 1.LSP(Layered Service Provider)是 Windows 平台上的一种技术,允许开发人员在(应用层)网络协议栈中插入自定义的层来实现网络数据的处理和管理。这可以包括数据包过滤、监控、修改等功能。