当前位置: 首页 > article >正文

WSL2与Hyper-V端口冲突:动态端口范围优化实战

1. 当WSL2遇上Hyper-V端口冲突的幕后真相第一次在WSL2里启动Nginx服务器时我信心满满地在浏览器输入localhost结果等来的却是端口被占用的错误提示。这种场景对于使用WSL2的开发人员来说太常见了特别是当你同时运行着Windows本地的MySQL、Docker或者IIS服务时。问题的根源其实藏在Hyper-V的虚拟化架构里。WSL2本质上是一个运行在Hyper-V虚拟机上的轻量级Linux环境。Hyper-V为了给虚拟机提供网络连接会自动分配动态端口用于NAT转发。默认情况下这个动态端口范围是49152-65535看起来似乎避开了常见的80、443这些服务端口。但实际情况是当你在WSL2里启动服务时系统可能会随机分配一个已经被占用的端口导致冲突。我遇到过最棘手的情况是3306端口冲突。当时Windows上跑着MySQL服务WSL2里的Laravel项目死活连不上数据库。用netstat一查才发现Hyper-V的vmmem进程居然占用了3306端口。这种冲突不仅影响Web服务还会导致各种奇怪的网络问题比如SSH连接超时、API请求失败等。2. 动态端口范围优化一劳永逸的解决方案2.1 为什么要调整动态端口范围经过多次踩坑后我发现修改Hyper-V的动态端口范围是最彻底的解决方案。这个方法有三大优势首先它直接从源头避免端口冲突其次配置简单几条命令就能搞定最重要的是不会影响WSL2的任何功能。相比起其他临时方案比如每次手动关闭占用端口的进程这个办法可以永久解决问题。动态端口范围调整的核心思路很简单把Hyper-V使用的端口范围挪到更高的区间避开常用服务端口。我推荐使用50000-59999这个范围经过实测这个区间足够Hyper-V使用又不会和常见服务产生冲突。当然你也可以选择其他范围关键是要避开这些高危端口80/443HTTP/HTTPS3306MySQL5432PostgreSQL8080/8000备用Web端口2.2 详细配置步骤打开管理员权限的PowerShellWinX选择终端(管理员)我们先查看当前配置netsh int ipv4 show dynamicport tcp这个命令会显示当前的动态端口范围默认应该是Protocol tcp Dynamic Port Range --------------------------------- Start Port : 49152 Number of Ports : 16384接下来执行修改命令netsh int ipv4 set dynamicport tcp start50000 num10000这里start50000表示起始端口num10000表示端口数量即50000-59999。执行后不会有任何输出提示这是正常的。为了让配置生效需要重启相关服务net stop hns net start hns wsl --shutdown这三个命令分别停止了Hyper-V网络服务、重新启动服务以及关闭所有WSL2实例。最后用wsl命令重新启动你的Linux发行版即可。3. 验证与排查确保配置生效3.1 验证新端口范围配置完成后建议做以下验证再次运行netsh int ipv4 show dynamicport tcp确认输出显示新的端口范围在WSL2中启动你的服务比如sudo service nginx start在Windows端用netstat -ano | findstr :80查看80端口占用情况如果一切正常你应该看不到vmmem进程占用常用端口了。我建议用这个命令批量检查你常用的服务端口80,443,3306,5432,8080 | % { netstat -ano | findstr :$_ }3.2 常见问题排查有时候配置可能不会立即生效这时候可以尝试完全重启Windows某些网络配置需要冷启动检查Windows防火墙是否有冲突规则确保没有其他程序修改了端口范围如果发现WSL2网络异常可以重置网络配置netsh winsock reset netsh int ip reset然后重启电脑。4. 进阶配置与长期维护4.1 IPv6端口范围调整如果你的网络环境启用了IPv6建议同步调整IPv6的动态端口范围netsh int ipv6 set dynamicport tcp start50000 num10000同样需要重启服务使配置生效。4.2 自动化配置脚本为了避免每次重装系统都要手动配置我准备了这个PowerShell脚本# 设置IPv4端口范围 netsh int ipv4 set dynamicport tcp start50000 num10000 # 设置IPv6端口范围 netsh int ipv6 set dynamicport tcp start50000 num10000 # 重启服务 Restart-Service hns -Force wsl --shutdown把这个脚本保存为.ps1文件需要时以管理员身份运行即可。4.3 端口使用监控为了预防未来的端口冲突建议定期检查端口使用情况。我常用的方法有使用Resource Monitor资源监视器的网络选项卡第三方工具如TCPViewPowerShell命令Get-NetTCPConnection | Where-Object {$_.State -eq Established} | Select LocalAddress,LocalPort,OwningProcess | Format-Table经过这番优化后我的WSL2环境再也没出现过莫名其妙的端口冲突问题。这个方案在多个Windows 10/11版本上都测试通过配合WSL2的Ubuntu 20.04/22.04使用效果最佳。如果你也受困于类似的端口冲突问题不妨试试这个一劳永逸的解决方案。

相关文章:

WSL2与Hyper-V端口冲突:动态端口范围优化实战

1. 当WSL2遇上Hyper-V:端口冲突的幕后真相 第一次在WSL2里启动Nginx服务器时,我信心满满地在浏览器输入localhost,结果等来的却是"端口被占用"的错误提示。这种场景对于使用WSL2的开发人员来说太常见了,特别是当你同时运…...

iperf性能调优实战:从硬件到内核的全方位优化指南

1. 环境搭建与基础测试 网络性能测试的第一步是搭建一个干净的测试环境。我建议使用两台配置相近的服务器直接通过网线连接,避免交换机带来的干扰。记得使用Cat6或更高级别的网线,确保物理层不会成为瓶颈。 安装iperf3很简单,大多数Linux发行…...

第4篇:Midjourney与Stable Diffusion——AI绘画如何颠覆设计行业?(概念入门)

文章目录背景引入:当我的“周报”被AI抢了饭碗核心概念:什么是AIGC?类比解释:从“图书馆管理员”到“小说家”简单示例:看AIGC如何工作为什么说这是“新纪元”?小结:拥抱变化,聚焦“…...

Zynq LWIP+DMA实战:如何高效传输250MSPS采样数据到PC(附MATLAB分析代码)

Zynq LWIPDMA高速数据传输实战:从硬件配置到MATLAB分析的完整链路优化 在嵌入式数据采集系统中,如何实现每秒2.5亿采样点(250MSPS)的高速ADC数据稳定传输至PC端,一直是工程师面临的棘手挑战。本文将揭示一套经过实际项…...

终极指南:如何免费解锁Cursor Pro高级功能,告别试用限制困扰

终极指南:如何免费解锁Cursor Pro高级功能,告别试用限制困扰 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve…...

3步掌握Pyfa:EVE Online舰船配置的免费开源解决方案

3步掌握Pyfa:EVE Online舰船配置的免费开源解决方案 【免费下载链接】Pyfa Python fitting assistant, cross-platform fitting tool for EVE Online 项目地址: https://gitcode.com/gh_mirrors/py/Pyfa 你是否曾经在EVE Online游戏中花费数百万ISK测试舰船配…...

告别传统网卡!用ESP32/ESP32-S3给树莓派或Linux主机加装WiFi/BT模块(esp-hosted实战)

用ESP32打造高性能无线网卡:esp-hosted方案实战指南 手里闲置的ESP32开发板除了吃灰还能干什么?今天我要分享一个让旧设备重获新生的技巧——将ESP32变身成为Linux主机的无线网卡。相比动辄上百元的USB无线网卡,这个方案成本几乎为零&#xf…...

解决Python虚拟环境激活脚本PowerShell执行权限问题

1. 为什么你的Python虚拟环境激活脚本无法运行? 最近在Windows上使用Python虚拟环境时,是不是经常遇到这样的错误提示:"无法加载文件...\Activate.ps1,因为在此系统上禁止运行脚本"?这个问题困扰过不少Pytho…...

AI Agent 跑完任务怎么通知你?我写了个微信推送服务渍

1、普通的insert into 如果(主键/唯一建)存在,则会报错 新需求:就算冲突也不报错,用其他处理逻辑 回到顶部 2、基本语法(INSERT INTO ... ON CONFLICT (...) DO (UPDATE SET ...)/(NOTHING)) 语…...

AI智能体视觉检测系统(TVA)工作原理系列(一)

TVA初探——核心概念与应用场景解析作为企业初级技术人员,在接触AI智能体视觉检测系统(TVA)时,首先需要明确其核心定位、与传统机器视觉的区别,以及在工业场景中的实际应用价值。TVA全称为“Transformer-based Vision …...

从卡尺到三坐标:不同测量场景下的GRR实战避坑指南(附Excel模板)

从卡尺到三坐标:不同测量场景下的GRR实战避坑指南(附Excel模板) 在精密制造的世界里,测量误差可能比生产缺陷更致命。想象一下:当三坐标测量机(CMM)的报告显示某个关键尺寸超差时,究…...

如何快速掌握四足机器人控制:MIT Mini Cheetah开源项目实战指南

如何快速掌握四足机器人控制:MIT Mini Cheetah开源项目实战指南 【免费下载链接】quadruped_ctrl MIT mini cheetah quadruped robot simulated in pybullet environment using ros. 项目地址: https://gitcode.com/gh_mirrors/qu/quadruped_ctrl 想学习四足…...

终极指南:3分钟学会Charticulator免费图表设计工具

终极指南:3分钟学会Charticulator免费图表设计工具 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 想要快速创建专业级数据可视化图表却不会编程&…...

arXiv订阅进阶玩法:除了邮件,还能用RSS和Python脚本打造你的专属论文追踪器

arXiv订阅进阶玩法:用RSS和Python脚本打造你的专属论文追踪器 每天手动刷新arXiv查看最新论文?对于追求效率的研究者来说,这无异于在已经繁重的科研任务上再添负担。虽然邮件订阅是官方提供的解决方案,但信息过载、分类混乱、被动…...

STM32H743硬石开发板+SVPWM实战:无刷电机开环控制避坑指南(附VOFA+波形分析)

STM32H743硬石开发板SVPWM实战:无刷电机开环控制避坑指南(附VOFA波形分析) 在嵌入式电机控制领域,无刷直流电机(BLDC)凭借高效率、长寿命等优势,正逐步取代传统有刷电机。而空间矢量脉宽调制&am…...

HyperMesh 2021最新版LS-DYNA接口详解:从模型导入到结果输出的完整流程

HyperMesh 2021与LS-DYNA高效协同:工业级仿真全流程实战指南 在工程仿真领域,HyperMesh与LS-DYNA的组合堪称黄金搭档。2021版本带来的接口优化让这对组合的协作效率达到新高度。本文将带您深入掌握这套工具链的核心技术要点,从模型准备到结果…...

Ubuntu启动失败:No bootable devices found的排查与修复指南

1. 问题现象与初步判断 当你按下电源键期待Ubuntu系统正常启动时,屏幕上突然跳出"No bootable devices found"的提示,这种场景就像你拿着钥匙却打不开自家房门一样令人焦虑。这个错误通常意味着计算机的固件(BIOS/UEFI&#xff09…...

G-Helper:华硕笔记本性能调校的轻量化革命

G-Helper:华硕笔记本性能调校的轻量化革命 【免费下载链接】g-helper Lightweight, open-source control tool for ASUS laptops and ROG Ally. Manage performance modes, fans, GPU, battery, and RGB lighting across Zephyrus, Flow, TUF, Strix, Scar, and oth…...

航天仿真进阶:用STK+MATLAB Connector打通数据流,这几个版本兼容性坑你踩过吗?

航天仿真进阶:STK与MATLAB版本兼容性全景指南 当STK的卫星轨道数据需要与MATLAB的算法能力结合时,版本兼容性问题往往成为工程师的第一道门槛。我曾亲眼见过一个航天仿真团队因为版本选择不当,导致项目延期两周——他们原本计划用三天完成的…...

OpCore-Simplify:10分钟搞定黑苹果配置的终极自动化工具

OpCore-Simplify:10分钟搞定黑苹果配置的终极自动化工具 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为复杂的黑苹果配置而头疼吗&…...

动手学深度学习——FCN代码

这一篇的重点是把上一篇的 FCN 思想真正落到代码上。 也就是看清楚这几件事:怎么用预训练分类网络做骨干怎么把最后的分类头改成分割头为什么要加 11 卷积怎么用转置卷积把输出恢复到原图大小最后如何得到像素级预测结果下面我直接给你一版适合发 CSDN 的正文。动手…...

从Bellman-Ford到SPFA:图解最短路径算法的优化之路

从Bellman-Ford到SPFA:图解最短路径算法的优化之路 在解决单源最短路径问题时,算法选择往往需要在效率与通用性之间寻找平衡。Bellman-Ford算法以其处理负权边的能力著称,但其固定时间复杂度的特性使其在某些场景下显得效率不足。而SPFA&…...

用DDRNet-23-slim在RTX 3060笔记本上搞定细胞图像分割:从数据标注到模型测试的完整避坑记录

在RTX 3060笔记本上实现细胞图像分割:DDRNet-23-slim实战全流程解析 当我在生物实验室第一次看到显微镜下的细胞图像时,立刻被那些复杂的结构吸引了。作为一名刚接触医学图像处理的研究生,我迫切希望能用AI技术自动识别不同类型的细胞。但实验…...

Springboot 实现多数据源(PostgreSQL 和 SQL Server)连接芬

一、环境准备 Free Spire.Doc for Python 是免费 Python 文档处理库,无需依赖 Microsoft Word,支持 Word 文档的创建、编辑、转换等操作,其中内置的 Markdown 解析能力,能高效实现 Markdown 到 Doc/Docx 格式的转换,且…...

告别繁琐手动配置:OpCore-Simplify 三步搞定黑苹果 EFI 自动生成

告别繁琐手动配置:OpCore-Simplify 三步搞定黑苹果 EFI 自动生成 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 还在为黑苹果系统配置的复…...

SOA架构实战:从企业服务总线(ESB)到微服务的演进之路

SOA架构实战:从企业服务总线(ESB)到微服务的演进之路 当企业IT系统从单体架构迈向分布式架构时,SOA(面向服务的架构)曾是最重要的技术范式之一。然而随着云计算和容器技术的普及,传统的ESB(企业服务总线&am…...

猫抓浏览器扩展终极指南:如何快速免费下载任何在线视频资源

猫抓浏览器扩展终极指南:如何快速免费下载任何在线视频资源 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓(cat-catch…...

别只盯着IV曲线!用Silvaco TCAD深挖电阻仿真的5个隐藏玩法

别只盯着IV曲线!用Silvaco TCAD深挖电阻仿真的5个隐藏玩法 在半导体器件仿真领域,电阻模型常被视为入门级的"Hello World"案例。但正是这种看似简单的结构,往往蕴含着最基础却最容易被忽视的物理本质。本文将带你跳出标准例程的框…...

终极指南:如何让Mac原生支持MKV等视频格式的Finder预览和缩略图

终极指南:如何让Mac原生支持MKV等视频格式的Finder预览和缩略图 【免费下载链接】QuickLookVideo This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files. 项目地址: https…...

终极指南:EuroSAT数据集深度解析与遥感图像分类性能优化

终极指南:EuroSAT数据集深度解析与遥感图像分类性能优化 【免费下载链接】EuroSAT EuroSAT: Land Use and Land Cover Classification with Sentinel-2 项目地址: https://gitcode.com/gh_mirrors/eu/EuroSAT EuroSAT数据集是遥感图像分类领域的重要基准&…...