WSABuilds 实战指南:用 Hyper-V 防火墙规则打通 WSA 到 Windows 宿主机的 localhost 回环
2026/9/13 18:24:33 网站建设 项目流程

WSABuilds 实战指南:用 Hyper-V 防火墙规则打通 WSA 到 Windows 宿主机的 localhost 回环

【免费下载链接】WSABuildsRun Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU (root solutions) built in.项目地址: https://gitcode.com/GitHub_Trending/ws/WSABuilds

在 Windows Subsystem for Android(WSA)中直接访问宿主机的localhost(例如连接宿主机上运行的开发服务器、数据库或 API 端点)是 Android 应用开发者的高频需求,但由于 WSA 底层运行在 Hyper-V 虚拟机内,默认情况下虚拟机无法回环访问宿主机的本地端口。本篇技术指南基于 WSABuilds 仓库中的 LocalHostLoopback 指南,讲解如何通过两条 PowerShell 命令为 WSA 虚拟机启用 localhost 回环并放行指定端口,读完后可独立完成 WSA 与宿主机本地服务之间的网络打通、验证与排障。

适用场景与重要前提

适用场景

该指南针对的典型场景是:你希望在 WSA 内的 Android 应用中连接 Windows 宿主机(通常为 Windows 11)上运行的服务,例如:

  • 连接宿主机本地开发服务器(Web、API、数据库等);
  • 任何需要从 WSA 侧访问 Windows 本地端口(127.0.0.1:PORT)的场景。

在此类场景下,直接填写http://localhost:PORT通常会失败,因为 WSA 虚拟机与宿主机之间默认不存在 localhost 回环通道。

重要前提:2308 版之后该方案可能已内置

原文档明确标注:Localhost Loopback 已在 WSA 2308 更新中被官方正式支持,因此本篇指南所述的手动方案"可能已经过时"。使用前的判断建议:

  • 若你使用的 WSA 版本为 2308 或更新(WSABuilds 仓库的构建脚本跟进 WSA Retail / Insider / Preview 渠道,详见 WSA-Script 文档),优先直接尝试连接,官方回环支持可能已使本文命令变得多余;
  • 若 WSA 版本较旧(2308 之前),或需要精细化控制放行端口,则本指南的手动配置仍然有效。

WSABuilds 仓库中同一指南还存在 另一份副本,内容一致,读者可按仓库结构任选其一查阅。

原理:WSA、Hyper-V 与 VMCreatorId

理解这条指南的关键在于 WSA 的虚拟化架构:

  • WSA 并非普通进程,而是由 Hyper-V 托管的轻量虚拟机。宿主机防火墙对虚拟机流量的处理与物理网卡不同,Hyper-V 提供了专门针对"虚拟机回环"的防火墙能力;
  • Set-NetFirewallHyperVVMSetting命令中使用了固定参数-VMCreatorId '{9E288F02-CE00-4D9E-BE2B-14CE463B0298}'。从命令语义看,该 GUID 是 WSA 虚拟机的创建者标识(VM Creator ID),Hyper-V 防火墙据此把规则精确绑定到 WSA 这一台虚拟机上,而不是作用于所有 Hyper-V 虚拟机;
  • 启用回环后,还需通过New-NetFirewallHyperVRule显式放行具体端口的入站流量,虚拟机内发往宿主机该端口的连接才会被允许。

也就是说,完整链路是"总开关(LoopbackEnabled)+ 端口级放行规则"两步缺一不可。

操作步骤

第 1 步:以管理员身份打开 PowerShell

两条命令都涉及修改宿主机 Hyper-V 防火墙设置,必须在以管理员身份运行的 PowerShell 中执行,否则会因权限不足而失败。

第 2 步:为 WSA 虚拟机启用 localhost 回环

Set-NetFirewallHyperVVMSetting -VMCreatorId '{9E288F02-CE00-4D9E-BE2B-14CE463B0298}' -LoopbackEnabled True

参数说明:

参数取值作用
-VMCreatorId{9E288F02-CE00-4D9E-BE2B-14CE463B0298}指定 WSA 虚拟机的创建者标识,确保规则只作用于 WSA
-LoopbackEnabledTrue开启该虚拟机的 localhost 回环能力

第 3 步:创建入站放行规则并替换目标端口

New-NetFirewallHyperVRule -DisplayName LoopbackAllow -VMCreatorId '{9E288F02-CE00-4D9E-BE2B-14CE463B0298}' -Direction Inbound -Action Allow -LocalPorts [PORT]

参数说明:

参数取值作用
-DisplayNameLoopbackAllow规则显示名,便于后续在防火墙规则列表中识别,可自定义
-VMCreatorId{9E288F02-CE00-4D9E-BE2B-14CE463B0298}同上,绑定 WSA 虚拟机
-DirectionInbound针对入站方向(即从 WSA 虚拟机发往宿主机的连接)
-ActionAllow放行
-LocalPorts[PORT]替换为你要暴露的宿主机端口,例如开发服务器端口3000

以暴露3000端口为例,实际执行的命令为:

New-NetFirewallHyperVRule -DisplayName LoopbackAllow -VMCreatorId '{9E288F02-CE00-4D9E-BE2B-14CE463B0298}' -Direction Inbound -Action Allow -LocalPorts 3000

配置完成后,建议完全停止 WSA 再重新启动(在任务栏/任务管理器中结束 WSA 进程),让虚拟机按新的防火墙设置重新建立网络栈,然后在 WSA 内的应用或浏览器中访问http://localhost:3000(或127.0.0.1:3000)验证连通性。

验证与排障:与 ADB 58526 端口问题的关联

WSA 的 localhost 访问问题在仓库文档中还有另一条高频线索:ADB 无线调试端口 58526。仓库 FAQ(FAQ.md)中提到adb connect localhost:58526失败时,应先在 WSA 的"高级设置"中确认开发者模式已开启,再到 Developer 页面查看实际显示的 IP 地址,尝试adb connect <ip>:5555之类的替代连接方式。

此外,当 Hyper-V 无法预留 58526 端口时,会出现如下错误:

cannot connect to ||127.0.0.1:58526:|| No connection could be made because the target machine actively refused it. (10061)

仓库提供了对应的 TargetMachineActivelyRefusedConnection 修复指南,其核心方案是:

  1. 先关闭 WSA 并在任务管理器的启动项中禁用 WSA 自动启动;
  2. 如启用了 Hyper-V,先用dism.exe /Online /Disable-Feature:Microsoft-Hyper-V禁用并重启;
  3. netsh int ipv4 add excludedportrange protocol=tcp startport=58526 numberofports=1预留 58526 端口;
  4. 重新启用 Hyper-V(如之前已启用)并重启。

该问题与本文回环配置同属"WSA 虚拟机与宿主机网络通道"范畴:回环规则解决的是"虚拟机能否访问宿主机 localhost",而 58526 端口问题涉及宿主机侧 ADB 与 WSA 的配对通道。若按本文配置后仍无法连通,建议交叉参考 ADB-Sideloading 指南中关于开启开发者模式、记录 IP 与端口、执行adb pair/adb connect/adb devices的完整流程,逐步排除 ADB 侧配置问题。

小结

  • 本指南的价值在于两条命令:Set-NetFirewallHyperVVMSetting打开 WSA 虚拟机的回环总开关,New-NetFirewallHyperVRule按端口放行入站流量;
  • -VMCreatorId '{9E288F02-CE00-4D9E-BE2B-14CE463B0298}'是识别 WSA 虚拟机的关键固定标识,两条命令中必须保持一致;
  • 由于 WSA 2308 已官方内置 localhost 回环,新版系统上应优先验证默认能力,本文手动方案主要服务于旧版本 WSA 或需要细粒度端口控制的场景;
  • 端口不通时可结合仓库中的 FAQ 与 10061 错误修复指南 定位是回环规则、端口预留还是 ADB 配对环节出了问题。

【免费下载链接】WSABuildsRun Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU (root solutions) built in.项目地址: https://gitcode.com/GitHub_Trending/ws/WSABuilds

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询