wsl.conf 是单个 WSL 发行版 的配置文件,仅影响当前 Linux 发行版(支持 WSL1 和 WSL2)
一、主要功能包括:
文件系统挂载控制 (如自动挂载选项)
用户默认行为配置 (如默认用户、Sudo 权限)
网络与跨系统互操作性 (DNS、代理同步)
服务管理 (Systemd 支持)
二、完整配置项分类与参数说明
1. [automount] – 文件系统挂载控制
enabled
作用 :是否自动挂载 Windows 驱动器(默认 true)
示例 :enabled=false(禁用自动挂载)
options
作用 :设置挂载参数(metadata、umask、uid 等)
示例 :options = "metadata,uid=1000,gid=1000,umask=0022"
说明 :metadata 启用 Windows 文件权限同步
mountFsTab
作用 :是否读取 /etc/fstab 文件(默认 true)
示例 :mountFsTab=false(禁用自定义挂载)
2. [network] – 网络配置
generateHosts
作用 :自动生成 /etc/hosts(默认 true)
示例 :generateHosts=false(手动维护 hosts)
generateResolvConf
作用 :自动生成 /etc/resolv.conf(默认 true)
示例 :generateResolvConf=false(自定义 DNS)
hostname
作用 :强制设置主机名(覆盖默认随机名称)
示例 :hostname=wsl-dev
3. [user] – 用户管理
default
作用 :指定默认登录用户(需用户已存在)
示例 :default=devuser
sudoers
作用 :配置 Sudo 权限规则(实验性功能)
示例 :sudoers=%sudo ALL=(ALL) NOPASSWD:ALL
4. [boot] – 启动命令
command
作用 :启动时自动执行的命令(如启动服务)
示例 :command=service ssh start
systemd
作用 :启用 Systemd 服务管理(默认 false,需 WSL2)
示例 :systemd=true
5. [interop] – 跨系统互操作性
enabled
作用 :允许在 WSL 中运行 Windows 程序(默认 true)
示例 :enabled=false(禁用 cmd.exe 调用)
appendWindowsPath
作用 :将 Windows PATH 附加到 Linux PATH(默认 true)
示例 :appendWindowsPath=false(避免路径冲突)
6. [filesystem] – 高级文件系统权限
umask
作用 :全局文件创建默认权限掩码。
示例 :umask=0002(允许组写入)
case
作用 :强制文件名大小写敏感(默认 false)
示例 :case=true(解决跨系统开发兼容性问题)
三、完整配置示例
# /etc/wsl.conf
[automount]
enabled = true
options = "metadata,umask=0022,uid=1000,gid=1000"
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = false # 需手动配置 DNS
hostname = wsl-ubuntu
[user]
default = root
[boot]
command = echo 'WSL 启动完成' > /var/log/wsl.log
systemd = true
[interop]
enabled = true
appendWindowsPath = false
[filesystem]
umask = 0022
case = true
四、生效与调试方法
保存配置 :编辑 /etc/wsl.conf(需 root 权限)
重启 WSL :
wsl --shutdown # 强制关闭所有实例
wsl -d Ubuntu-22.04 # 重新启动指定发行版
验证配置 :
检查挂载选项:
mount | grep /mnt/c
查看默认用户:
whoami
确认 Systemd 状态:
systemctl list-units
五、常见问题与解决
配置未生效 :确保文件路径正确且无语法错误,重启后等待至少 8 秒
权限冲突 :使用 metadata 参数同步 Windows 文件权限
Systemd 启动失败 :升级 WSL 内核至最新版本(需 0.67.6+)
通过合理配置 wsl.conf,可深度定制 Linux 发行版行为,优化开发环境与跨系统协作
六、WSL 配置文件 wsl.conf
与 .wslconfig
的核心区别
作用范围与适用场景
.wslconfig
作用范围:全局配置,影响所有已安装的 WSL2 发行版
适用场景:调整虚拟机资源(内存、CPU、交换空间)、网络模式(NAT/桥接)、内核参数等底层设置
示例配置:
[wsl2]
memory=8GB
processors=4
networkingMode=mirrored
wsl.conf
作用范围:局部配置,仅作用于单个 WSL 发行版(包括 WSL1 和 WSL2)
适用场景:定义用户默认行为(如自动挂载、默认用户)、跨系统文件权限、服务管理等发行版内部设置
示例配置:
[automount]
options = "metadata,umask=0022"
[network]
generateResolvConf = false
核心配置内容对比
存储位置与创建方式
.wslconfig
路径:
C:\Users\<用户名>\.wslconfig
(Windows 系统目录)创建:需手动在 Windows 中新建文件
wsl.conf
路径:
/etc/wsl.conf
(Linux 发行版内部)创建:通过 WSL 终端在发行版内编辑或创建
版本兼容性
.wslconfig
仅适用于 WSL2,对 WSL1 无效
wsl.conf
兼容 WSL1 和 WSL2,但部分功能(如 Systemd)仅限 WSL2
典型配置冲突示例
.wslconfig
中设置networkingMode=mirrored
强制所有 WSL2 发行版使用镜像网络模式
wsl.conf
中设置generateResolvConf=false
仅禁用当前发行版的 DNS 自动生成功能,不影响其他发行版
通过合理组合两类配置文件,可实现全局资源优化与发行版个性化设置的灵活共存