必须将WSA从默认NAT模式改为外部交换机桥接模式,并为其分配与物理机同网段的静态IP,同时启用IP转发,才能实现局域网设备直连访问WSA内服务。

要在Windows 11安卓子系统(WSA)中实现局域网内设备(如手机、其他电脑)直接访问WSA运行的服务(例如本地游戏服务器、Web开发服务、自建API接口),必须绕过默认的NAT隔离,将WSA接入与物理机同级的局域网段,即开启完全网络共享模式。这要求WSA使用“桥接”或“外部交换机”模式,而非默认的NAT模式——否则局域网设备根本无法ping通WSA,更无法建立TCP连接。
确认WSA当前网络模式并停用NAT
打开管理员权限的Windows终端,执行:
Get-NetAdapter | Where-Object {$_.Name -like "vEthernet (WSA)*"} | Format-List Name,Status,ifIndex
若返回适配器名称含“WSA”且状态为“Up”,说明子系统已启动;但此时它仍处于NAT模式。需先彻底关闭WSA:在开始菜单搜索“适用于 Android 的 Windows 子系统”→右键→“关闭”。【关闭后再操作,否则后续命令会因资源占用失败】
执行命令停用NAT网络栈:
Set-NetIPAddress -InterfaceAlias "vEthernet (WSA)" -AddressFamily IPv4 -PrefixLength 24 -SkipAsSource $true -Confirm:$false 2>$null
创建外部虚拟交换机并绑定WSA
这一步将WSA从NAT沙箱中释放,使其获得与物理网卡同级的真实局域网IP。注意:操作前确保你使用的是有线以太网或稳定Wi-Fi,无线网卡在部分驱动下不支持外部交换机。
在管理员终端中依次执行:
① 获取物理网卡名称:
Get-NetAdapter | Where-Object {$_.Status -eq "Up" -and $_.Name -notlike "vEthernet*"} | Select-Object Name,InterfaceDescription
② 假设你的物理网卡名为“Ethernet”,运行以下命令创建外部交换机(替换其中的“Ethernet”为上步查到的实际名称):
New-VMSwitch -Name "WSA-External" -NetAdapterName "Ethernet" -AllowManagementOS $true -Notes "For WSA full LAN access"
③ 强制WSA使用该交换机:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\WslService\Parameters" -Name "DefaultSwitch" -Value "WSA-External" -Type String
⚠️ 这一步修改注册表后不会立即生效,必须重启WSA服务或整机——但不要现在重启,继续下一步配置IP。
为WSA分配静态局域网IP并启用转发
WSA默认不自动获取DHCP地址,需手动指定一个与物理机同网段、未被占用的IP(例如物理机是192.168.1.100/24,则可选192.168.1.200)。
方法一:通过WSA内置ADB设置(推荐,无需重启)
启动WSA → 打开Windows终端(非管理员),执行:
adb shell su -c 'ip addr add 192.168.1.200/24 dev eth0 && ip link set eth0 up'
方法二:通过PowerShell注入启动参数(持久化,下次启动仍有效)
执行:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\WslService\Parameters" -Name "LxRunArgs" -Value "--ip=192.168.1.200 --netmask=255.255.255.0 --gateway=192.168.1.1" -Type String
【务必核对网关地址是否与你路由器一致,输错将导致WSA完全断网】
最后,启用物理机上的IP转发,使局域网设备能经由物理机访问WSA:
Set-NetIPInterface -Forwarding Enabled -AddressFamily IPv4
验证局域网连通性
重启WSA(关闭再打开应用,或运行 wsl --shutdown → 启动WSA)。等待约20秒,确保WSA界面显示正常。
在另一台局域网设备(如手机)上,用Ping工具或Terminal执行:
ping 192.168.1.200
若收到回复,说明WSA已成功接入局域网;接着测试端口连通性,例如WSA中运行了HTTP服务在8080端口,则在手机浏览器输入 http://192.168.1.200:8080 即可直连。

















