超实用!WSL2 访问 Windows 网络共享文件夹(NAS/局域网共享)完整教程

8次阅读
没有评论

很多小伙伴用 WSL2 开发时都会遇到一个痛点:WSL 能正常访问 Windows 本地磁盘,却无法直接读取局域网 NAS、其他电脑的网络共享文件夹

默认情况下,WSL2 仅自动挂载系统本地磁盘,不会识别 Windows 映射的网络驱动器,直接访问会提示路径不存在、挂载失败等问题。

今天分享两套零复杂、高稳定的解决方案,支持临时挂载、开机永久挂载,适配 Windows10/11 + WSL2 所有主流版本,完美解决 WSL 访问局域网共享、NAS 共享文件夹的需求。


一、前置准备(必看)

操作前确保满足2个基础条件,避免后续挂载报错:

  1. Windows 端可正常访问共享文件夹 在 Windows 文件资源管理器中,输入共享路径(示例:\\192.168.1.100\share),能正常打开、读写文件,说明网络共享正常。
  2. 知晓共享账号密码 局域网共享/NAS 一般需要 Windows 账号或设备专属账号密码,用于 WSL 挂载认证。
  3. 确认 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 文件夹的问题,开发、文件同步、数据备份都能直接用,告别文件来回传输的繁琐!

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)
验证码