在 Windows 10 专业版 的 WSL(尤其是 WSL2)环境中,访问主机(Windows)的麦克风和喇叭 目前(2026 年)仍然有限制,不像 Windows 11 那样有完整的 WSLg 原生支持(WSLg 在 Windows 10 上支持不完整或需要额外配置,且音频/麦克风稳定性较差)。
- 喇叭(输出声音):比较容易实现,WSL 里的声音可以转发到 Windows 主机播放(最终通过 Windows 的默认扬声器/蓝牙/耳机输出)。
- 麦克风(输入):非常困难,几乎没有稳定可靠的原生方式。WSL2 内核不包含音频输入驱动,WSLg 在 Windows 10 上对麦克风支持不完善,很多方案失败或有噪音/延迟/不识别问题。
下面是 Windows 10 上最实用的方案,按可行性排序(从简单到复杂):
方案一:输出声音到 Windows 主机喇叭(最推荐,成功率高)
WSL 播放的声音 → 通过 PulseAudio 转发 → Windows 播放(用你的默认扬声器/蓝牙耳机)。
-
在 WSL 中安装必要包(以 Ubuntu 为例):
sudo apt update sudo apt install -y pulseaudio pulseaudio-utils alsa-utils pavucontrol mpg123 -
设置 PULSE_SERVER 环境变量(让 WSL 连接到主机 PulseAudio):
-
打开 WSL 的
~/.bashrc(或~/.profile),在末尾添加:export PULSE_SERVER=tcp:$(ip route show | grep default | awk '{print $3}')(这个命令会自动获取 Windows 主机的 IP,通常是 172.x.x.1 或类似)
-
然后重新加载:
source ~/.bashrc
或者手动写 Windows 的 IP(在 Windows CMD/PowerShell 运行
ipconfig,找 “IPv4 Address” 或 WSL 看到的默认网关):export PULSE_SERVER=tcp:192.168.xx.xx # 替换成你的 Windows IP -
-
测试输出:
speaker-test -c 2 -t wav # 应该听到声音从 Windows 喇叭出来 # 或 mpg123 /path/to/some.mp3如果有噪音/卡顿,尝试:
export PULSE_LATENCY_MSEC=60(加到 .bashrc)- 重启 WSL:
wsl --shutdown(在 Windows PowerShell 执行)
成功率:90%+,延迟可接受(<200ms)。
方案二:尝试麦克风输入(成功率低,Windows 10 不推荐)
WSL 基本没有原生麦克风支持。以下方法大多在 Windows 11 + 最新 WSLg 上才稳定,在 Windows 10 上经常失败:
-
检查 WSL 是否有 WSLg 支持(Windows 10 较新版本有部分支持):
- 在 Windows PowerShell 执行:
wsl --update wsl --status - 如果看到 WSLg 版本 >1.0,理论上有
/mnt/wslg/PulseServer。
- 在 Windows PowerShell 执行:
-
在 WSL 中尝试:
export PULSE_SERVER=unix:/mnt/wslg/PulseServer # 如果存在这个文件 # 或用 tcp: 方式如上 arecord -d 5 -f cd /tmp/test.wav # 录 5 秒 aplay /tmp/test.wav # 回放检查或用
pactl list sources short看是否有RDPSource(WSLg 的麦克风源)。
现实结果(基于 2026 年社区反馈):
- 大多数 Windows 10 用户看到 “no default input device” 或录不到声音。
- 有噪音、白噪、延迟、只录一小段就停。
- 解决方案通常是升级到 Windows 11,或用 USB 麦克风 + usbipd-win 直通(但需要自定义内核,极度麻烦)。
方案三:如果非要麦克风(高级、麻烦、不推荐日常用)
- 用 usbipd-win 把 USB 麦克风直通到 WSL(内置麦克风不行,只能外接 USB 麦克风)。
- 下载:https://github.com/dorssel/usbipd-win
- 但 Windows 10 需要自己编译带 usbip 支持的 WSL 内核(微软官方内核不支持)。
- 参考:https://github.com/dorssel/usbipd-win/wiki/WSL-support
- 成功后 WSL 能看到 /dev/snd/ 设备,用 arecord 录制。
总结建议(Windows 10 专业版)
- 只用输出(喇叭) → 用方案一,基本够用(播放音乐、语音合成、测试声音等)。
- 需要麦克风输入 → 强烈建议升级到 Windows 11(WSLg 完整支持,麦克风基本可用,设置类似方案一 + export PULSE_SERVER=unix:/mnt/wslg/PulseServer)。
- 或者在 Windows 里跑需要麦克风的程序,避免 WSL 的坑。
如果你试了方案一后还是没声音,或想尝试麦克风,提供以下输出我再帮你 debug:
- WSL 内:
pactl info | grep "Server"和pactl list sources short - Windows 版本:
winver(确认 build 号) - WSL 版本:
wsl --status
343



被折叠的 条评论
为什么被折叠?



