WSL2 连不上网、访问不了磁盘?这样修

WSL2 让 Windows 跑起了完整的 Linux 内核,但它基于轻量虚拟机,网络与文件系统都经过一层转换,于是『ping 不通外网』『看不到 C 盘』『新建文件权限全是 777』成了高频问题。本文按这两类故障分别处理。

一、网络不通的常见原因

  1. WSL2 使用 NAT 网络,宿主连 VPN 或代理时常导致 DNS 解析失败。
  2. 执行 cat /etc/resolv.conf 看 nameserver 是否为宿主网关。
  3. 被代理软件改写的 http_proxy 环境变量也会阻断直连。

二、重置 WSL 网络

  1. 在 PowerShell 执行 wsl --shutdown 完全关闭子系统。
  2. 重新打开终端,网络栈会被重建,多数断网自愈。
  3. 若 DNS 仍错,可在 /etc/wsl.conf 中固定 generateResolvConf=false 并手动写 resolv.conf。

三、访问 Windows 磁盘的路径

  1. Windows 各盘自动挂载在 /mnt/c/mnt/d 下。
  2. 若某盘不见,确认未被『可移动磁盘』策略排除。
  3. \wsl$ 反向从资源管理器访问 Linux 文件。

四、自动挂载与 fstab

  1. 编辑 /etc/wsl.conf,在 [automount] 下设置 enabled=true
  2. 需开机自挂其他盘,可在 Windows 侧用 wsl.confmount 段声明。

五、文件权限与 metadata 选项

  1. 默认跨文件系统文件权限显示为 777,可在 automount 加 options=metadata
  2. 这样 Linux 内 chmod 才能真实生效,脚本可执行位不再丢失。

六、主机名解析与跨系统互访

  1. WSL2 内可用 hostname.local\wsl$ 让 Windows 访问其服务。
  2. 反向从 Linux 访问 Windows 服务,用 host.docker.internal 思路的 localhost 并不通,应填宿主 IP。
  3. 需固定 IP 时,可在 .wslconfig 中配置网络段。

技术总结:WSL2 的网络与挂载都靠 wsl.conf 与宿主协同。断网先 wsl --shutdown 重建,磁盘可见性与权限靠 automount 的 metadata 选项修正,跨系统互访则需分清 localhost 与宿主地址。

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注