美文网首页
Windows 端口被 Hyper-V 随机占用

Windows 端口被 Hyper-V 随机占用

作者: JOHY119 | 来源:发表于2023-06-07 10:00 被阅读0次

问题背景

这个问题的背景分为两部分:

Windows 中有一个「TCP 动态端口范围」,处在这个范围内的端口,有时候会被一些服务占用。在 Windows Vista(或 Windows Server 2008)之前,动态端口范围是 1025 到 5000;在 Windows Vista(或 Windows Server 2008)之后,新的默认起始端口为 49152,新的默认结束端口为 65535。

如果安装了 Hyper-V,那么 Hyper-V 会为容器宿主网络服务(Windows Container Host Networking Service)随机保留一些端口号使用。

正常情况下,Hyper-V 虽然会在「TCP 动态端口范围」中随机挑一些端口号保留(占用),不过保留的端口号普遍比较大,就算保留几百、几千个也影响不大。但是,Windows 自动更新有时会出错,导致这个范围的起始端口被重置为 1024……这可就麻烦了,一些常用端口动不动就因为被保留而无法使用了。

查看范围

使用命令netsh int ipv4 show dynamicport tcp可以查看目前「TCP 动态端口」的范围

查看已经被占用的

使用netsh int ipv4 show excludedportrange protocol=tcp命令可以查看当前所有已经被征用了的端口

错误的解决方法

运行net stop winnat停止 winnat 服务,然后再运行net start winnat启动 winnat 服务。

这个方法本质上就是重启电脑的简化版,让Hyper-V再随机初始化一些端口保留,如果正好没随机到要用的端口,那一次成功。如果还是随机到了要用的端口,那就只能多来几次。

正确的解决方法

重新设置一下「TCP 动态端口范围」,让Hyper-V只在我们设定的范围内保留端口即可。可以以管理员权限运行下面的命令,将「TCP 动态端口范围」重新设定为57344-65535。如果你觉得这个范围太大,还可以改小一点。
netsh int ipv4 set dynamic tcp start=57344 num=8192
netsh int ipv6 set dynamic tcp start=57344 num=8192

然后重启电脑即可。

相关文章

  • 端口占用

    windows 10在安装docker 或者其他程序, 开启 hyper-v 后,启动某些项目报端口占用,但又没查...

  • Tomcat相关

    Tomcat端口被占用 1、端口被占用,进入windows命令,查看哪个进程占用该端口 2、然后关闭占用该端口的进...

  • window下查看端口占用进程

    开发过程中经常遇到程序端口被占用的情况。windows下如何查看端口被谁占用呢? netstat -ano :查看...

  • linux

    查看端口是否存在指令: [windows下端口占用解决方法-查看和杀死占用端口进程:

  • windows下杀死端口占用进程

    一、windows下杀死端口占用进程的方法 1、进入运行的cmd命令下:查看8088端口被哪个进程占用了,cmd下...

  • Windows解决系統端口被占用

    Windows系統中有時會遇到端口被占用,程序需要這個端口不能運行的情況。 我以Windows中80端口被莫名被占...

  • window下查看端口占用进程

    开发过程中经常遇到程序端口被占用的情况。windows下如何查看端口被谁占用呢? 以8080为例: netstat...

  • Windows平台端口占用

    在windows命令行窗口下执行: 1.查看所有的端口占用情况 2.查看指定端口的占用情况 P: 看到了吗,端口被...

  • 在windows上查看端口是否被占用

    在windows上查看端口是否被占用 netstat -aon|findstr “8080” 杀死该端口占用的进程...

  • Windows10下如何杀死被占用端口的进程

    Windows10下如何关闭被占用的端口,杀死进程 例如:8888 端口被占用,先查找被占用的端口进程ID cmd...

网友评论

      本文标题:Windows 端口被 Hyper-V 随机占用

      本文链接:https://www.haomeiwen.com/subject/dypnedtx.html