WSL mirrored网络模式配置指南

WSL2.6.0网络模式升级配置指南

版本要求

当前版本状态:

  • 最新稳定版:2.5.9(存在网络配置缺陷)
  • 推荐版本:2.6.0 预览版(支持完整mirrored模式)

模式对比分析

特性bridge模式(已废弃)mirrored模式(推荐)
协议栈架构双协议栈共享协议栈
IP地址分配独立IP(Windows+WSL)共享主机IP
端口资源独立使用共享端口(需避免冲突)
网络性能相对较重轻量高效
配置复杂度简单需深度配置防火墙策略

标准配置步骤

1. 网络模式设置

通过 WSL Settings 应用设置基础模式:

  1. 打开设置应用
  2. 选择"Network"选项卡
  3. 设置网络模式为"Mirrored"
  4. 应用配置并重启WSL

2. 防火墙策略配置

需通过PowerShell执行完整策略配置:

# 定义WSL虚拟机GUID
$wslGuid = '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}'

# 配置防火墙策略(按顺序执行)
Set-NetFirewallHyperVVMSetting -Name $wslGuid -Enabled True
Set-NetFirewallHyperVVMSetting -Name $wslGuid -DefaultInboundAction Allow
Set-NetFirewallHyperVVMSetting -Name $wslGuid -DefaultOutboundAction Allow
Set-NetFirewallHyperVVMSetting -Name $wslGuid -LoopbackEnabled True
Set-NetFirewallHyperVVMSetting -Name $wslGuid -AllowHostPolicyMerge True

# 验证配置结果
Get-NetFirewallHyperVVMSetting -Name $wslGuid

3. 端口映射验证

# 示例:检查80端口占用情况
Get-NetTCPConnection -LocalPort 80

常见问题处理

问题1:无法建立外部连接

  • 检查步骤:Get-NetFirewallHyperVVMSetting输出中所有字段应为True/Allow
  • 解决方案:按顺序重新执行防火墙策略配置

问题2:端口冲突

  • 验证方法:netstat -ano查看端口占用
  • 处理建议:优先释放Windows端占用端口,或修改WSL服务监听端口

验证方法

  1. 启动WSL服务(如Nginx/Apache)
  2. 从Windows主机访问http://localhost:<port>
  3. 从局域网设备访问http://<host-ip>:<port>

参考资料

  1. WSL官方网络文档
  2. WSL 2.6.0发布说明