很多小伙伴用 WSL2 开发时都会遇到一个痛点:WSL 能正常访问 Windows 本地磁盘,却无法直接读取局域网 NAS、其他电脑的网络共享文件夹。
默认情况下,WSL2 仅自动挂载系统本地磁盘,不会识别 Windows 映射的网络驱动器,直接访问会提示路径不存在、挂载失败等问题。
今天分享两套零复杂、高稳定的解决方案,支持临时挂载、开机永久挂载,适配 Windows10/11 + WSL2 所有主流版本,完美解决 WSL 访问局域网共享、NAS 共享文件夹的需求。
一、前置准备(必看)
操作前确保满足2个基础条件,避免后续挂载报错:
- Windows 端可正常访问共享文件夹 在 Windows 文件资源管理器中,输入共享路径(示例:
\\192.168.1.100\share),能正常打开、读写文件,说明网络共享正常。 - 知晓共享账号密码 局域网共享/NAS 一般需要 Windows 账号或设备专属账号密码,用于 WSL 挂载认证。
- 确认 WSL 版本为 WSL2(WSL1 网络兼容性差,建议升级) PowerShell 执行查看命令:
wsl --list --verbose
二、方案一:直接 UNC 路径挂载(推荐,无需映射盘符)
无需在 Windows 映射网络驱动器,直接通过共享 UNC 路径在 WSL 中挂载,简洁高效,适合临时使用。
1. 安装依赖工具
WSL 默认缺少网络共享挂载工具,先在 WSL 终端(Ubuntu/Debian)执行安装:
sudo apt update && sudo apt install cifs-utils -y
2. 创建 WSL 本地挂载目录
在 WSL 中新建文件夹,用于映射网络共享(目录可自定义):
sudo mkdir -p /mnt/network_share
3. 执行临时挂载命令
核心挂载命令,替换对应参数即可使用:
sudo mount -t cifs //共享IP/共享文件夹名 /mnt/network_share -o username=共享账号,password=共享密码,file_mode=0777,dir_mode=0777
实操示例:
sudo mount -t cifs //192.168.1.100/work /mnt/network_share -o username=admin,password=123456,file_mode=0777,dir_mode=0777
参数说明:
file_mode=0777,dir_mode=0777:赋予 WSL 读写权限,避免权限不足报错- 支持 NAS、局域网电脑共享、Windows 服务器共享等所有 SMB 协议共享文件夹
4. 验证访问
执行 ls /mnt/network_share,能看到共享文件夹内的文件,即挂载成功。
⚠️ 注意:该方式为临时挂载,重启 WSL 或电脑后失效,适合临时使用。
三、方案二:永久自动挂载(重启不失效,长期使用推荐)
通过配置 /etc/fstab 实现开机自动挂载,无需每次手动执行命令,适合日常开发、长期挂载共享文件夹。
1. 编辑开机挂载配置文件
sudo vim /etc/fstab
2. 写入挂载配置
在文件末尾添加以下内容,替换为自己的共享信息:
//192.168.1.100/work /mnt/network_share cifs username=admin,password=123456,file_mode=0777,dir_mode=0777,_netdev 0 0
新增参数 _netdev:告知系统该挂载为网络设备,等待网络就绪后再挂载,避免开机挂载失败。
3. 生效配置并测试
# 加载所有 fstab 挂载项
sudo mount -a
# 查看挂载结果
df -h
能看到对应共享路径即配置成功,后续重启 WSL、重启电脑都会自动挂载,无需手动操作。
四、备选方案:Windows 映射盘符 + WSL 挂载(适配老旧设备)
如果部分老旧 NAS、共享设备不支持直接 UNC 挂载,可先在 Windows 映射网络盘符,再让 WSL 挂载盘符,兼容性拉满。
1. Windows 端映射网络驱动器
PowerShell(管理员)执行命令,映射共享为 Z 盘:
net use Z: \\192.168.1.100\work /persistent:yes
/persistent:yes:设置永久映射,重启电脑不失效。
2. WSL 挂载 Windows 映射盘符
# 创建挂载目录
sudo mkdir -p /mnt/z
# 挂载 Z 盘
sudo mount -t drvfs Z: /mnt/z
访问 /mnt/z 即可读写网络共享文件夹,操作简单、兼容性极强。
五、常见报错 & 解决方案(高频问题汇总)
1. 报错:mount error(13): Permission denied 权限拒绝
原因:账号密码错误、共享权限未开启、缺少权限参数 解决:核对账号密码,重新挂载,确保添加 file_mode=0777,dir_mode=0777 参数。
2. 报错:mount error(112): Host is down 主机不可达
原因:WSL 与共享设备网络不通 解决:1. 确认 Windows 能正常访问共享;2. 关闭电脑防火墙;3. 统一设备局域网网段。
3. 重启 WSL 后挂载失效
原因:使用了临时挂载方式 解决:改用方案二 fstab 永久挂载,添加 _netdev 参数。
4. WSL2 网络异常、无法解析共享地址
解决方案:开启 WSL 镜像网络模式,彻底解决网络兼容问题 1. Windows 新建/编辑 .wslconfig 文件(用户根目录) 2. 写入配置:
[wsl2]
networkingMode=mirrored
3. PowerShell 执行 wsl --shutdown,重启 WSL 即可。
六、卸载挂载(按需使用)
如需取消挂载、断开共享连接,执行以下命令:
# 临时卸载
sudo umount /mnt/network_share
# 取消 Windows 映射盘符
net use Z: /delete
总结
- 临时使用:优先 UNC 路径 cifs 挂载,简单快捷、无需配置 Windows 盘符
- 长期使用:配置 /etc/fstab 实现开机自动挂载,一劳永逸
- 兼容老旧设备:Windows 映射盘符 + drvfs 挂载,适配所有场景
这套方案完美解决 WSL2 无法访问局域网共享、NAS 文件夹的问题,开发、文件同步、数据备份都能直接用,告别文件来回传输的繁琐!