environment
Windows Subsystem Linux(WSL)
- _index
WSL mirrored网络模式配置指南
WSL2.6.0网络模式升级配置指南
版本要求
当前版本状态:
- 最新稳定版:2.5.9(存在网络配置缺陷)
- 推荐版本:2.6.0 预览版(支持完整mirrored模式)
模式对比分析
特性 | bridge模式(已废弃) | mirrored模式(推荐) |
---|---|---|
协议栈架构 | 双协议栈 | 共享协议栈 |
IP地址分配 | 独立IP(Windows+WSL) | 共享主机IP |
端口资源 | 独立使用 | 共享端口(需避免冲突) |
网络性能 | 相对较重 | 轻量高效 |
配置复杂度 | 简单 | 需深度配置防火墙策略 |
标准配置步骤
1. 网络模式设置
通过 WSL Settings 应用设置基础模式:
- 打开设置应用
- 选择"Network"选项卡
- 设置网络模式为"Mirrored"
- 应用配置并重启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服务监听端口
验证方法
- 启动WSL服务(如Nginx/Apache)
- 从Windows主机访问
http://localhost:<port>
- 从局域网设备访问
http://<host-ip>:<port>
参考资料
虚拟内存磁盘配置
- 虚拟内存磁盘配置
虚拟内存磁盘配置
浏览器缓存到虚拟磁盘
# 使用 ImDisk 创建虚拟磁盘
# 以下命令将创建一个 4GB 的虚拟磁盘并挂载到 M: 驱动器
imdisk -a -s 4G -m M: -p "/fs:ntfs /q /y"
rd /q /s "C:\Users\Administrator\AppData\Local\Microsoft\Edge\User Data\Default\Cache"
rd /q /s "C:\Users\Administrator\AppData\Local\Microsoft\Edge\User Data\Default\Code Cache"
md M:\Edge_Cache\
md M:\Edge_CodeCache\
mklink /D "C:\Users\Administrator\AppData\Local\Microsoft\Edge\User Data\Default\Cache" "M:\Edge_Cache\"
mklink /D "C:\Users\Administrator\AppData\Local\Microsoft\Edge\User Data\Default\Code Cache" "M:\Edge_CodeCache\"
# 恢复浏览器缓存到默认位置
rd "C:\Users\Administrator\AppData\Local\Microsoft\Edge\User Data\Default\Cache"
rd "C:\Users\Administrator\AppData\Local\Microsoft\Edge\User Data\Default\Code Cache"
md "C:\Users\Administrator\AppData\Local\Microsoft\Edge\User Data\Default\Cache"
md "C:\Users\Administrator\AppData\Local\Microsoft\Edge\User Data\Default\Code Cache"
# 卸载虚拟磁盘
# 如果需要移除虚拟磁盘,可以使用以下命令
imdisk -D -m M:
vs-remote-debug
remote debug with visual studio
远程调试 C++: https://docs.microsoft.com/en-us/visualstudio/debugger/remote-debugging-cpp?view=vs-2019
配置联调程序为 service: https://docs.microsoft.com/en-us/visualstudio/debugger/remote-debugging?view=vs-2019#bkmk_configureService
如何配置启动参数: https://stackoverflow.com/questions/6740422/visual-studio-remote-debugging-a-service
自己添加任务
"C:\Program Files\Microsoft Visual Studio 16.0\Common7\IDE\Remote Debugger\x64\msvsmon.exe"
启动参数
/noauth /anyuser /port:4045 /nosecuritywarn /timeout 360000
开发机连接: test0.example.com:4045
远程访问(需提前开启开发者模式): http://test0.example.com:50080/